JMeter采用NON GUI模式时如何记录并查看错误
在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就是服务器的响应。根据这些就可以对错误进行一个基本的判断,是上送报文的问题还是服务器在大压力下出现了返回错误等等。
在这欢迎大家关注我的个人微信号,测试杂货铺,微信公众号搜索就可以,哈哈。
最新文章
- java调用CXF WebService接口的两种方式
- Python里的编码问题
- iOS 推送所调用的函数详解
- pymongo 3.3 使用笔记
- 使用openssl生成RSA公私密钥
- chkdsk 和sfc.exe修复命令
- JAVA基础之正则表达式
- centos6.5下磁盘分区及挂载
- cocos2d-x编程的一些小技巧
- Joseph(约瑟夫环)
- js基础语法(一)
- web 富文本编辑器总结
- iOS 注册密码加密 添加了时间戳 遇到的问题...
- Lucene全文检索学习笔记
- iOS----------has copy command from(bug修复)
- SpringBoot中使用JNnit4(一)之Mockito的使用
- cnn神经网络入门
- 语义SLAM研究现状总结
- 第三次Java作
- Confluence 6 警告的类型
热门文章
- tp5 migrate数据库迁移工具
- 让sublime text3支持Vue语法高亮显示[转]
- CentOs7 编译安装PHP7.1.5
- 关于军训的模拟赛-R2
- BZOJ3673/3674:可持久化并查集
- [JLOI2013]删除物品
- composer(管理依赖关系的工具) 及配置信息
- 2.2.3 TableLayout(表格布局)
- shiro实战系列(三)之架构
- Javascript异步编程之setTimeout与setInterval详解分析(一)