zoukankan      html  css  js  c++  java
  • 测试框架学习之HttpRunner用例调试环境变量.env(五)

    一、环境变量使用场景:
    1、配置不同项目环境;
    2、测试中项目公共配置抽取
    3、敏感数据剥离出来

    二、环境变量设置

    1.1.先在系统中设置环境变量名称和值,传统的方式为使用 export 命令(Windows系统中使用 set 命令):

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

    1.2.在程序中就可以对系统中的环境变量进行读取。

    $ python
    >>> import os
    >>> os.environ["UserName"]'admin'

    默认情况下,在自动化测试项目的根目录中,创建.env文件,并将敏感数据信息放置到其中,存储采用name=value的格式:

    $ cat .env
    UserName=admin
    Password=123456
    PROJECT_KEY=ABCDEFGH

    同时,.env文件不应该添加到代码仓库中,建议将.env加入到.gitignore中。
    HttpRunner 运行时,会自动将.env文件中的内容加载到运行时(RunTime)的环境变量中,然后在运行时中就可以对环境变量进行读取了。
    若需加载不位于自动化项目根目录中的.env,或者其它名称的.env文件(例如production.env),可以采用--dot-env-path参数指定文件路径:
    $ hrun /path/to/testcase.yml --dot-env-path /path/to/.env --log-level debug
    INFO Loading environment variables from /path/to/.env
    DEBUG Loaded variable: UserName
    DEBUG Loaded variable: Password
    DEBUG Loaded variable: PROJECT_KEY
    ...

    三、环境变量引用
    在项目目录下的debugtalk.py写入:

    import os
    UserName = os.environ["UserName"] # admin
    Password = os.environ["Password"] # 123456PROJECT_KEY = os.environ["PROJECT_KEY"]) # ABCDEFGH

    测试用例中引用
    - test:
    name: login
    request:
    url: http://host/api/login
    method: POST
    headers:
    Content-Type: application/json
    json:
    username: $UserName
    password: $Password
    validate:
    - eq: [status_code, 200]

    如数据需要处理再引用,则定义函数,通过${func()}的方式引用环境变量
    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()

    测试用例引用
    - test:
    name: login
    request:
    url: http://host/api/login
    method: POST
    headers:
    Content-Type: application/json
    json:
    username: $UserName
    password: ${get_encrypt_password()}
    validate: #断言
    - eq: [status_code, 200]

  • 相关阅读:
    css设置兄弟节点的样式(相邻的前一个节点)
    css文本强制两行超出就显示省略号,不显示省略号
    Adobe Photoshop CC2014 for MAC 详细破解步骤
    CSS实现背景图片透明和文字不透明效果
    jquery实现搜索框从中间向两边扩展(左右放大)
    微信小程序拒绝授权后提示信息以及重新授权
    linux下的 sudo ln -s 源文件 目标文件
    小程序实现倒计时:解决ios倒计时失效(setInterval失效)
    浅谈CSS高度坍塌
    sourcetree安装以及跳过sourcetree注册登录
  • 原文地址:https://www.cnblogs.com/mys6/p/14780533.html
Copyright © 2011-2022 走看看