测试目的:业务量模拟接口压力测试
测试时长:1小时
测试脚本编写:Jmeter
测试脚本时间设置:设置了1695个线程,每隔1s启动一个线程,设置压力测试运行的时间是3600秒(1小时)
测试脚本运行方式:使用命令无GUI方式运行
测试结果:从2018年12月29日一直运行到2019年1月2日早上一直都没有停止。
存在问题:
1.Jmeter脚本中的调度器设置中的持续时间没有生效
问题定位:
(1)Jmeter脚本中设置的参数在非GUI方式中运行的时候不生效
解决思路:
方法1:查看Jmeter脚本中设置的是否有相关属性不生效,可能是相关的参数开关没有打开。找到D:\Program Files\apache-jmeter-5.0\bin\下的jmeter.properties文件,查看是否有和调度器、持续时间相关属性没有打开
方法1结果:jmeter.properties文件没有相关属性设置
方法2:运行的参数不正确
在线程组属性的设置中,设置了线程数=1695、Ramp-up时间=1695、循环次数=永远、勾选了调度器,调度器配置的持续时间=3600秒。因为不知道1小时内可以跑多少个循环,所以在循环次数中设置了“永远”
对于这些参数,Jmeter的官方文档的解析是怎么样的呢?
文档里面说到,线程组的属性里面允许设置的是线程的个数、ramp-up的时间、循环次数,同时解析了“Note those 2 options override the Start time and End time.”override就是说这两个Duration (seconds) and Startup Delay (seconds)设置项的优先于或者是覆盖the Start time and End time。这个可以解析为什么我安装的Jmeter版本没有开始时间和结束时间选项。
因此推测在线程组的设置中,循环次数的设置override了调度器的设置,导致设置的测试时长没有生效,那么这个问题该如何解决呢?
请参考下一篇文章。
参考资源:
1.https://blog.csdn.net/selingchen/article/details/48106517
2.https://jmeter.apache.org/usermanual/test_plan.html