首页 > 其他分享 >jmeter动态修改线程数脚本4

jmeter动态修改线程数脚本4

时间:2023-04-11 18:38:04浏览次数:46  
标签:脚本 jmx filename jtl num 线程 jmeter

1,jmeter修改并发数

jmeter进行压测的时候,相同的脚本不同的并发数,如果人工测试的话,每次并发结束后都需要人工修改并发数再次测试,如果通过shell脚本动态的修改并发数,等一个场景结束后自动进行下一个并发场景,不需要人工干预

2,shell脚本编写

复制内容到对应的shell脚本中即可

#!/bin/sh
#设置的jmeter的jmx脚本的环境变量
export jmx_filename="test.jmx"
#查看当前操作系统的环境变量,用单反引号
export os_type=`uname`
#定义一个杀掉jmeter进程的方法,防止之前跑的jmeter没有停用占用资源
killjmeter()
{
pid=`ps -ef |grep java| grep jmeter|grep  ${jmx_filename} | awk '{print $2}'`
if [[ "${pid}" == "" ]];then
echo "jmeter当前没有运行。。。"
else
echo "jmeter当前运行的进程是:${pid}"
kill -9 ${pid}

fi
}
#执行结束进行的方法
killjmeter

echo "jmeter压测开始。。。。"
#定义一个线程数的数组
jmx_thread_num_arr=(50 100 150 200 250 300)
for num in ${jmx_thread_num_arr[@]}
do
#生成jmx带并发数的脚本
export jmx_num_filename="thread_${num}_${jmx_filename}"
#生成一个jtl文件,用来存储执行完脚本数据
export jtl_filename="jtl_${num}.jtl"
#新建一个文件夹存储生成的报告
export web_filename="web_${num}"

#在执行脚本之前清理当前文件下的jmx脚本、jtl脚本,web文件
rm -rf ${jmx_num_filename} ${jtl_filename} ${web_filename}
#复制模版脚本到当前
cp ${jmx_filename} ${jmx_num_filename}
echo "当前执行的脚本是:${jmx_num_filename}"
#判断当前的操作系统
if [[ ${os_type}=="Darwin" ]];then
#sed用来动态修改文件的内容,sed -i "" "s/thread_num/${num}/g" ${jmx_num_filename},-i强制修改,thread_num,需要被修改的字符串,${num}需要替换的并发数,${jmx_num_filename}需要被修改的文件,对应mac电脑,处于安全考虑,不能强制修改,所以需要定义一个空字符串用来替换,如果不想对原文件进行修改,可以备份,吧空字符串改成备份文件的后缀如“.bak”
sed -i "" "s/thread_num/${num}/g" ${jmx_num_filename}
else
sed -i "s/thread_num/${num}/g" ${jmx_num_filename}
fi

#执行静默压测命令,jmeter执行路径执行命令
jmeter -n -t ${jmx_num_filename} -l ${jtl_filename}

#生成报告
jmeter -g ${jtl_filename} -e -o ${web_filename}
#执行完成删除文件
rm -rf  ${jmx_num_filename} ${jtl_filename}

done

3,jmeter设置脚本

jmeter设置线程数为字符串thread_num

image-20220114214004289

image-20220114214108258


本文永久更新地址:

https://www.fenxiangbe.com/p/jmeter动态修改线程数脚本4.html

标签:脚本,jmx,filename,jtl,num,线程,jmeter
From: https://www.cnblogs.com/fenxiangbe/p/17307229.html

相关文章

  • jmeter断言的用法7
    1,jmeter响应断言2,大小断言3,xpath断言4,json断言本文永久更新地址:1,jmeter响应断言名称说明备注响应文本根据规则返回的结果中有对应的文本值响应代码响应返回的code码比如200,404,500等响应头响应头信息里面的内容请求头请求头里面包含的内容......
  • jmeter的界面介绍
    前言jmeter是一款进行接口自动化,性能测试的开源的工具界面jmeter菜单里面有个文件--模板,这个主要是一些请求不知道怎么设置时可以选择预制的一些模板选择对应的模板点击创建,就可以生成一个对应的记录,我们选择jdbc,创建后,就会生成jdbc,填写一些提示的信息运行菜单配置分布式,......
  • jmeter数据库连接6
    1,准备资料1.一个可用的数据库2.连接数据库需要的驱动2,jmeter连接数据库3,发送插入语句请求4,发送查询语句请求5,发送删除语句请求6,对数据库进行压测本文永久更新地址:1,准备资料1.一个可用的数据库搭建一个mysql8.0的数据库环境,并设置数据库可以远程访问docker......
  • jmeter的脚本录制3
    目录[TOC]1,jmeter录制入口测试计划》非测试元件》http代理服务器添加线程组添加录制控制器,目的为了把录制的脚本映射到对应的线程组里面的录制控制器里面设置代理端口和需要录制后到脚本映射位置,就是上面添加到录制控制器里面添加一个监听器,用来回放录制的......
  • jmeter两种不同场景的设计2
    前言jmeter单场景设计,一般性能需求场景设计性能需求1:在一定的用户数到访问下,要求响应时间是不是在规定的时间内,而且错误率是不是在规定的范围之内,如:要求能支持5个用户的访问,响应时间在100ms以内,错误率不超过2%性能需求2:要求响应时间在一定的范围内的情况下,能支持最大的用户......
  • C++创建线程
    C++11中使用std::thread来创建线程。一、创建线程#include<iostream>#include<thread>#include<mutex>/*函数指针创建线程*/voidthread_func(intsize){std::cout<<"thread_func:"<<std::this_thread::get_id()<<std::en......
  • 操作系统(2.8.1)--线程的实现方式
    1.内核支持线程(KST)内核支持线程,与进程相同,是在内核的支持下运行的,即无论是用户进程中的线程,还是系统进程中的线程,他们的创建、撤消和切换等也是依靠内核,在内核空间实现的。这种线程实现方式主要有如下四个优点:(1)在多处理器系统中,内核能够同时调度同一进程中多个线程并行执行(2)如......
  • shell脚本书写规范规则总结!!
    七年老运维实战中的Shell开发经验总结名名名名名名名名 运维网工 2023-04-1011:50 发表于香港收录于合集#网络运维71个#运维管理58个#运维工程师109个转载:https://blog.csdn.net/cpongo2ppp1/article/details/90172429无论是系统运维,还是应用运维,均可分为......
  • 使用Shell脚本备份网站目录
    目的:通过Shell脚本运行一键备份压缩到指定文件夹cd/tmp/backup/touchtest0622.sh如下:#!/bin/bashdir="/www/wwwroot/mefj.com.cn"backup="/tmp/backup"filename="wordpress.tar.gz"date=`date+%Y%m%d`[!-e"$dir"]&&echo"......
  • pytdx多线程示例
    #encoding=utf-8importmathfrompytdx.hqimportTdxHq_APIimportpathlibimportmultiprocessingasmpfrommultiprocessingimportPoolclassmyTdx:def__init__(self):self.HqHOSTS=pathlib.Path("HqHOSTS.txt").read_text().split(......