1 关于检查点
其实就是断言,那什么是断言?之前我们对几个接口进行了请求,并设置了查看结果树,我们人工检查它是对的。那如果数据量多或者做性能测试的时候,不可能人工挨个看,我们可以通过设置断言组件来进行结果或者响应检查;2 断言
断言组件是通过获取服务器响应数据,然后根据断言规则去匹配这想响应数据;如果匹配不到,出现异常时,JMeter就会断定这个事务失败;查看结果树中看到请求失败的事务的请求名称是红色字体;以下以响应断言组件为例来说明断言的一些应用;实际应用中响应断言可满足80%以上的验证问题。3 响应断言(Response Assertion)
3.1 参数说明
参数 (资料图) | 说明 |
---|---|
名称 | 随意设置具有业务意义即可 |
注释 | 随意设置,可为空 |
| 匹配范围为当前父取样器覆盖至子取样器 |
| 匹配当前父取样器 |
| 匹配子取样器 |
| 对JMeter变量值进行匹配 |
响应文本 | 响应服务器返回的内容,除去Header部分 |
响应代码 | 匹配响应代码,如200 |
响应信息 | 匹配响应信息,如“成功” |
响应头 | 匹配响应中的头信息 |
请求头 | 匹配请求中的头信息 |
URL样本 | 匹配URL链接 |
文档(文本) | 对文档内容匹配 |
忽略状态 | 第一个响应断言失败可忽略结果,进行下一个断言 |
请求数据 | 匹配请求数据 |
包括 | 响应内容匹配内容代表响应成功,支持正则 |
匹配 | 响应内容要完全匹配需要匹配的内容,大小写不敏感,支持正则 |
相等 | 响应内容要完全等于需要匹配的内容 ,大小写不敏感,支持正则 |
字符串 | 响应内容匹配需要匹配的内容代表响应成功 ,大小写敏感,需要匹配的内容为字符串非正则 |
否 | 降低匹配级别 |
或者 | 有一个通过则整个断言通过 |
测试模式 | 要匹配的字符串或者正则表达式 |
自定义失败信息 | 如字面意思 |
4 实例说明
在JMeter笔记9 | JMeter参数化的基础上加上响应断言即可;即在“1-获取token”请求加上响应断言;在“1-1-获取用户列表”请求加上响应断言。4.1 获取token接口加响应断言
添加【响应断言】,设置参数如下:说明:即通过响应代码201来匹配响应是否成功。4.2 获取用户列表接口加响应断言
添加【响应断言】,设置参数如下:说明:通过设置测试模式"page":1
,看响应文本中是否包含"page":1
来判断是否成功。4.3 查看运行结果
5 本文涉及到的脚本
false true false COMMON /zentao/api.php/v1 = Content-Type application/json 127.0.0.1 80 http UTF-8 6 continue false 1 1 1 false true true false {"account": "admin", "password": "123456"} = UTF-8 /${COMMON}/tokens POST true false true false token $.token 1 无 false token "token":"(.*?)" $1$ 1 201 Assertion.response_code false 2 true false {"page": 1,"limit": 20} = /${COMMON}/users GET true false true false token ${token} "page":1 Assertion.response_data false 2 true false {"account": "${account}", "password": "${password}", "realname": "测试用户"} = UTF-8 /${COMMON}/users POST true false true false token ${token} D:/A_jmeter_test/create_user.txt UTF-8 account,password true , false true false shareMode.all id $.id 1 NULL UTF-8 /${COMMON}/users/${id} DELETE true false true false token ${token} false saveConfig true true true true
true true true false true true false false false true false false false true 0 true true true true true true