python接口自动化系列(06):解析初始化sql
本系列汇总,请查看这里:https://www.cnblogs.com/uncleyong/p/18033074
实现目标
将initSql中常用变量占位符(下图箭头指向的)替换为实际值。
添加替换变量工具模块
substitution_tool.py
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Author: 韧 # @wx: ren168632201 # @Blog: https://www.cnblogs.com/uncleyong/ import logging logger = logging.getLogger(__name__) from utils.common_var_tool import cv def var_substitution(param): '''常用变量占位符替换为实际值''' var_dic = cv.getCommonVar() logger.info("常用变量:{}".format(var_dic)) for key in var_dic: if key in param: param = param.replace(key, str(var_dic[key])) # replace返回替换后的新字符串 return param
修改测试类:获取initSql并替换
#!/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}") # 获取initSql initSql = casedata["initSql"] # 类型是list # logger.info(type(initSql)) # logger.info(">>>>>initSql:{}".format(initSql)) if initSql: for sql in initSql: logger.info("==================替换前sql:{}".format(sql)) sql = var_substitution(sql) logger.info(f"==================替换后sql:{sql}")
运行结果
可以看到占位符都成功替换为了对应常用变量值
__EOF__
本文作者:持之以恒(韧)
关于博主:擅长性能、全链路、自动化、企业级自动化持续集成(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
欢迎分享:如果您觉得文章对您有帮助,欢迎转载、分享,也可以点击文章右下角【推荐】一下!