USER_GUIDE.md
4.49 KB
用户使用指南
目录
多环境执行
支持的环境
| 环境 | 标识 | IP | 用途 |
|---|---|---|---|
| 测试 | test | ai-test.hikoon.com | 开发和初始测试 |
| UAT | uat | ai-uat.hikoon.com | 用户验收测试 |
| 生产 | prod | api.hikoon.com | 生产环境验证 |
如何在不同环境运行
设置环境变量 DEPLOY_ENV,然后运行测试:
# 测试环境
export DEPLOY_ENV=test
python3 api_test.py
# UAT环境
export DEPLOY_ENV=uat
python3 api_test.py
# 生产环境
export DEPLOY_ENV=prod
python3 api_test.py
说明:
- 默认环境为
test(如不设置 DEPLOY_ENV) - IP_HOST 会根据环境从
env_config.py中自动选择 - 可通过环境变量
IP_HOST覆盖配置的地址
用例管理
env_scope 列说明
每个用例都有一个 env_scope 字段,用于控制在哪些环境中执行该用例。
env_scope 取值
| 值 | 含义 | 执行结果 |
|---|---|---|
留空 或 all
|
所有环境执行 | test |
test |
仅测试环境 | test |
uat |
仅UAT环境 | test |
prod |
仅生产环境 | test |
test,uat |
测试+UAT | test |
test,prod |
测试+生产 | test |
添加 env_scope 列
首次使用,需要在 Excel 表格中手动添加 env_scope 列:
- 打开
api_cases.xlsx - 在最后一列后添加新列
- 列头命名为:
env_scope - 为所有数据行填入相应的值
- 保存文件
编辑 env_scope 值
根据用例特性设置相应的环境范围
is_run 字段
原有的 is_run 字段仍然保留:
-
is_run = 0或留空 → 执行该用例(受env_scope影响) -
is_run = 1→ 在所有环境都跳过该用例
执行优先级:is_run = 1 → 跳过 → 检查 env_scope → 决定是否执行
响应验证
expected_response 字段
支持多种关系运算符,提供灵活的响应验证。
支持的运算符
-
$eq: 等于 -
$ne: 不等于 -
$gt: 大于 -
$gte: 大于等于 -
$lt: 小于 -
$lte: 小于等于 -
$in: 值在列表中 -
$nin: 值不在列表中 -
$contains: 字符串包含 -
$not_contains: 字符串不包含 -
$regex: 正则表达式匹配 -
$range: 范围判断 [min, max]
使用示例
{
"code": {"$ne": 500},
"count": {"$gt": 0},
"status": {"$in": ["ok", "done"]},
"msg": {"$contains": "success"},
"email": {"$regex": "^.*@.*$"},
"age": {"$range": [18, 100]}
}
本地运行
基础运行
# 1. 激活虚拟环境
source venv/bin/activate # Linux/Mac
# 或
.\venv\Scripts\activate # Windows
# 2. 设置环境(可选,默认test)
export DEPLOY_ENV=test
# 3. 运行测试
python3 api_test.py
Jenkins执行
参数化Build
Jenkins中已配置参数化执行,选择不同的环境:
- 进入Jenkins Job页面
- 点击 Build with Parameters
- 选择 DEPLOY_ENV: test / uat / prod
- 点击 Build 开始执行
常见问题
Q1: 所有用例都被跳过了
原因:DEPLOY_ENV 未设置或 env_scope 不匹配
解决:
export DEPLOY_ENV=test
python3 api_test.py
Q2: 如何在生产环境禁用某些用例
设置 env_scope = test,uat(只在测试和UAT执行)
Q3: 支持哪些 env_scope 值的组合
支持:all / test / uat / prod 及其组合(用逗号分隔)
Q4: is_run 和 env_scope 的关系
is_run=1 时总是跳过;is_run=0 时检查 env_scope
Q5: 如何提取变量供后续用例使用
在 extract_vars 列中定义:user_id=data.user_id
最佳实践
推荐做法
- 明确标记env_scope:all / test / uat / prod(避免留空)
-
生产环境谨慎操作:危险操作设置为
test,uat - 定期审查配置:检查过期的env_scope设置
- 使用关系运算符:灵活的验证而非硬编码
避免做法
- 混乱地使用 is_run 和 env_scope
- 在生产执行数据修改操作
- 忘记为新增用例设置 env_scope
- 大小写混乱的值
祝你使用愉快! ![]()