JMeter教程系列(三)-断言
断言
1 响应断言
响应断言可以增加各种匹配方式来比较请求或者响应的各种字段。匹配字符串包括
- 包含,匹配- perl5类型的正则表达式
- 相等,子串-文本类型,大小写敏感
正则表达式后面再细讲
2 断言持续时间
就是判断响应时间是否在给定的时间内,如果超出则断言失败
3 大小断言
指定响应大小的判断方式,如相等,大于,小于等等,如果响应为空,则大小是0
4 beanshell断言
使用beanshell脚本来验证响应结果
为了更好的性能表现,建议使用JSR223断言+Groovy
5 MD5断言
md5断言就是验证响应值的md5加密结果是否一致
6 JSR223断言
JSR223断言是利用JSR223脚本语言来验证上一个请求结果。单独细讲JSR223基础使用
4.7 JSON断言
json路径匹配使用方式参考
https://github.com/json-path/JsonPath
操作符
| 操作符 | 描述 |
|---|---|
$ |
根元素,所有路径的起始 |
@ |
过滤器 |
* |
通配符,数字或名称,表示所有 |
.. |
深度扫码 |
.<name> |
用点标记的子元素 |
['<name>' (, '<name>')] |
用中括号标记的一个或多个子元素,逗号分隔 |
[<number> (, <number>)] |
数组下标,多个的时候用逗号分隔 |
[start:end] |
数组的切片,开头和结尾下标 |
[?(<expression>)] |
过滤表达式,表达式结果必须是布尔值 |
函数
函数在路径的尾部引入,他的输入就是路径表达式的结果,输出类型由函数本身决定。
| 函数 | 描述 | 输出 |
|---|---|---|
| min() | 返回数组元素中最小值 | Double |
| max() | 返回数组元素中最大值 | Double |
| avg() | 返回数组元素的平均值 | Double |
| stddev() | 返回数组元素的标准差 | Double |
| length() | 返回数组长度 | Integer |
| sum() | 返回数组元素的和 | Double |
过滤器操作符
过滤器是对数组进行过滤的一个逻辑表达式, A typical filter would be [?(@.age > 18)] where @ represents the current item being processed. More complex filters can be created with logical operators && and ||. String literals must be enclosed by single or double quotes ([?(@.color == 'blue')] or [?(@.color == "blue")]).
| 操作符 | 描述 |
|---|---|
| == | 相等 |
| != | 不等t |
| < | 小于 |
| <= | 小于等于 |
| > | 大于 |
| >= | 大于等于 |
| =~ | 正则匹配 |
| in | 在数组中 |
| nin | 不在数组中 |
| subsetof | 子集 |
| anyof | 交集 |
| noneof | 不相交 |
| size | 长度相等 |
| empty | 为空 |
例子
{
"store": {
"book": [
{
"category": "reference",
"author": "Nigel Rees",
"title": "Sayings of the Century",
"price": 8.95
},
{
"category": "fiction",
"author": "Evelyn Waugh",
"title": "Sword of Honour",
"price": 12.99
},
{
"category": "fiction",
"author": "Herman Melville",
"title": "Moby Dick",
"isbn": "0-553-21311-3",
"price": 8.99
},
{
"category": "fiction",
"author": "J. R. R. Tolkien",
"title": "The Lord of the Rings",
"isbn": "0-395-19395-8",
"price": 22.99
}
],
"bicycle": {
"color": "red",
"price": 19.95
}
},
"expensive": 10
}
| 路径 | 结果 |
|---|---|
| $.store.book[*].author | 所有书的作者 |
| $..author | 所有作者 |
| $.store.* | store下的所有内容,包括book和bicycle |
| $.store..price | store下的所有价格 |
| $..book[2] | 第3个book |
| $..book[-2] | 倒数第2个book |
| $..book[0,1] | 前2个book |
| $..book[:2] | 从0-1的book,也就是第1和第2个book |
| $..book[1:2] | 从1-1的book,也就是第2个book |
| $..book[-2:] | 倒数第2和倒数第1个book |
| $..book[2:] | 从第3个到末尾所有book |
| $..book[?(@.isbn)] | 所有包含isbn的book |
| $.store.book[?(@.price < 10)] | 所有价格小于10的book |
| $..book[?(@.price <= $['expensive'])] | 所有价格小于等于‘expensive’的book |
| $..book[?(@.author =~ /.*REES/i)] | 所有作者匹配正则表达式的book |
| $..* | 所有 |
| $..book.length() | book数量 |
作者:EricYou
-------------------------------------------
有道无术,术尚可求。有术无道,则止于术!
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!

浙公网安备 33010602011771号