目 录CONTENT

文章目录

HttpRunner-6-环境变量

phyger
2022-04-14 / 0 评论 / 0 点赞 / 541 阅读 / 1,220 字 / 正在检测是否收录...

为什么要用环境变量

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

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

设置环境变量

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 的优先级大于系统环境变量。

小结

环境变量通常作为每个环境内特定不变的内容而存在,从这个点出发,我们可以将我们在项目中需要用的这种属性的变量设置为环境变量,从而在实际测试中直接调用。

函数变量&过程变量是指在某个方法中需要用到的可能会变化的入参和方法执行过程中产生的中间变量,这种类型的变量我们一般会保存在内存中或者配置文件中,当工程运行结束后,这些变量就没有意义了。

0

评论区