使用 Python、Requests 和 Pytest 搭建接口自动化测试框架的步骤
1. 安装 Python
如果您还没有安装 Python,请下载并安装 Python 3.x 版本,可前往Python官网下载。下载后安装即可。
2. 安装 requests 库
Requests 是 Python HTTP 库,它允许您发送 HTTP/1.1 请求,简化了与 HTTP 服务的交互。使用 pip 安装 Requests 库,
具体方法如下:
pip install requests
3. 安装 pytest 库
Pytest 是 Python 的一个测试框架,它可以用于编写和运行测试。使用 pip 安装 pytest 库,具体方法如下:
pip install pytest
4. 编写测试用例
在项目的根目录下新建一个 tests 文件夹,在 tests 文件夹中新建一个名为 test_api.py 的 Python 文件,用于编写测试用例。
import requests
def test_api():
url = "https://jsonplaceholder.typicode.com/posts/1"
res = requests.get(url)
assert res.status_code == 200
assert res.json()["userId"] == 1
assert res.json()["id"] == 1
assert res.json()["title"] == "sunt aut facere repellat provident occaecati excepturi optio reprehenderit"
assert res.json()["body"] == "quia et suscipit\nsuscipit"
if __name__ == "__main__":
test_api()
在上面的代码中,我们使用 requests 库发送了一个 GET 请求,并对响应结果进行断言。这里我们使用了 Pytest 框架提供的 assert 语句进行断言。
5. 运行测试用例
在命令行中进入项目根目录,运行以下命令来运行测试用例:
pytest
如果所有的测试用例都通过了,那么输出结果如下:
============================= test session starts ==============================
platform win32 -- Python 3.7.4, pytest-6.0.1, py-1.9.0, pluggy-0.13.1
rootdir: D:\project
collected 1 item
tests\test_api.py . [100%]
============================== 1 passed in 0.60s ==============================
这表示我们的测试用例全部通过了。
6. 封装请求方法
在实际的项目中,我们通常需要封装一些公共方法来发送请求,比如 GET、POST 等。在 tests 目录下创建一个名为 api_client.py 的文件,并在其中定义一个请求方法。
import requests
class APIClient:
def __init__(self, base_url):
self.base_url = base_url
def get(self, path, **kwargs):
url = self.base_url + path
return requests.get(url, **kwargs)
def post(self, path, data=None, json=None, **kwargs):
url = self.base_url + path
在上面的代码中,我们定义了一个 APIClient 类,用于封装发送请求的方法。在类的构造方法中,我们传入了基础 URL,用于后面构造请求 URL。接下来我们定义了 GET 和 POST 方法,用于发送 GET 和 POST 请求,并将传入的参数组合成请求 URL 和请求参数,最后调用 requests 库发送请求。
7. 调用封装好的请求方法
我们修改一下 test_api.py 文件,使用我们新定义的 APIClient 类来发送请求。
from api_client import APIClient
def test_api():
client = APIClient("https://jsonplaceholder.typicode.com")
res = client.get("/posts/1")
assert res.status_code == 200
assert res.json()["userId"] == 1
在测试用例中,我们首先实例化了一个 APIClient 类,然后调用 get 方法发送请求,并对响应结果进行断言。
8. 封装断言方法
在实际的项目中,我们通常需要对响应结果进行断言,以判断接口返回的数据是否正确。我们可以封装一个 assert_response 方法,用于对响应结果进行断言。
import requests
class APIClient:
def __init__(self, base_url):
self.base_url = base_url
def get(self, path, **kwargs):
url = self.base_url + path
return requests.get(url, **kwargs)
def post(self, path, data=None, json=None, **kwargs):
url = self.base_url + path
return requests.post(url, data=data, json=json, **kwargs)
def assert_response(self, res, status_code=200, json=None):
assert res.status_code == status_code
if json:
assert res.json() == json
在上面的代码中,我们定义了一个 assert_response 方法,用于对响应结果进行断言。方法中接收两个参数:res 表示响应结果,status_code 表示期望的 HTTP 状态码,json 表示期望的 JSON 响应体。在方法中,我们使用 assert 语句对响应结果进行断言,如果断言失败则会抛出 AssertionError 异常。
9. 使用封装好的断言方法
在测试用例中使用 assert_response 方法进行断言。
from api_client import APIClient
def test_api():
client = APIClient("https://jsonplaceholder.typicode.com")
res = client.get("/posts/1")
client.assert_response(res, json={"userId": 1})
在测试用例中,我们首先实例化了一个 APIClient 类,然后调用 get 方法发送请求。接着,我们调用 assert_response 方法对响应结果进行断言,其中 json={"userId": 1} 表示期望 JSON 响应体中包含 {"userId": 1}。
到此为止,我们就完成了一个基于 Python、Requests 和 Pytest 的接口自动化测试框架的搭建。
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
Python、Requests 和 Pytest 搭建接口自动化测试框架(附完整框架代码).rar 使用 Python、Requests 和 Pytest 搭建接口自动化测试框架的步骤 1. 安装 Python 如果您还没有安装 Python,请下载并安装 Python 3.x 版本,可前往Python官网下载。下载后安装即可。 2. 安装 requests 库 Requests 是 Python HTTP 库,它允许您发送 HTTP/1.1 请求,简化了与 HTTP 服务的交互。使用 pip 安装 Requests 库, 具体方法如下: pip install requests 3. 安装 pytest 库 Pytest 是 Python 的一个测试框架,它可以用于编写和运行测试。使用 pip 安装 pytest 库,具体方法如下: pip install pytest 4. 编写测试用例 在项目的根目录下新建一个 tests 文件夹,在 tests 文件夹中新建一个名为 test_api.py 的 Python 文件,用于编写测试用例。 import requests d
资源推荐
资源详情
资源评论
收起资源包目录
Python、Requests 和 Pytest 搭建接口自动化测试框架(附完整框架代码).rar (5个子文件)
Python、Requests 和 Pytest 搭建接口自动化测试框架(附完整框架代码)
新建文本文档.txt 0B
Python、Requests 和 Pytest 搭建接口自动化测试框架
test_api.py.txt 322B
api_client.py.txt 1KB
Python、Requests 和 Pytest 搭建接口自动化测试框架的具体实现步骤详细说明.txt 5KB
使用方法.txt 159B
共 5 条
- 1
资源评论
中年老码农
- 粉丝: 9
- 资源: 72
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功