本篇文章给大家谈谈接口自动化框架数据依赖,以及怎么解决接口自动化数据依赖对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
今天给各位分享接口自动化框架数据依赖的知识,其中也会对怎么解决接口自动化数据依赖进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
接口自动化(八):如何处理接口依赖
接口自动化框架数据依赖我可能解决
接口自动化框架数据依赖了一个假接口依赖的问题,为什么这么说了?
项目的原因吧,尝试了几次,突然观察到了一个获取 token 的接口,通过 PostMan 去调这个接口,成功返回了token值;
然后尝试在其他接口的 Header 里加入响应返回的 token,没调通;继续观察其他接口,发现 Header 里还少传了一个参数appId,这个值没有找到具体接口可以拿到,应该是写死了。故解决接口依赖主要是在其他接口的 Header 里添加 token和appId 了~
主要把获取 token 的接口放在了 excel 里的第一条数据,在ope_excel.py文件里添加了获取1条数据或指定的几条数据的方法。
在 setUp 里,获取到接口返回的 token,后续用例如果需要,可以添加到 Header 里。这里记得把之前在 run_method.py 对header 的反序列化操作注释掉哦~
python接口自动化-pytest-依赖测试
我们在接口自动化过程中,总会存在依赖性较强的场景,比如批价-下单-支付,具备强依赖关系,这个时候就用到了依赖测试。
参考 https://blog.csdn.net/dingding_ting/article/details/117200319
在test_01函数前我们加上了@pytest.mark.dependency(),
在test_02函数前也写了@pytest.mark.dependency(depends=["test_01"])
在类中执行,不能直接写方法名,需要加上类名::方法名或者别名
在test_01函数前我们加上了@pytest.mark.dependency(),
在test_02函数前也写了@pytest.mark.dependency(depends=["类名::test_01"])
(1)class
作用于所属的类,外部类不会被关联
@pytest.mark.dependency(depends=["test_01"],scope="class")
(2)module
默认参数是’module’,作用于当前文件。只会查找当前文件的符合条件的文件名,类里同名的方法不会被依赖。
@pytest.mark.dependency(depends=["test_01"],scope="module")
(3)package
作用于当前目录同级的依赖函数,跨目录无法找到依赖的函数。
例如在dep2目录下,创建了test_dep_01.py和test_dep_02.py
@pytest.mark.dependency(depends=[" xxx.py ::类名::test_01"],scope="package")
(4)session
作用域全局,可跨目录调用。但被依赖的用例必须先执行
@pytest.mark.dependency(depends=["xx/ xx.py ::类名::test_01"],scope="session")
支持直接在类名上方添加,那么类下面所有方法都不执行
比如:依赖用例1满足条件(学员详情列表有数据),再执行用例2(检查学习进度)
比如:依赖用例1满足条件(学习进度100%),再执行用例2(新建完成课程的标签)
python自动化测试怎么将多个依赖数据
接口测试中,有些场景接口间存在着数据依赖的问题,比如说提交订单前需要用户先登录等等,下面就用两个小案例说说数据依赖的问题。
两个接口,一个接口(project_add)用来创建测试项目,一个接口(env_add)用来创建测试环境,env_add接口需依赖project_add接口返回的project_id字段数据。
一、Postman解决数据依赖的问题
第一步,project_add接口,Tests中写js代码,将需依赖的字段添加到环境变量中
第二步:在env_add接口的Pre-request Script 中写js代码,把第一个接口拿到的参数赋值
第三步:再将project_id配置到Body中prj_id字段中
这样数据依赖的问题就搞定了
二、用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=
"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())
怎么做接口自动化的?
怎么做接口自动化的?
通过pytest+request+allure框架实现接口自动化,然后利用csv/xml等参数化数据信息,使业务与数据分离,并且编写脚本获取文本中的接口信息(url,参数,请求方式,,,,,),然后通过使用request模拟请求(get/post),传递获取的的参数信息(url,请求参数),得到响应数据(状态码/文本信息...),最后使用pytest单元测试框架添加断言,结合allure生成可视化测试报告
关于接口自动化框架数据依赖和怎么解决接口自动化数据依赖的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
接口自动化框架数据依赖的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于怎么解决接口自动化数据依赖、接口自动化框架数据依赖的信息别忘了在本站进行查找喔。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
暂时没有评论,来抢沙发吧~