接口測試數據關聯


一、接口自動化的時候,下一個接口的入參是需從上一個接口的參數得出,兩個接口的參數需關聯;如下:
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"}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM