httprunner 4.x学习 - 7.环境变量.env 的使用

发布时间 2023-05-09 12:01:59作者: 上海-悠悠

前言

一般来说,在进行实际应用的开发过程中,应用会拥有不同的运行环境,通常会有以下环境:

  • 本地开发环境
  • 测试环境
  • 生产环境

在不同环境中,我们可能会使用不同的数据库或邮件发送等配置,这时候则需要通过 .env 文件来针对不同的运行环境作不同的设置。

环境变量基础知识

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

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

Windows 系统中使用 set 命令设置环境变量和值,接下来设置以下变量

  • base_url = http://127.0.0.1:8000 设置base_url值,可以一键切换运行的环境
  • username = test 设置登陆账号和密码,切换账号测试
  • password = 123456 设置登陆账号和密码,切换账号测试

打开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设置的环境变量只是临时的环境变量,不会保存到电脑本地,关闭窗口后自动清除。

.env 文件设置环境变量

winodws无法直接创建 .env 的文件,会提示文件名不能为空,这里使用 pycharm 新建用过 .env 文件
.env 文件必须放到项目根目录(debugtalk.py同一层级)

# .env
base_url=http://127.0.0.1:8000
username=test
password=123456

在 HttpRunner 4.x版本中内置了函数 ENV 函数读取环境变量的值

yaml 脚本案例

引用环境变量使用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]