场景:使用非GUI模式下去运行jmeter脚本,测完后下载到本地到jmeter擦看结果数打开jtl文件,request出现报No data to display。。。。。
再次引起另一问题:为什么使用GUI和非GUI模式下运行?
我的理解:
GUI模式:图形化界面虽然好看易懂,但是会消耗很多资源,运行的结果是保存到jmeter运行的内存,
不适用大型负载测试,如果大并发运行出现jmeter工具奔溃,影响整体的压测结果。
非GUI:用命令行形式会实时将jtl文件保存到本地里,不会消耗太多资源,不会撑爆内存。
1.大并发压测后,结果出现错误率较高,我们分析错误会无法对症下药,如下图:
注意: 上面所示的信息就相当于GUI界面下聚合报告元件所显示的信息
其中主要有两种信息:summary + 和summary =,其它项都是类似的
summary + 2355 in 00:00:26:在26秒内增加了2355 个请求,其中时间间隔由配置文件中的interval统计频率的值决定
summary = 12347 in 00:01:56:在1分56秒内产生的总请求数是12347 个,其中的时间段是从脚本运行开始计算到当前时间为止,一般在脚本运行过程中主要关注 “summary=” 信息即可
2.下载jtl文件到本地,命令行:sz jtl文件名
3.jmeter查看结果数打开jtl文件,出现报:No data to display
4.如下步骤进行解决:
在服务器上的 /bin/user.properties 加入如下参数:
jmeter.save.saveservice.output_format=xml jmeter.save.saveservice.response_data=true jmeter.save.saveservice.samplerData=true jmeter.save.saveservice.requestHeaders=true jmeter.save.saveservice.url=true jmeter.save.saveservice.responseHeaders=true
命令行:vim user.properties,出现如下,(我给它注释掉了,用时在打开)
最后,用命令行重新运行再去jemter打开:
jmeter -n -t /path/to/test.jmx -l /path/to/results.jtl
值得注意:对于命令行参数的解读
格式:
jmeter -n -t [jmx脚本路径] -l [测试输出结果文件路径]
-n: 表示 non gui mode,就是非图形化模式 -t: 即testplan,后跟要运行的jmeter脚本的路径和脚本名称。 若指定路径下没有指定名称的脚本,则自动创建。 若没有路径只写脚本名称,则默认是在当前目录查找或创建。 -l: 后跟输出结果文件路径和结果文件名称。 若指定路径下没有指定名称的脚本,则自动创建,可以生成csv或者jtl文件。 若只写脚本名称,则默认是在当前目录查找或创建。 示例: jmeter -n -t testplan.jmx -l test.jtl 示例含义:以命令行模式运行当前目录下的testplan.jmx文件,并在当前目录下输出日志文件test.jtl