python接口测试中数据间依赖_接口自动化测试之数据依赖

接口测试中,有些场景接口间存在着数据依赖的问题,比如说提交订单前需要用户先登录等等,下面就用两个小案例说说数据依赖的问题。

两个接口,一个接口(project_add)用来创建测试项目,一个接口(env_add)用来创建测试环境,env_add接口需依赖project_add接口返回的project_id字段数据。

一、Postman解决数据依赖的问题

697787-20200815221418071-2069856654.png

第一步,project_add接口,Tests中写js代码,将需依赖的字段添加到环境变量中

697787-20200816083630979-1284169886.png

第二步:在env_add接口的Pre-request Script 中写js代码,把第一个接口拿到的参数赋值

697787-20200816083946711-1031115044.png

第三步:再将project_id配置到Body中prj_id字段中

697787-20200816084736508-584006923.png

这样数据依赖的问题就搞定了

二、用python代码实现接口数据依赖

用代码解决数据依赖的方法有多种,下面用反射来解决数据依赖的问题。

反射它可以把字符串映射到实例的变量或者实例的方法然后,可以去执行调用、修改等操作。

它有四个重要的方法:

getattr 获取指定字符串名称的对象属性

setattr 为对象设置一个对象

hasattr 判断对象是否有对应的对象(字符串)

delattr 删除指定属性

classRelyData(object):

project_id=Noneprint(RelyData.project_id)

setattr(RelyData,"project_id", "111")print(getattr(RelyData, "project_id"))

定义了一个RelyData()类,里面设置了一个类属性,project_id=None,然后再用setattr函数为对象RelyData里面project_id属性设置了新值,最后再用getattr函数取出里面的值,这是个属性值替换的过程。

classTest(unittest.TestCase):defsetUp(self):pass

deftest_1(self):"""添加项目接口"""url= "http://127.0.0.1:8000/base/project_add/"headers= {'Content-Type': 'application/x-www-form-urlencoded'}

datas= {"prj_name": "baidu search", "description": "百度搜索"}

response= requests.post(url, data=datas, headers=headers)print("response:", response.json())

result=response.json()#给RelyData里面的project_id=None的类属性设置新的属性

setattr(RelyData, "project_id", result.get("project_id"))deftest_2(self):"""添加环境接口,需依赖添加项目接口返回的project_id字段数据"""url= "http://127.0.0.1:8000/base/env_add/"headers= {'Content-Type': 'application/x-www-form-urlencoded'}

datas={"env_name": "百度测试环境","url": "www.baidu.com",#getattr(RelyData,'project_id'),取出里面的属性值

"prj_id": getattr(RelyData, "project_id"),"description": "SIT测试环境"}

response= requests.post(url, data=datas, headers=headers)print("response:", response.json())if __name__ == '__main__':

unittest.main()

697787-20200816205824746-722680779.png

关注公众号,分享更多自动化测试内容

697787-20200816093132865-544665059.png

697787-20201112100024142-309740035.png

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值