• 接口测试数据关联


    一、接口自动化的时候,下一个接口的入参是需从上一个接口的参数得出,两个接口的参数需关联;如下:
    1、第一个接口的参数:replace = {"token":"12344","uuid":"1yuwngwbc"}
    2、第二接口的参数:tokens = {'reques':'1111','tok':'${token}$'}#:'${token}$'}
    3、第二接口参数中的tok字段值需要从第一个接口获取值,可先用这中格式编写"${token}$",里面的token是需从上一个接口字段获取值的字段名
    那么下面是使用正则匹配获取得到值

    1、匹配获取第二接口${token}$,里面的token

    #匹配获取第二接口${token}$,里面的token
    def res_find(data,pattern=p_data):
        """
        参数关联查询
        :param data: 匹配的str
        :param pattern: 正则
        :return:
        """
        pattern_data = re.compile(pattern)
        re_res = pattern_data.findall(data)
        return re_res
    

    2、参数关联的替换,使用sub方法;从第一个接口获取的token字段的值当作替换值

    def res_sub(data,replace,pattern=p_data):
        """
        参数关联的替换
        :param data: 数据str
        :param replace: 替换的值
        :param pattern: 正则匹配
        :return:
        """
        pattern_data = re.compile(pattern)
        re_res = pattern_data.findall(data)
        if re_res:
            return re.sub(pattern,replace,data)
        return re_res
    

    3、因为findall(data)方法,data不能是dict类型,需要使用data = json.dumps(data)转换成字符串,不然会报如下错误:

    TypeError: expected string or bytes-like object
    

    4、结果运行

    
    if __name__ =='__main__':
        tokens = {'reques':'1111','tok':'${token}$'}#:'${token}$'}
        #dict ——》str
        tokens = json.dumps(tokens)
        replace = {"token":"12344","uuid":"1yuwngwbc"}
        field = res_find(tokens)[0]
        print(field) #token
        tokens=res_sub(tokens,replace[field])
        print(tokens) #{"reques": "1111", "tok": "12344"}
    
  • 相关阅读:
    深度学习中的基本概念——梯度相关
    模型训练中涉及到的技巧
    ubuntu swapfile
    ubuntu install opencv
    Jetson TX1 安装ROS操作系统
    Redis介绍以及安装(Linux)
    C# url信息获取
    贝茨视觉训练法
    PHP设计模式浅析
    MySQL相关知识
  • 原文地址:https://www.cnblogs.com/venvive/p/12927002.html
Copyright © 2020-2023  润新知