为什么要用环境变量
在自动化测试中,有时需要借助环境变量实现某些特定的目的,常见的场景包括:
- 切换测试环境
- 切换测试配置
- 存储敏感数据(从信息安全的角度出发)
设置环境变量
Linux 中
使用 export
命令
$ export UserName=admin
$ echo $UserName
admin
$ export Password=123456
$ echo $Password
123456
或者将变量写在文件中,source
加载
Windwos 中
使用 set
命令
> set a=666
> echo %a%
> 666
在 HttpRunner 中使用环境变量
使用.env
demo_testcase.yml
config:
name: "demo testcase"
variables:
device_sn: "ABC"
username: ${ENV(USERNAME)}
password: ${ENV(PASSWORD)}
base_url: "https://getman.cn/mock"
output: [
"username",
"device_sn"
]
...
demo_api.yml
name: demo api
variables:
var1: value1
var2: value2
request:
url: /phyger
method: GET
headers:
User-Agent: $user_agent
Content-Type: "application/json"
json:
key: $var2
username: $username
pwd: password
测试报告:
使用系统环境变量
方便演示,我们删除.env
中的变量,直接使用系统已存在的变量
demo_api.yml
name: demo api
variables:
var1: value1
var2: value2
request:
url: /phyger
method: GET
headers:
User-Agent: $user_agent
Content-Type: "application/json"
json:
key: $var2
username: ${ENV(PROCESSOR_ARCHITECTURE)}
pwd: ${ENV(OS)}
测试报告
如图,已经拿到系统环境变量。
.env 和系统变量同时存在
.env
测试报告:
结论:当.env
和系统环境变量同时存在的时候,.env
的优先级大于系统环境变量。
小结
环境变量通常作为每个环境内特定不变的内容而存在,从这个点出发,我们可以将我们在项目中需要用的这种属性的变量设置为环境变量,从而在实际测试中直接调用。
函数变量&过程变量是指在某个方法中需要用到的可能会变化的入参和方法执行过程中产生的中间变量,这种类型的变量我们一般会保存在内存中或者配置文件中,当工程运行结束后,这些变量就没有意义了。
评论区