一般来说,在进行实际应用的开发过程中,应用会拥有不同的运行环境,通常会有以下环境:
在不同环境中,我们可能会使用不同的数据库或邮件发送等配置,这时候则需要通过 .env
文件来针对不同的运行环境作不同的设置。
在自动化测试中,有时需要借助环境变量实现某些特定的目的,常见的场景包括:
Windows 系统中使用 set 命令设置环境变量和值,接下来设置以下变量
打开cmd,使用 set key=value
格式设置环境变量(linux使用 export
命令)
C:\Users\dell>set base_url=http://127.0.0.1:8000
C:\Users\dell>set username=test
C:\Users\dell>set password=123456
查看环境变量值使用 set keyname
查看对应的值
C:\Users\dell>set base_url
base_url=http://127.0.0.1:8000
C:\Users\dell>set username
username=test
C:\Users\dell>set password
password=123456
在windows系统里面,命令行引用变量用 %var%
C:\Users\dell>echo 账号:%username%
账号:test
linux 系统中使用 export 命令设置环境变量和值, 引用变量$keyname
[root@VM_0_2_centos ~]# export base_url=http://127.0.0.1:8000
[root@VM_0_2_centos ~]# export username=test
[root@VM_0_2_centos ~]# echo $base_url
http://127.0.0.1:8000
[root@VM_0_2_centos ~]# echo $username
test
在cmd设置的环境变量只是临时的环境变量,不会保存到电脑本地,关闭窗口后自动清除。
winodws无法直接创建 .env 的文件,会提示文件名不能为空,这里使用 pycharm 新建用过 .env 文件
.env
文件必须放到项目根目录(debugtalk.py同一层级)
# .env
base_url=http://127.0.0.1:8000
username=test
password=123456
在 HttpRunner 4.x版本中内置了函数 ENV
函数读取环境变量的值
引用环境变量使用ENV函数 ${ENV(keyname)
# 作者-上海悠悠 wx:283340479
# blog地址 https://www.cnblogs.com/yoyoketang/
config:
name: 引用env文件
base_url: ${ENV(base_url)}
variables:
user: ${ENV(username)}
psw: ${ENV(password)}
teststeps:
-
name: post
request:
method: POST
url: /post
json:
username: ${user}
password: ${psw}
validate:
- eq: [status_code, 200]