jmeter-断言介绍与使用

性能测试中较少用到断言。断言会增加脚本执行时间,但是接口测试中断言是必备的。什么是断言?其实就是功能测试中常说的预期结果和实际结果是否相等。

  • 响应断言
  • JSON Assertion
  • Size Assertion
  • JSR223 Assertion
  • XPath Assertion
  • Compare Assertion
  • 断言持续时间
  • HTML Assertion
  • MD5Hex断言
  • SMIME Assertion
  • XML断言
  • XML Schema Assertion
  • BeanShell断言

响应断言

见图知意。接口测试中较少用到。

JSON Assertion

也算是见图知意吧。这里需要注意一下

Additionally assert value: 等于特定值

Match as regular expression:符合正则表达式

Size Assertion

见图知意。。。

JSR223 Assertion

JSR223 Assertion可以选择多种语言,如下图所示:

笔者常用的是beanshell和JS。这里我们以beanshell举例。

JSR223 Assertion实例





import org.json.*;

//获取上一个请求的返回值
String response = prev.getResponseDataAsString();
//将返回值转换为json
JSONObject responseJson = new JSONObject(response);
//获取responseMessage
String status = responseJson.get("status").toString();
String message = responseJson.getString("message"); if(!status.equals("0")) {
Failure = true;
FailureMessage = "status错误";
}else{
FailureMessage = "status正确";
} if(!message.equals("username or password error")) {
Failure = true;
FailureMessage = "message错误";
}else{
FailureMessage = "message错误";
}

运行结果

XPath Assertion

可以参考11. Jmeter-后置处理器二中的XPath Extractor

Compare Assertion

嗯。。用到正则了。暂时跳过。

断言持续时间

这个就比较好理解了。断言取样器运行测试消耗掉的时间,比如我们的持续时间填写10,实际时间如果是20s,那么就会断言失败。

HTML Assertion

MD5Hex断言

对返回的MD5进行断言,直接填入即可。

SMIME Assertion

可以参考SMIME Assertion,用的不多。

XML断言

用来验证响应数据是正确的XML格式,不常用。

XML Schema Assertion

BeanShell断言

可以参考JSR223 AssertionBeanShell断言也是我们常用的断言。

软件测试汪简书地址

软件测试汪博客地址

欢迎关注微信公众号:软件测试汪。软件测试交流群:809111560

转载请注意出处,谢谢合作

最新文章

  1. LLC 逻辑链路控制
  2. Oracle 分区表的新增、修改、删除、合并。普通表转分区表方法
  3. 关于js执行顺序
  4. SLF4J环境变量配置
  5. javascript/jquery判断是否为undefined或是null!
  6. myeclipse 6.5配置tomcat7.X
  7. 转 网络IO模型:同步IO和异步IO,阻塞IO和非阻塞IO
  8. bzoj 2502 清理雪道(有源汇的上下界最小流)
  9. Linux新手入门:通过chmod改变文件权限--转
  10. VUE中的v-if与v-show
  11. hdu3986Harry Potter and the Final Battle
  12. 深入源码剖析String,StringBuilder,StringBuffer
  13. 整理一点与排列组合有关的问题[组合数 Stirling数 Catalan数]
  14. svg从入门到装逼(一)
  15. ABA问题
  16. Spring boot 使用多个RedisTemplate
  17. hdu6273 线性差分
  18. Erlang/Elixir: 使用 OpenCV, Python 搭建图片缩略图服务器
  19. 深入理解MapReduce的架构及原理
  20. ping telnet 指令

热门文章

  1. Ngnix VS Apache
  2. MySQL集群(PXC)入门
  3. 工厂模式vs简单工厂
  4. 转 router-view 的理解
  5. 《剑指offer》面试题3 二维数组中的查找 Java版
  6. CF208E Blood Cousins
  7. Mysql命令收集【重要】
  8. Js数据去重复,时间更换格式,cookie,localStorage和sessionStorage的使用等通用方法
  9. matlab调试技巧
  10. HttpGet请求传递数组(集合)