python接口自动化系列(05):获取常用变量
本系列汇总,请查看这里:https://www.cnblogs.com/uncleyong/p/18033074
实现目标
获取常用变量,方便后面解析初始化sql或者请求参数的时候将常用变量占位符替换为实际值。
添加常用变量数据文件
data目录下创建variable.yaml
内容:
--- '#{username}': tester '#{password_correct}': 123456 '#{password_wrong}': 1234567 '#{productname}': thinkpad
修改项目配置
conf下settings.py中新增常用变量数据文件路径
# 定义常用变量数据文件路径 VAR_DATA_PATH = os.path.join(BASE_PATH,'data/variable.yaml')
添加工具模块
utils目录下添加substitution_tool.py
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Author: 韧 # @wx: ren168632201 # @Blog: https://www.cnblogs.com/uncleyong/ from utils.yaml_tool import read_data_from_yaml from conf.settings import VAR_DATA_PATH import logging logger = logging.getLogger(__name__) def var_substitution(): '''先获取常用变量,为后续替换为实际值提供数据''' var_dic = read_data_from_yaml(VAR_DATA_PATH) logger.info("常用变量:{}".format(var_dic))
修改测试类
调用substitution_tool.py中var_substitution方法
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Author: 韧 # @wx: ren168632201 # @Blog: https://www.cnblogs.com/uncleyong/ import pytest import logging logger = logging.getLogger(__name__) from conf.settings import CASE_DATA_PATH from utils.yaml_tool import read_data_from_yaml from utils.substitution_tool import var_substitution class TestCase: @pytest.mark.parametrize("casedata", read_data_from_yaml(CASE_DATA_PATH)) def test_case(self, casedata): # logger.info(f"---当前测试用例数据是:{casedata}") var_substitution()
运行结果
可以看到,读取到了常用变量文件内容
优化任务(建议要完成哦)
上图可以看到,每个用例都会读取一次常用变量数据文件,比较影响效率;
给大家留个任务,只读取一次常用变量数据文件,utils下创建common_var_tool.py实现。
(建议自己多花时间思考、练习,这样对你技能和学习能力提升才有帮助,而且,有些基础弱的小伙伴都跟着做出来了)
如果实在困难,也可以不完成,后面把我导入的内容去掉,继续用上面的读取数据实现方式即可;或者,你也可以学这个全程复制、粘贴就可以跑起来的自动化框架:https://www.cnblogs.com/uncleyong/p/15867903.html
__EOF__
![微信:ren168632201](https://files-cdn.cnblogs.com/files/uncleyong/wx.bmp)
本文作者:持之以恒(韧)
关于博主:擅长性能、全链路、自动化、企业级自动化持续集成(DevTestOps)、测开等
面试必备:项目实战(性能、自动化)、简历笔试,https://www.cnblogs.com/uncleyong/p/15777706.html
测试提升:从测试小白到高级测试修炼之路,https://www.cnblogs.com/uncleyong/p/10530261.html
欢迎分享:如果您觉得文章对您有帮助,欢迎转载、分享,也可以点击文章右下角【推荐】一下!
关于博主:擅长性能、全链路、自动化、企业级自动化持续集成(DevTestOps)、测开等
面试必备:项目实战(性能、自动化)、简历笔试,https://www.cnblogs.com/uncleyong/p/15777706.html
测试提升:从测试小白到高级测试修炼之路,https://www.cnblogs.com/uncleyong/p/10530261.html
欢迎分享:如果您觉得文章对您有帮助,欢迎转载、分享,也可以点击文章右下角【推荐】一下!