HttpRunner-06-环境变量_json


为什么要用环境变量

在自动化测试中,有时需要借助环境变量实现某些特定的目的,常见的场景包括:

  • 切换测试环境
  • 切换测试配置
  • 存储敏感数据(从信息安全的角度出发)

设置环境变量

Linux 中

使用 ​​export​​ 命令

$ export UserName=admin
$ echo $UserName
admin
$ export Password=123456
$ echo $Password
123456

或者将变量写在文件中,​​source​​ 加载

HttpRunner-06-环境变量_python_02HttpRunner-06-环境变量_环境变量_03

Windwos 中

使用 ​​set​​ 命令

> set a=666
> echo %a%
> 666

在 HttpRunner 中使用环境变量

使用.env

HttpRunner-06-环境变量_python_04​​​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

测试报告:

HttpRunner-06-环境变量_json_05

使用系统环境变量

方便演示,我们删除​​.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)}

测试报告HttpRunner-06-环境变量_环境变量_06

如图,已经拿到系统环境变量。

.env 和系统变量同时存在

​.env​

HttpRunner-06-环境变量_json_07

测试报告:

HttpRunner-06-环境变量_python_08

结论:当​​.env​​​ 和系统环境变量同时存在的时候,​​.env​​ 的优先级大于系统环境变量。