pytest参数化接口测试,pytest接口自动化测试
本文主要介绍python pytest接口自动化参数关联,参数关联,也叫接口关联,即接口之间存在参数的连接或依赖。更多相关内容,朋友们可以参考一下。
00-1010前言一、什么是参数关联?二、有哪些场景?三。参数关联场景四。剧本写作1。用例2中的顺序调用。使用夹具功能5。总结。
目录
今天想和大家聊聊python pytest接口自动化测试的参数相关性。这里就不废话了,言归正传。
前言
参数关联也称接口关联,是指接口之间参数的联系或依赖关系。当完成某项功能业务时,有时需要依次请求多个接口,此时某些接口之间可能存在关联关系。比如接口B的一个或者一些请求参数是通过调用接口A得到的,也就是你需要先请求接口A,从接口A返回的数据中获取所需的字段值,在请求接口B的时候作为请求参数传入。
一、什么是参数关联?
最常见的场景之一便是:在请求登录到接口后获取令牌值,令牌需要在其他接口稍后请求时作为请求参数传入。
例如,在订单支付场景中,在调用订单接口生成订单后,将返回订单号,订单号将被传递给支付接口进行支付。
二、有哪些场景?
以最常见的网上购物为例,对应的场景及请求我们可以大致简化如下(可联想某宝购物流程):
用户在购物车中选择商品,点击【前往结算】进入订单确认页面。在订单确认页面上,他单击[提交订单]。这时他会先请求下单接口创建订单,然后拿着创建好的订单请求支付凭证接口。这个接口会调出支付页面,即输入支付密码后会请求支付服务的支付接口进行实际支付,并返回支付结果给请求者,告知支付是否成功。这个过程中涉及到的所有接口其实都是有关联的,我们需要进行整体支付。
但是在这里,我们只需要了解参数相关性。那么,以下面的刷单接口和获取支付凭证的接口为例就足够了,即先请求刷单接口生成订单号,然后用这个订单号请求获取支付凭证的接口,从而调出支付接口并进行支付。
下单接口如下:
地址:服务器/贸易/订单/购买请求类型:请求参数:邮政
{
商品id 3360 10,//商品id
goodsSkuId: 33,//sku id
Num: 2,///购买数量
trade promotion : {///精选优惠商品
Type: 1,///Type 1:优惠券
promotion Id : 1///优惠id
}
}
返回值data:
{
代码 : 0,
Msg: 成功,
数据 : {
商品编号3360 0020220116204344962706666 //交易订单号
},
t: 1639658625474
}
获取支付凭证接口如下:
接口地址:/pay/pre/consult请求类型:邮报请求参数:
{
订单号 3360 0020220116204344962706666 ,//交易订单号
产品 3360 alipayWapClient //支付渠道alipayWapClient:支付宝手机网页支付
}
返回值
data:
{
其中orderNo字段使这两个接口关联了起来。因为每次生成的订单号都不一样,所以在测试这个场景的时候,就需要使这两个接口的参数进行关联,才能走通。
四、脚本编写
那么在pytest框架的自动化测试中,参数关联可以怎样处理呢?这里提供两种思路,如下:
根据业务场景的调用时序,在用例中按顺序调用接口
将依赖的接口编写成fixture函数,并使用yield返回下个接口需要的参数
1、在用例中按顺序调用
代码示例如下:
import requests
上面的代码只是流水式的进行调用,我们还可以先将每个接口请求封装成单独的函数,在测试用例中只需按照顺序调用这些函数即可,这个我们会在后续的文章中进行说明。
2、 使用Fixture函数
定义Fixture函数,代码示例如下:
@pytest.fixture()
在测试函数中调用上面定义的fixture函数,代码示例如下:
def test_pay(get_order):
五、 总结
参数关联在接口自动化测试中是必然会遇到的场景,设计关联参数的用例会直接影响到用例的维护,当然这也是在接口自动化项目的架构设计时就需要考虑的问题。
对于刚入门的同学而言,我们需要明白的是,什么是参数关联,以及可以怎样去处理它
到此这篇关于python+pytest接口自动化参数关联的文章就介绍到这了,更多相关python 参数关联内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。