USER_GUIDE.md 4.49 KB

:book: 用户使用指南

目录


:earth_africa: 多环境执行

支持的环境

环境 标识 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 覆盖配置的地址

:bar_chart: 用例管理

env_scope 列说明

每个用例都有一个 env_scope 字段,用于控制在哪些环境中执行该用例。

env_scope 取值

含义 执行结果
留空 或 all 所有环境执行 test:white_check_mark: / uat:white_check_mark: / prod:white_check_mark:
test 仅测试环境 test:white_check_mark: / uat:track_next:️ / prod:track_next:
uat 仅UAT环境 test:track_next:️ / uat:white_check_mark: / prod:track_next:
prod 仅生产环境 test:track_next:️ / uat:track_next:️ / prod:white_check_mark:
test,uat 测试+UAT test:white_check_mark: / uat:white_check_mark: / prod:track_next:
test,prod 测试+生产 test:white_check_mark: / uat:track_next:️ / prod:white_check_mark:

添加 env_scope 列

首次使用,需要在 Excel 表格中手动添加 env_scope 列:

  1. 打开 api_cases.xlsx
  2. 在最后一列后添加新列
  3. 列头命名为:env_scope
  4. 为所有数据行填入相应的值
  5. 保存文件

编辑 env_scope 值

根据用例特性设置相应的环境范围

is_run 字段

原有的 is_run 字段仍然保留:

  • is_run = 0留空 → 执行该用例(受env_scope影响)
  • is_run = 1 → 在所有环境都跳过该用例

执行优先级is_run = 1 → 跳过 → 检查 env_scope → 决定是否执行


:white_check_mark: 响应验证

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]}
}

:runner: 本地运行

基础运行

# 1. 激活虚拟环境
source venv/bin/activate  # Linux/Mac
# 或
.\venv\Scripts\activate   # Windows

# 2. 设置环境(可选,默认test)
export DEPLOY_ENV=test

# 3. 运行测试
python3 api_test.py

:link: Jenkins执行

参数化Build

Jenkins中已配置参数化执行,选择不同的环境:

  1. 进入Jenkins Job页面
  2. 点击 Build with Parameters
  3. 选择 DEPLOY_ENV: test / uat / prod
  4. 点击 Build 开始执行

:sos: 常见问题

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


:dart: 最佳实践

:white_check_mark: 推荐做法

  1. 明确标记env_scope:all / test / uat / prod(避免留空)
  2. 生产环境谨慎操作:危险操作设置为 test,uat
  3. 定期审查配置:检查过期的env_scope设置
  4. 使用关系运算符:灵活的验证而非硬编码

:x: 避免做法

  1. 混乱地使用 is_run 和 env_scope
  2. 在生产执行数据修改操作
  3. 忘记为新增用例设置 env_scope
  4. 大小写混乱的值

祝你使用愉快! :tada: