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__"] - 检查数组非空

注意事项

  1. 类型匹配:比较运算符($gt, $lt 等)要求数据类型兼容
  2. 正则表达式:使用 $regex 时,值会被转换为字符串后进行匹配
  3. 列表范围$range 只支持两元素列表 [min, max],两个值都是包含的
  4. 错误处理:运算符验证失败会记录在测试报告的 error 字段中

更多示例请查看 USER_GUIDE.md