为什么Jmeter 运行时到达持续时间不停止?

终极解决方法:升级jmeter为最新版本即可解决!

在做并发测试时,遇到了设置持续时间,但是到达了持续时间后,一直不停止;线程组设置的信息如下:

 

从图中线程组设置可以看出Jmeter需要开启100个线程并且在300s内持续性的给后端服务器发请求,运行后从右上角看到,已经运行超过了300s,但是线程一直没有停止。

从jemeter.log 日志查看不停的打印Stopping because end time detected by thread

 

从网上查资料得知是因为某些线程被阻塞了,出现线程阻塞的原因是JMeter的所申请的内存不足导致的,解决该问题有几种方法:

  1. 调整脚本,可以通过调整并发数、减少断言,尽量不要使用监听器来减少额外的内存开销
  2. 非GUI模式下运行Jmeter脚本
  3. 通过调整jmeter.bat 中内存参数

默认配置是:set HEAP=-Xms1g -Xmx1g -XX:MaxMetaspaceSize=512m

根据实际情况进行修改heap 参数,我的是改成了

set HEAP=-Xms512m -Xmx1024m

注意:“Xms”(代表初始化堆栈内存的大小),“Xmx(代表最大内存池可以分配的大小)”

修改后,重启Jmeter。

 

 

可通过jconsole.exe验证jmeter内存设置是否成功

 

 

 

 

 

 

 

 

posted @ 2021-12-13 13:18  风吹稻香  阅读(2162)  评论(0编辑  收藏  举报