3、HttpRunner_环境变量

2019-12-07  本文已影响0人  猪儿打滚

PS.本系列的内容主要来自HttpRunner官方文档,因为个人习惯,在学习的时候会写笔记用以加深记忆(cv大法),所以有本系列的笔记。
https://cn.httprunner.org/


环境变量

一、环境变量的作用

在进行自动化测试过程中,我们有时候会需要读取一些环境变量,从而实现一些目的,常用的场景有:

二、设置环境变量
export/set UserName = admin

代码中使用os模块读取系统中的环境变量

import os
os.environ['UserName']  # admin
Usernmae = admin
Password = 23333

在HttpRunner运行时,会自动将.env的内容,加载到项目运行时的环境变量中,此时就可以在项目中,对环境变量进行读取。

b.如果想要加载不位于自动化项目根目录下的.env,或者其它名称的env文件(比如:audience.env),可以用--dot-env-path参数来指定这个文件的路径

hrun /path/to/testcase.yml --dot-env-path audience.env --log-level debug
三、引用环境变量

在设置好了环境变量后,那么该考虑的就是如何去引用这些环境变量。
HttpRunner中内置了environ函数,可以在yaml/json测试用例中,直接使用${ENV(变量名)}来引用环境变量

- test:
    name: login
    request:
        url: http://host/api/login
        method: POST
        headers:
            Content-Type: application/json
        json:
            username: ${ENV(UserName)}
            password: ${ENV(Password)}
        validate:
            - eq: [status_code, 200]

当然,如果想要对环境变量做进一步的处理,也可以在debugtalk.py文件中,通过python内置函数os.environ去读取到环境变量,然后进行处理
比如,如果请求参中的密码,需要先和密钥进行拼接后,生成MD5,就可以在debugtalk.py文件实现这样的函数:

import os

def get_encrypt_password():
    raw_passwd = os.environ["Password"]
    PROJECT_KEY = os.environ["PROJECT_KEY"])
    password = (raw_passwd + PROJECT_KEY).encode('ascii')
    return hmac.new(password, hashlib.sha1).hexdigest()

然后,在yaml/json测试用例中进行调用:

- test:
    name: login
    request:
        url: http://host/api/login
        method: POST
        headers:
            Content-Type: application/json
        json:
            username: ${ENV(UserName)}
            # 调用函数
            password: ${get_encrypt_password()}
        validate:
            - eq: [status_code, 200]
上一篇 下一篇

猜你喜欢

热点阅读