jmeter响应断言
2021-03-25 本文已影响0人
开心的小哈
断言是验证服务器的返回请求的参数进行验证
释义:验证测试结果是否达到预期效果
Apply to:
勾选第一个:主请求和子请求都进行验证,不好含heads验证
勾选第二个:主请求进行断言
模式匹配规则:
包括:包含下方字符串,可以使用正侧表达式
匹配:匹配下方字符串,可以使用正侧表达式
相等:等于下方字符串
字符串:包含下方字符串,不可以使用正侧表达式
否:取反测试模式的关键词
或者:对添加的测试模式取或者关系,一个满足条件即可true
测试模式:
add:添加多个匹配模式,默认是全部满足
JSON断言
释义:JSON断言可以对服务器返回的JSON文档进行验证。
JSON断言有两种使用模式
1.根据JSONPath能否在JSON文档中找到路径;
2.根据JSONPath提取值并对值进行验证。
使用:选择HTTP请求右键添加JSON断言:
image.png
诺文档格式为非JSON则断言失败;
诺找不到路径断言失败;
诺提取值与预期值不一致断言失败;
JSONPath语法元素
XPath | JSONPath | Description |
---|---|---|
/ | $ | 跟对象/元素 |
. | @ | 当前对象/元素 |
/ | . or [] | 子操作符 |
.. | n/a | JSON Path不支持父操作符 |
// | .. | 递归下降/ 选择所有符合条件的节点 |
* | * | 通配符,代表所有对象/元素 |
@ | n/a | JSON Path不支持属性访问 |
[] | [] | 下标运算,通过数组元素的下表访问数组元素 |
| | [ , ] | Union操作符,使用间隔的名称或数组下标生成子集 |
n/a | [start:end:step] | 数组切片 |
[] | ?() | 使用过滤表达式 |
n/a | () | 脚本表达式 |
() | n/a | JSON Path不支持分组 |
使用:
可以用察看结果树里的JSON Path Tester的结果进行输入JSONPath语句测试,语句是否可以获得到对应数据入下图:
语句使用:
$.data.dataList[1]
获取data下dataList数组下第1个数组内容
$.data.dataList[?(@.id==287)]
获取data下dataList数组里的id等于287的数据
$.data.dataList[*].id
获取data下dataList所有数组里的id属性
$.data.dataList[0].id
获取data下dataList第0个数组里的id属性
$.data.dataList[?(@.projectName=='播恩集团')]
获取data下dataList数组里的projectName等于 播恩集团 的数据
$.data.dataList[?(@.projectName)]
获取data下dataList数组里包含的projectName属性的数据
$..id
获取所有id属性的值
(注意这里不能写成=,要写成==)因为=是赋值,而==则是判断语句