前言
1、使用 Jmeter Non-GUI 模式下,执行jmx脚本,遇到发生错误响应时,需要查看请求与响应的记录,然而默认是没有保存响应值的设置。所以我们需要把接口的实际响应结果保存到文件,排查错误的时候用。
2、方法一、二都需要修改配置文件,是一次修改永久全局生效。
方法三、四只需要在jmx脚本里操作就可以,比较灵活,可以在需要的接口中使用,不需要查看响应数据的接口就不使用。
可以根据自己的需求来使用
方法一:
1、修改/bin/jmeter.properties配置文件
jmeter.save.saveservice.output_format=xml
jmeter.save.saveservice.response_data=true
2、执行命令
./jmeter -n -t test.jmx -l test.jtl 或者
./jmeter -n -t test.jmx -l test.xml
3、注意
xml格式可以在网页中打开,有的浏览器还会给美化显示一下
因为这是输出结果文件格式已经改为 xml,不能再进一步解析为 Html 格式报告,所以这时 -e -o
参数无效。
得到的 test.jtl
可以使用 GUI 模式下的 View Results Tree 浏览打开观看,但是 View Results Tree 只能看到最多 200KB 的文件内容,更多的只能通过 grep 或者文本编辑器查看。
方法二:
1、在/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
2、执行命令
./jmeter -n -t test.jmx -l test.jtl 或者
./jmeter -n -t test.jmx -l test.xml
3、注意
user.properties会覆盖jmeter.properties,一般修改配置都是修改或者添加user.properties,不建议修改jmeter.properties
通过修改reportgenerator.properties的下面配置,可以改变生成的报告的内容。建议这些修改,都放到user.properties里面去
方法三:
1、在jmx脚本中每个接口下都使用beanshell断言,断言错误的接口用代码设置为错误信息打印出来,如下
String jsonResult = prev.getResponseDataAsString();//获取返回信息
if ( !jsonResult.contains(“哈哈哈”)) {
Failure = true;
FailureMessage = jsonResult;
}
2、执行命令
./jmeter -n -t test.jmx -l test.jtl
在test.jtl中就可以看到fail接口的实际返回信息
3、注意
这种方法就可以用-e -o /test生成html报告了,如下
./jmeter -n -t test.jmx -l test.jtl -e -o /test
方法四:
1、利用正则提取器或者json提取器,把响应结果提取出来,赋值给一个变量resultString
在接口下添加“响应断言”元件,在自定义失败消息中填入${resultString},如图
2、执行命令
./jmeter -n -t test.jmx -l test.jtl
在test.jtl中就可以看到fail接口的实际返回信息