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}")

运行结果

可以看到占位符都成功替换为了对应常用变量值

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值