广东网站设计,网站建设基本流程流程图,网站开发报告参考文献,公司网站建设应注意♥ 前 言
jmeter 可以做性能测试#xff0c;这个很多人都知道#xff0c;那你知道#xff0c;jmeter 可以在启动运行时#xff0c;指定线程数和运行时间#xff0c;自定义性能场景吗#xff1f;
jmeter 性能测试#xff0c;动态设定性能场景
平时#xff0c;我们使…♥ 前 言
jmeter 可以做性能测试这个很多人都知道那你知道jmeter 可以在启动运行时指定线程数和运行时间自定义性能场景吗
jmeter 性能测试动态设定性能场景
平时我们使用 jmeter 进行性能测试时使用普通线程组并发用户数和运行时间等场景参数都是固定写死的。运行脚本时就按照写死在脚本中的场景来运行。 如果你想学习自动化测试我这边给你推荐一套视频这个视频可以说是B站播放全网第一的自动化测试教程同时在线人数到达1000人并且还有笔记可以领取及各路大神技术交流798478386
【已更新】B站讲的最详细的Python接口自动化测试实战教程全集实战最新版_哔哩哔哩_bilibili【已更新】B站讲的最详细的Python接口自动化测试实战教程全集实战最新版共计200条视频包括1、接口自动化之为什么要做接口自动化、2、接口自动化之request全局观、3、接口自动化之接口实战等UP主更多精彩视频请关注UP账号。https://www.bilibili.com/video/BV17p4y1B77x/?spm_id_from333.337
相信绝大多使用 jmeter 进行性能测试性能场景设计都类似上图写死线程数、ramp-up 时间、持续运行时间。
这样固然很好直接就可以用但是当我们用 CLI 模式做负载测试时我们期望能随时更改线程数、ramp-up 时间和持续运行时间你怎么做
用 jmeter 的 gui 界面修改场景中的这些参数值然后保存再运行或者直接编辑脚本 jmx 文件保存再运行。
两种方法都可以但是有没有感觉比较麻烦有没有更简洁的方法呢
在我的教学中给大家讲过jmeter 除了变量之外还有‘属性’属性是 jmeter 工具的标签可以在 jmeter 这个工具的任何地方被使用。
jmeter 不仅支持属性文件配置静态属性也支持在脚本运行过程中动态生成属性而且还支持外部传入动态属性。
我们可以把场景修改为如图 通过获取属性 pthreads来指定线程数 获取属性 pramp 来指定 ramp-up 时间获取属性 pruntime 来指定持续运行时间。
这些属性真实存在吗后面的数字又是什么意思呢
首先P 函数在 jmeter 中是获取属性函数它有两个参数第 1 个参数是属性名这些属性可以事先定义的静态属性也可以是动态生成的动态属性图中用到的所有属性就是事先没有定义在运行时动态定义的属性第 2 个参数是属性默认值当这个属性没有获取到值时使用这个默认值。
什么意思
意思是如上图这样设计你不传任何属性值直接运行就会按 1 秒钟内启动 30 个并发用户数持续运行 60 秒的场景来运行。 现在你可以放心了吧即便你没有传入这些属性值这个场景也是可以正常运行的。
那我们在 CLI 模式下进行性能测试时到底应该怎么传入这些属性值呢
首先我们要知道使用 CLI 模式进行性能测试通常有两种方式一种就是直接启动本地脚本运行另外一种就是采用分布式指定助攻机器来运行。 用 CLI 命令直接指定本地脚本运行
CLI 命令中使用 -J[property_name]value 的方式传入属性值
# 本地运行 指定pthreads线程数属性参数值为50pruntime持续运行时间属性参数值为70秒
jmeter.bat -n -t .\jkscript\demo_script.jmx -Jpthreads50 -Jpruntime70 \
-l test001.jtl -e -o .\jkscript\test001 看实际运行时50 个线程数运行 70 秒钟。 用 CLI 命令指定助攻机运行
CLI 命令中使用 -G[property_name]value 的方式传入属性值
# 采用助攻机运行 指定pthreads线程数属性参数值为80指定pruntime持续运行时长属性参数值为120秒
jmeter.bat -n -R 192.168.x.x:port -t .\jkscript\demo_script.jmx -Gpthreads80 -Gpruntime120 \
-l test002.jtl -e -o result002 看实际运行根据命令参数设置运行了 80 个线程数持续运行了 120 秒钟。
有了这样一种技术之后我们再也不用去打开脚本修改性能场景了只需要在执行命令的时候改下脚本参数就可以了。只是我们要记清楚本地直接运行属性参数名称前用‘J’分布式运行属性参数名称前用‘G’。
好了你掌握了吗