前言
不论是自动化测试脚本,亦或者是测试平台,断言是必定存在的。而在涉及到多接口依赖,上下文变量传递的情况下,JMeter 的关联也尤为重要。
若没有 JMeter 基础,请点击前往:零基础测开学习 19——JMeter 基础
若不了解 JMeter 经典组件与参数化,请点击前往:零基础测开学习 20——JMeter 三个重要组件 + 参数化
JMeter 断言
基本概念
断言
让程序自动判断预期结果与实际结果是否一致
提示
- JMeter 在请求层面有个自动判断机制(响应状态码)
- 但是请求成功了,并不代表结果一定正确,因此需要检测机制提高测试准确性
JMeter 常用断言
响应断言
作用
对 HTTP 请求的任意格式的响应结果进行断言
位置
测试计划——>线程组——>HTTP 请求——>(右键添加)断言——>响应断言
参数

JSON 断言
作用
对于 HTTP 请求的 JSON 格式的响应结果进行断言
位置
测试计划——>线程组——>HTTP 请求——>(右键添加)断言——>JSON 断言
参数

- Assert JSON path exists:用于断言的 JSON 元素的路径(实际结果)
- Additionally assert value:如果您想要某个值生成断言,请选择复选框(即 Expected Value)
- Match as regular expression:使用正则表达式进行断言
- Expected Value:期望值(期望结果)
- Expect null:如果希望为空,请选择复选框
- Invert assertion(will fail if above conditions met):反转断言(如果满足以上条件则失败)
断言持续时间
作用
检查 HTTP 请求的响应时间是否超出要求范围
位置
测试计划——>线程组——>HTTP 请求——>(右键添加)断言——>断言持续时间
参数

JMeter 关联
基本概念
关联
当请求之间有依赖关系,比如一个请求的入参是另外一个请求返回的参数,这时候就需要用到关联处理
JMeter 中常用的关联方法
- 正则表达式提取器
- Xpath 提取器
- JSON 提取器
正则表达式提取器
作用
针对任意格式的响应数据进行提取
测试计划——>线程组——>HTTP 请求——>(右键添加)后置处理器——>正则表达式处理器
参数

- 引用名称:存放提取出来的参数名称,供下一个请求引用,如填写 title,则可用 ${titile}引用它
- 正则表达式:左边界 (.*?) 有边界
- ():括起来的部分就是要提取的
- :匹配任何字符串
- *:0 次或多次
- ?:不要太贪婪,在找到第一个匹配项后停止
- 模板:用 $$ 引用起来,如果在正则表达式中有多个提取值,则可用 $2$$3$ 等等,表示解析到第几个值给 title。如:$1$ 表示解析到第 1 个值
- 匹配数字:0 代表随机取值,-1 代表全部取值,1 代表取第一个值
- 缺省值:如果参数没有取得到值,那默认给一个值给它取
XPath 提取器
作用
针对 HTML 格式响应结果数据进行提取
位置
测试计划——>线程组——>HTTP 请求——>(右键添加)后置处理器——>XPath 处理器
参数

- Use Tidy(tolerant parser):
- 当需要处理的页面是 HTML 时,必须选中该项
- 当需要处理的页面是 XML 或 XHTML 格式时,取消选中该选项
- 引用名称:存放提取出的值的参数名称
- XPath Query:用于提取值的 XPath 表达式
- 匹配数字:如果 XPath 路径查询出许多结果,则可以选择提取哪一个。0:表示随机,-1:表示提取所有结果,1:表示第一个值
- 缺省值:参数的默认值
JSON 提取器
作用
针对 JSON 格式的响应结果数据进行提取
位置
测试计划——>线程组——>HTTP 请求——>(右键添加)后置处理器——>JSON 提取器
参数

JMeter 属性
JMeter 属性的配置函数
JMeter 属性的函数执行
后记
作为第一次实习,我真正的感受到了互联网企业的氛围,能够充分发挥自己所长的快乐,我认为是学校无法提供的。我现在负责我司自研产品的测试平台的开发,在这个过程中也感受到了测试开发的价值,每次开发完一个测试用例自动化并跑起来的时候,那个体会绝对是最爽的。