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

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

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

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

 def responseString = prev.getResponseDataAsString();
def responseCheck = responseString =~ /name="searchBtn1"/
​if (responseCheck.find())
{
prev.setSuccessful(true);
}else{
def samplerData = prev.getSamplerData();
log.info("Error, samplerData: "+samplerData);
log.info("Error, responseString: "+responseString);
prev.setSuccessful(false);
}

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

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

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

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

最新文章

  1. java调用CXF WebService接口的两种方式
  2. Python里的编码问题
  3. iOS 推送所调用的函数详解
  4. pymongo 3.3 使用笔记
  5. 使用openssl生成RSA公私密钥
  6. chkdsk 和sfc.exe修复命令
  7. JAVA基础之正则表达式
  8. centos6.5下磁盘分区及挂载
  9. cocos2d-x编程的一些小技巧
  10. Joseph(约瑟夫环)
  11. js基础语法(一)
  12. web 富文本编辑器总结
  13. iOS 注册密码加密 添加了时间戳 遇到的问题...
  14. Lucene全文检索学习笔记
  15. iOS----------has copy command from(bug修复)
  16. SpringBoot中使用JNnit4(一)之Mockito的使用
  17. cnn神经网络入门
  18. 语义SLAM研究现状总结
  19. 第三次Java作
  20. Confluence 6 警告的类型

热门文章

  1. tp5 migrate数据库迁移工具
  2. 让sublime text3支持Vue语法高亮显示[转]
  3. CentOs7 编译安装PHP7.1.5
  4. 关于军训的模拟赛-R2
  5. BZOJ3673/3674:可持久化并查集
  6. [JLOI2013]删除物品
  7. composer(管理依赖关系的工具) 及配置信息
  8. 2.2.3 TableLayout(表格布局)
  9. shiro实战系列(三)之架构
  10. Javascript异步编程之setTimeout与setInterval详解分析(一)