今天在针对单一接口压测时出现了从未遇到的问题,设好并发量后用调度器控制脚本的开始和结束,但在脚本应该自动结束时间,脚本却停不下来,手动stop报告就会有error率,卡了我很久很久不能解决,网络上也基本查不到具体状况的解决办法,师傅说可以强杀进程,但我想进程杀掉了我可怎么看报告呢,忽然想起在linux运行jmeter就是没界面的,把运行的结果存到一个.jtl文件里回到Win系统下用Jmeter界面可以打开看报告,那Win也应该能像linux那样保存结果到.jtl文件,那不就能绕开常规的界面执行和查看报告了。可尝试这个办法。结果哈哈O(∩_∩)O哈哈~
无界面单机压测
为方便管理起见,bin目录下创建一个文件夹testplan用来存放脚本(.jmx文件),再创建一个文件夹testresult用来存放脚本执行后的结果(.jtl文件)
结果文件是可以在Jmeter可视化界面打开的,它保存了脚本执行过程中的各种结果非常全面,结果树、聚合报告、表格查看结果等都可以将它打开看到响应的数据。
执行方法是:命令到bin目录下,在执行如下命令,
jmeter.bat -n -t testplan/new_time1.jmx -l testresult/new_time1_100_180s.jtl
在脚本运行过程中,由于无界面,命令窗口会每隔一段时间打印一下当前的运行状态,你会在窗口中看到类似下面的信息:
summary+ 是开始这个时点的报告;
summary= 是总结它之前的报告,呈现出的是当前时点之前总的情况,通常是均值;
最后一个summary=是本次压测总的情况,如果脚本按时正常结束的话,最后一次summary里面的值应该和你从GUI打开聚合报告或概括报告的值一致。
正常结束应该是这样的
无界面分布式压测
当并发量过大单机无法承担需要做分布式压测,分布式的配置同以前文章介绍的一样,再次不做赘述,(一定要在终端机添加环境变量 JMETER_HOME到bin的父目录)。
执行办法是:
先把脚本和参数文件存放到各台终端相同目录下,
将每台终端的jmerter-server.bat打开等待主机发号施令,
在主机命令窗口键入类似以下命令:meter.bat -n -t testplan/new_time1_10104_100_180s.jmx -R 192.168.6.198:1099 -l testresult/new_time1_10104_100_180s.jtl
命令中-r 代表远程 remote ,后面跟随的是每台终端机jmeter-server窗口显示的 ip 和默认端口,同样,多台终端之间由逗号隔开,其他都与单机命令一样。
于是你可以看到各台终端机的jmeter-server窗口有关运行和阶段性summary的信息直至运行结束。
总体的报告都在你主机保存的那个.jtl文件里。