OPERATOR_GUIDE.md
2.79 KB
关系运算符使用指南
概述
expected_response 字段支持多种关系运算符,可以进行更灵活的响应验证。
支持的运算符
1. 比较运算符
$ne - 不等于
{"code": {"$ne": 500}}
检查 code 字段不等于 500。
$eq - 等于
{"count": {"$eq": 10}}
检查 count 字段等于 10。
$gt - 大于
{"count": {"$gt": 0}}
检查 count 字段大于 0。
$gte - 大于等于
{"score": {"$gte": 60}}
$lt - 小于
{"timeout": {"$lt": 1000}}
$lte - 小于等于
{"age": {"$lte": 18}}
2. 包含运算符
$in - 值在列表中
{"status": {"$in": ["pending", "done", "processing"]}}
$nin - 值不在列表中
{"type": {"$nin": ["admin", "root", "system"]}}
3. 字符串运算符
$contains - 字符串包含
{"msg": {"$contains": "success"}}
$not_contains - 字符串不包含
{"error": {"$not_contains": "timeout"}}
$regex - 正则表达式匹配
{"email": {"$regex": "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$"}}
4. 范围运算符
$range - 范围判断 [min, max]
{"value": {"$range": [0, 100]}}
检查 value 在 0 到 100 之间(包含边界)。
使用示例
示例1:验证状态码
{
"code": {"$ne": 500},
"msg": {"$contains": "成功"}
}
示例2:验证列表数据
{
"code": 0,
"data": {
"count": {"$gt": 0},
"items": ["__NOT_NULL__"],
"status": {"$in": ["active", "inactive"]}
}
}
示例3:验证分页数据
{
"code": 0,
"pageIndex": {"$gte": 1},
"pageSize": {"$range": [1, 1000]},
"total": {"$gte": 0}
}
示例4:验证邮箱和年龄
{
"code": 0,
"email": {"$regex": "^.*@.*$"},
"age": {"$range": [18, 100]},
"roles": {"$in": ["user", "admin"]},
"status": {"$not_contains": "banned"}
}
Excel中的使用
在 expected_response 列中填入 JSON 格式的期望响应:
case_id | api_name | expected_response
1 | 测试接口 | {"code": 0, "msg": "success"}
2 | 列表接口 | {"code": 0, "data": {"count": {"$gt": 0}}}
3 | 错误处理 | {"code": {"$ne": 200}}
特殊值
-
"__NOT_NULL__"- 检查字段非空 -
["__NOT_NULL__"]- 检查数组非空
注意事项
-
类型匹配:比较运算符(
$gt,$lt等)要求数据类型兼容 -
正则表达式:使用
$regex时,值会被转换为字符串后进行匹配 -
列表范围:
$range只支持两元素列表[min, max],两个值都是包含的 -
错误处理:运算符验证失败会记录在测试报告的
error字段中
更多示例请查看 USER_GUIDE.md