所谓断言,就是检查接口的返回是否符合预期。

自动化测试脚本,如果断言做的不好,就好比测试用例不写预期结果,因此我认为断言是最重要一部分。

关于如何做好断言,我觉得要做到:要断言的内容一定是唯一的,每个接口都要做断言举例

用例:新增一条数据,然后去列表查看新增是否成功。新增数据,如果成功返回数据id,如下:

{"id": "63c81f8c-ba80-4504-ac1d-66f3774307b2","msg":"ok","code":0
}

列表数据返回如下:

无数据
{"data": []
}有数据
{"data": [{"id": "63c81f8c-ba80-4504-ac1d-66f3774307b2","name": "zhangsan"}]
}

如何要断言列表中存在我新增的数据?错误断言:断言data,不管是否存在我们要的数据,返回内容都包含data正确断言:从新增接口提取返回的ID,然后断言ID出现在列表中注意:如果id是自增形式的,建议使用json断言,在这里json断言是首选

实现断言的三种方式
我们首先要把新增接口的id提取出来,用到json提取器,具体配置见下图

JSON断言

json断言配置如下,取出列表所有数据的id看是否存在新增返回的id

关于json断言配置解释,在前面文章已经有介绍。

响应断言

通过响应断言进行断言预期,只需要判断列表数据中出现id,配置如下

关于响应断言配置解释,在前面文章已经有介绍。

Beanshell断言

Beanshell断言在实际运用的比较少,除非是结果需要经过处理后进行断言才用得到,本文为了举例,用Beanshell断言实现我们的目的,配置如下

附上脚本源码

import org.json.*;//获取上一个请求的返回值
String response = prev.getResponseDataAsString();
//将返回值转换为json
JSONObject responseJson = new JSONObject(response);
//从json提取data数组
JSONArray dataList = responseJson.getJSONArray("data");
//遍历所有列表,判断是否存在idfor(i==0;i<dataList.length;i++){JSONObject item = dataList[i];if(item.get("id")==${id}){Failure = false; FailureMessage = "存在新增的id";break;}else{Failure = true; FailureMessage = "不存在新增的id";}}

补充

假如我们执行删除数据后,我们需要断言不存在于列表

响应断言取反

json断言取反

Beanshell断言读者自己想想如何处理吧,比较灵活!

jmeter响应断言使用_十二、Jmeter断言-响应断言、Json断言和Beanshell断言相关推荐

  1. jmeter学习指南之响应断言和beanshell断言

    一.响应断言 1.什么是响应断言? 在jmeter中最常用的断言方法是"响应断言",它是通过检查sampler的请求内容和响应结果中是否匹配指定的字符串来判断结果是否正确. 响应断 ...

  2. beanshell断言_jmeter学习指南之响应断言和beanshell断言

    一.响应断言 1.什么是响应断言? 在jmeter中最常用的断言方法是"响应断言",它是通过检查sampler的请求内容和响应结果中是否匹配指定的字符串来判断结果是否正确. 响应断 ...

  3. 二十二.jmeter在linux下运行

    1.在GUI模式下,新建一个测试计划,生成一个jmx文件(测试计划的创建此处不详细说明,大家可以参考之前的一些章节),保存并上传到linux机器对应目录. 2.在linux目录下找到你的测试计划,vi ...

  4. jmeter 用户数 线程数_如何使用jmeter编写TCP测试脚本

    创建线程组 新建线程组后,会出现一个线程组的配置界面,如下 Number of Threads(users):这是 JMeter 中的线程数,也可以称之为用户数,是产生TPS的,至于产生多少的TPS取 ...

  5. jmeter负载测试测试_使用Apache JMeter负载测试Web应用程序

    jmeter负载测试测试 Apache JMeter是用于模拟Web应用程序上的用户负载以测试性能的出色工具. 您可以通过指定用户数量和请求间隔来轻松地构建测试计划,然后JMeter将为每个用户生成一 ...

  6. buck电路pscad仿真_十二脉波整流器谐波抑制控制策略仿真

    十二脉波 整流器谐波抑制系统由不控整流主电路.BuckBoost 补偿电路.不控整流电流给 定和控制系统组成.不控整流主电路通过 Y-∆变压器和电网连接,原边采用 Y 型 连接,而两个副边分别采用 Y ...

  7. 12星座的出生年月日性格_十二个星座的出生年月日

    星座与天道的十二个课程 占星术是一门让人类了解自身处境的学问,自古以来占星术一直用这种方法帮助人类,占星术的十二个星座,透露了天道的十二个课程,这有点象中国易经的六十四卦一样,都是在告诉人类,处什麼样 ...

  8. jmeter高并发测试_利用Apache JMeter进行高并发测试(二)

    上一篇文章里测试了服务器经过负载均衡之后的静态页面(准确的说也不完全是静态页面,因为里面也包含了数据库请求,只是没有数据所以看着像是一个静态页面),今天来做下请求动态数据页面压力测试. 先使用Navi ...

  9. jmeter 线程执行顺序_性能测试之jmeter逻辑控制种类详解一

    逻辑控制器介绍 Jmeter逻辑控制可以对元件的执行逻辑进行控制,除Once only Controller仅一次控制器以外,其他控制器都可以可以嵌套其他种类的控制器,下面是jmeter5.3支持的控 ...

最新文章

  1. Nature综述:微生物的衰老与寿命
  2. struts2中Action名称的搜索顺序
  3. UpdatePanel 的 UpdateMode 和 ChildrenAsTriggers(较好的总结了前面几篇博客的内容)
  4. 如何用r压缩列联表_压缩袋好用吗?哪个牌子比较好?如何选择真空压缩袋?羽绒服能用真空压缩袋吗?...
  5. commit git 删除文件夹_从Git提交中删除文件
  6. c#进销存(1):需求分析
  7. MySQL技术内幕:InnoDB存储引擎
  8. 锐浪报表数据源access_锐浪报表使用技能
  9. vs2019运行提示脚本错误
  10. English语法_指示代词 -such / the same
  11. 8.Spring全家桶总结
  12. qlv转mp4出来没有画面,无画面,解决方法
  13. 【LeetCode系列】数的奥秘之幂数与完全平方数
  14. web前端 js实现频域水印制作
  15. 嵌入式典型ARM处理器介绍以及分类
  16. python中shutil是什么意思_python之shutil模块详解
  17. WWDC 2015后果
  18. chrome浏览器被2345和newduba(毒霸)劫持-介绍主流的两种方式
  19. Win32多线程调用gdal库接口
  20. 显卡3D管理程序设置与游戏画质的关系

热门文章

  1. ajax向后台请求数据,后台接收到数据并进行了处理,但前台就是调用error方法...
  2. Html之head部分详解
  3. 微软SQL Server数据库的两种请求游标
  4. 一个简单判等例子的深度分析
  5. 人才市场最吃香四个专业,就业前景好,很容易拿到高薪!
  6. 学英语必备的18条法则,建议收藏!
  7. 人大经济论坛:统计学的一些经典教材
  8. matlab添加多个legend
  9. Socket编程原理概述
  10. 计算最长公共数字串个数