ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

测试框架学习之HttpRunner用例调试之环境变量.env(五)

2021-05-18 13:32:43  阅读:224  来源: 互联网

标签:HttpRunner env 用例 environ KEY password os 环境变量


一、环境变量使用场景:
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]

标签:HttpRunner,env,用例,environ,KEY,password,os,环境变量
来源: https://www.cnblogs.com/mys6/p/14780533.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有