通常一个用例中的结构包含 config:公共配置 及 teststeps:测试步骤
config中的变量
在config中定义了变量 则在测试步骤中不需要在定义了 当然参数名称不一样不可省略
config 中的变量针对整个yml文件 teststeps中则针对这个步骤
备注:如果2个地方均定义了变量 则取config中的参数 这个和正常的理解不一样,不会被覆盖
config:
# 用例名称
name: 登录成功后,获取主体页面
variables:
username: xxxx
teststeps:
# 测试步骤
-
name: 测试步骤:login get token
api: api/gettoken.yml
# 使用关键字api来调用api层内容
variables:
# username: xxxx 可以删除 直接引用config中的
password: Aa1234567!
extract:
gettoken: content.data.access_token
validate:
- eq: [status_code,200]
- eq: [headers.Content-Type,application/json]
- eq: [content.code,0]
- len_eq: [content.data.access_token,36]
-
name: 获取主体页面
api: api/accountAndCompanyPage.yml
variables:
token: $gettoken
validate:
- eq: [status_code,200]
config中的base_url
base_url 其实就是环境部署的项目地址,可以卸载api中,也可以在testcase的config中
备注:二者有一即可,如果都有,则以API为主
config:
# 用例名称
name: 登录成功后,获取主体页面
variables:
username: xxx
base_url: http://xxx.xx.xx.xx:9900
teststeps:
# 测试步骤
-
name: 测试步骤:login get token
api: api/gettoken.yml
# 使用关键字api来调用api层内容
variables:
# sername: xx
password: xxx
extract:
gettoken: content.data.access_token
validate:
- eq: [status_code,200]
- eq: [headers.Content-Type,application/json]
- eq: [content.code,0]
- len_eq: [content.data.access_token,36]
-
name: 获取主体页面
api: api/accountAndCompanyPage.yml
variables:
token: $gettoken
validate:
- eq: [status_code,200]
注销掉API中的base_url ,设置在用例中,执行成功
修改用例中的base_url为错误的url,运行报错
修改API层的base_url为正确的 运行成功
可见 是先获取API层base_url
其实 我们通常会设置环境变量,全局使用的 env
在项目的根目录新建一个.env 文件,并将敏感信息放置其中,采用name=value格式
如:base_url=xxxx.xx.xxx.xx:8080
然后再api层或者用例层引用即可:${ENV(key)}