JMeter采用NON GUI模式时如何记录并查看错误

在GUI模式下执行JMeter测试时,我们可以通过添加View Results Tree组件来查看JMeter请求的各类详情。那如果在正式测试场景中,当我们采用NON GUI模式时,遇到了断言或其他错误,想查看一下具体发生了什么什么,应该怎么处理呢?

比如下面这个简单的脚本,我们使用了Response Assertion断言来判断响应报文里面是否有name="searchBtn1"。

 

当时用NON GUI模式运行时,如果有错误,那最终的报告中会呈现类似如下的记录,仅仅是告诉我们断言检查没有找到,至于出现错误时的请求和返回具体什么就不清楚了。

 

此时如果想查看出现错误时的具体上送请求和返回报文,使用PostProcessor来替代ResponseAssertion。Groovy代码如下:

 1 def responseString = prev.getResponseDataAsString();
 2 def responseCheck = responseString =~ /name="searchBtn1"/
 3if (responseCheck.find())
 4 {
 5     prev.setSuccessful(true);
 6 }else{
 7     def samplerData = prev.getSamplerData();
 8     log.info("Error, samplerData: "+samplerData);
 9     log.info("Error, responseString: "+responseString);
10     prev.setSuccessful(false);
11 }

 其中prev.getResponseDataAsString()得到服务器的返回报文,根据返回报文的情况,使用prev.setSuccessful设置取样器的成功与否,然后如果没有找到检查点,则将请求prev.getSamplerData()和返回报文同时记录到日志中,并设置prev.setSuccessful为false。

 此时,我们需要把响应断言禁用,只保留JSR223后置处理器,保存后脚本的结构如下

这个时候,我们再使用NONGUI模式执行测试,如果出现错误,检查压力发起机的jmeter_server.log日志,里面记录的SamplerData就是发送的请求,responseString就是服务器的响应。根据这些就可以对错误进行一个基本的判断,是上送报文的问题还是服务器在大压力下出现了返回错误等等。

 

在这欢迎大家关注我的个人微信号,测试杂货铺,微信公众号搜索就可以,哈哈。

猜你喜欢

转载自www.cnblogs.com/dblog1/p/10635786.html