接口自动化多数据依赖-excel用例

    技术2022-08-01  89

    接口自动化多数据依赖-excel管理用例,

    代码 类似’{“name”:"$.city"}类型数据

    Python+requests 进行接口自动化,excel管理测试用例,解决多参数数据依赖的问题。

    代码

    import xlrd #解决接口依赖问题 #模拟上一个接口调用的返回值,json_data上一个接口返回的字典格式 dict,如果不是字典需要转为字典 json_data = {'city':'郑州','like':'网球','room':{'town':'门头沟'}} #body2属于此接口的body内容,举例子定义了一个。 body2 = {'name':''} #取到的参数定义,依赖参数。从excel中可以取到,然后进行切割。 paths = '{"name":"$.city"}#{"love":"$.like"}#{"luck":"$..town"}' #对依赖数据进行切割 path_data为切割后的数据.切割后的数据为列表 列表中为字典 path_data = paths.split('#',-1) #print(path_data)--》['{"name":"$.city"}', '{"love":"$.like"}', '{"luck":"$..town"}'] #进行循环取出列表中的值 for i in path_data: # print(i)-->{"name":"$.city"} {"love":"$.like"} #取出每个列表中的字典中的key和value。value为参数路径 #keys为请求参数中的需要获取key keys = list(eval(i).keys())[0] # print(keys)--> name love #path为jsonpath从返回值中取值的路径 path = list(eval(i).values())[0] # print('path---->',path) $..town #通过jsonpath.jsonpath(data,path)拿到数据res_data,数据为列表 通过[0]取到正确的str值。 **res_data =jsonpath.jsonpath(json_data,path)[0]** # print('res_data',res_data) ['网球'] ['郑州'] #替换excel中依赖数据中的path为真实取到的上一个参数的返回值数据 都是str类型。replace(path,res_data)。此步只做展示 不参与 #body = str(i).replace(path,str(res_data)) #把拿到的数据根据excel中的依赖数据的参数 添加到需要请求的body中 body2[keys] = res_data print('body2-->',body2) #跳出循环 取到所有循环后累加的字典, print(body2)

    最终结果: zbody2–> {‘name’: ‘郑州’, ‘love’: ‘网球’, ‘luck’: ‘门头沟’} {‘name’: ‘郑州’, ‘love’: ‘网球’, ‘luck’: ‘门头沟’}

    本人:Wayne,欢迎共同讨论学习测试知识,共同进步

    Processed: 0.010, SQL: 9