九、pytest接口自动化封装之统一请求封装代码如何编写

本文介绍了如何使用pytest进行接口自动化测试的封装,包括统一请求的实现,如通过同一个session发送请求,以及日志和用例统计的封装。同时,讲解了如何处理不同类型的参数,如paramsdatajson和headers, files的合并,以适应不同的请求格式。
摘要由CSDN通过智能技术生成

pytest接口自动化封装之统一请求封装如何编写

1.通过同一个session发送请求。
2.方便统计用例,日志封装。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里将params data json合并为datas参数,headers,files 合并为**kwargs不定长参数。

在这里插入图片描述
post请求的时候,将这个datas转换为字符串类型,进行传参,兼容json以及data格式。

调试后:
在这里插入图片描述

pytestPython中比较流行的测试框架之一,可以用于接口自动化测试。下面是一个简单的pytest接口自动化封装示例: ```python import requests class Api: def __init__(self, base_url): self.base_url = base_url def get(self, endpoint, params=None, headers=None): url = f"{self.base_url}/{endpoint}" response = requests.get(url, params=params, headers=headers) return response def post(self, endpoint, data=None, headers=None): url = f"{self.base_url}/{endpoint}" response = requests.post(url, json=data, headers=headers) return response ``` 上面的代码定义了一个Api类,其中包含了get和post方法来发送HTTP GET和POST请求。它使用requests库来发送请求并返回响应,可以通过传递参数来设置请求的URL、查询参数、请求头和请求体等内容。 接下来,在pytest测试用例中使用这个Api类: ```python import pytest from api import Api @pytest.fixture(scope="module") def api(): return Api("https://jsonplaceholder.typicode.com") def test_get_posts(api): response = api.get("posts") assert response.status_code == 200 assert len(response.json()) == 100 def test_get_post(api): response = api.get("posts/1") assert response.status_code == 200 assert response.json()["id"] == 1 def test_post_post(api): data = {"title": "foo", "body": "bar", "userId": 1} response = api.post("posts", data=data) assert response.status_code == 201 assert response.json()["title"] == "foo" ``` 上面的代码使用pytest.fixture装饰器定义了一个fixture函数,用于实例化Api类并将其作为参数传递给测试用例。然后定义了三个测试用例,分别测试了发送HTTP GET请求、发送HTTP GET请求并带参数、发送HTTP POST请求的功能。 这样,就可以使用pytest框架封装接口自动化测试,并且可以通过传递参数来实现动态的测试用例。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值