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

接口自动化多数据依赖-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,欢迎共同讨论学习测试知识,共同进步

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值