(Jmeter新玩法)Python 调 Jmeter执行参数化jmx脚本

news/2024/11/20 16:45:46/文章来源:https://www.cnblogs.com/Wl55387370/p/18346117
# Python 调 Jmeter执行参数化jmx脚本import os
from os.path import join
import time
import re
from string import Templatejmeter_Home = r"F:\softtotal\xxx\bin\jmeter.bat"# jmx文件路径
currpath = os.path.dirname(os.path.realpath(__file__))
# 要运行的jmx脚本
jmx = r"F:\softtotal\xxx\bin\参数化csv.jmx"
# jmx = currpath + r"E:\Dev\xxxx\shoptest.jmx"
# 生成的报告放到result文件夹中
# resultpath = currpath + os.sep + "result"
resultpath = os.sep + r"F:\softtotal\xxx\result"# 创建参数化jmx文件
# 参数化的内容为:循环次数loops、线程数num_threads、持续运行时间duration
def create_para_jmx():global replaced_jmxjmx_str = ''with open(jmx, 'r', encoding='utf-8') as file:jmx_str = file.read()# 循环次数loops = 'name="LoopController.loops">(.*?)</stringProp>'replcae_loops = 'name="LoopController.loops">$loops</stringProp>'jmx_str = re.sub(loops, replcae_loops, jmx_str)# 线程数num_threads = 'name="ThreadGroup.num_threads">(.*?)</stringProp>'repalce_num_threads = 'name="ThreadGroup.num_threads">$num_threads</stringProp>'jmx_str = re.sub(num_threads, repalce_num_threads, jmx_str)# 持续运行时间duration = 'ThreadGroup.duration">(.*?)</stringProp>'replace_duration = 'ThreadGroup.duration">$duration</stringProp>'jmx_str = re.sub(duration, replace_duration, jmx_str)replaced_jmx = jmx.replace('.jmx', '-P.jmx')with open(replaced_jmx, "w+", encoding="utf-8") as file:file.writelines(jmx_str)# 执行参数化fmx文件,生成带参数的jmx文件
create_para_jmx()
# 获取当前时间,格式为20210301122059
now = time.strftime(r'%Y%m%d%H%M%S', time.localtime(time.time()))def execjmx(duration, num_threads, loops):print(f"本次运行的场景为:运行时间:{duration}s、线程数:{num_threads}、循环次数:{loops}")tmpstr = ''with open(replaced_jmx, "r", encoding="utf-8") as file:tmpstr = Template(file.read()).safe_substitute(loops=loops, num_threads=num_threads, duration=duration)with open(replaced_jmx, "w+", encoding="utf-8") as file:file.writelines(tmpstr)# 生成的jtl文件jtl = resultpath + f'/{now}-{duration}s--{num_threads}threads-{loops}loops.jtl'# 生成的html文件html = resultpath + f'/{now}-{duration}s-{num_threads}threads-{loops}loops-htmlreport'# Terminal = f*open -a Terminal.app"run = f"{jmeter_Home} -n -t {replaced_jmx} -l {jtl} -e -o {html}"os.system(run)# _执行jmx文件
# 时间、吞吐量、线程数、循环次数
duration = ''
# throughput =''
num_threads = ''
loops = ''
duration = int(input("运行时间:" + duration))
# throughput = int(input("吞吐量:"+ throughput))
num_threads = int(input("线程数:" + num_threads))
loops = int(input("循环次数:" + loops))
execjmx(duration, num_threads, loops)

 运行后结果截图

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/778982.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

超快速的百度网盘不限速下载技巧,建议偷偷使用!

小伙伴们,你们是否曾经为百度迅雷网盘限速而烦恼呢?动不动就要冲svip会员,不仅费钱,开通后还慢的气死,我现在来介绍一种全新的高效下载方法吧,只需要下载并安装一款神奇的软件,接着简单操作即可轻松实现快速下载,节省时间,这款神奇的软件具体信息在文章最后有说明。 第…

JVM内存组件划分梳理

1.JVM内存划分图2.线程栈每天坚持,终会抵达!

Flink实战(10)-checkpoint容错保证

0 前言 程序在 Flink 集群运行,某个算子因为某些原因出现故障,如何处理 在故障恢复后,如何保证数据状态,和故障发生之前的数据状态一致? 1 什么是 checkpoint(检查点)? Checkpoint 能生成快照(Snapshot)。 若 Flink 程序崩溃,重新运行程序时可以有选择地从这些快照进行恢…

一个蒟蒻对简单距离的简单理解

一个蒟蒻对简单距离的简单理解: 呃呃呃呃呃呃呃呃呃呃呃呃呃呃呃呃呃呃呃呃呃呃呃呃呃呃呃呃呃呃呃呃呃呃呃呃呃呃,写的简单粗暴,如有不对的,欢迎纠正 神马是距离? 在数学中,距离是泛函分析中最基本的概念之一。它所定义的距离空间连接了拓扑空间与赋范线性空间等其他空间,是…

P1133 教主的花园

原题链接 题解 假如不是环,你会做吗? 从左到右遍历 \(i\) 第 \(i\) 棵树的放置只与前面一棵树有关,线性dp 而图一定长这样:当第 \(n\) 棵树为 \(3\) 的时候,无论第一棵树是 \(1\) 还是 \(2\)(不能为3,因为3不会往上),都符合环的要求 \(1\) 同理 因此我们只需要考虑第 …

【linux】关于qemu-img创建虚拟机前端磁盘报错

问题描述: 使用qemu-img create -f qcow2 -b cirros.qcow2 vmhost.img 20G创建虚拟机磁盘出现以下报错,报错内容:qemu-img: vmhost.img: Backing file specified without backing formatDetected format of qcow2. [root@ecs images]# qemu-img create -f qcow2 -b cirros.q…

双端口RAM与多模块处理器

多模块处理器 多模块存储器是一种空间并行技术,利用多个结构完全相同的存储模块的并行工作来提高存储器的吞吐率。常用的有单体多字存储器和多体低位交叉存储器。CPU 的速度比存储器快得多,若同时从存储器中取出n条指令,就可以充分利用 CPU 资源,提高运行速度。多体交叉存储…

SRAM的Write Assist与Read Assist

SRAM的Write Assist与Read Assist 简介 随着工艺节点的不断提升,诸如阈值电压的偏差,以及供电电压的减小,寄生电阻电容的影响等,都会越来越影响SRAM的稳定性。因此需要通过write Assist和Read Assist方法来提升SRAM的写入能力,可读性以及稳定性。 具体来说,以一个典型的6…

只读存储器ROM

BIOS芯片就是一种ROM芯片,在开机后引导装入操作系统。逻辑上,主存由RAM+ROM组成,并且二者经常统一编址

SRAM和DRAM

SRAM和DRAM的比较SDRAM(同步动态随机存取存储器,英语:synchronous dynamic random-access memory)也是DRAM的一种DRAM的刷新DRAM 的刷新需要注意以下问题:刷新操作对CPU是透明的,即CPU不参与DRAM的刷新过程 DRAM的刷新单位是行,由芯片内部自行生成行地址 刷新操作类似于读…