基于pytest的接口自动化测试:使用requests模块的实战项目与接口关联方法详解

步骤1:编写测试用例

建立一个称作.py的文件, 用以撰写测试用例, 首先, 引入必需的模块:

linenums 复制代码
  1. import requests
  2. import pytest

然后,编写测试用例。这里以用户注册和登录为例:

linenums 复制代码
  1. @pytest.mark.parametrize('payload, expected_response', [ # 参数化测试用例
  2. ({'username': 'test', 'password': '123456'}, 200), # 正常情况下的响应码
  3. ({'username': ''}, 400), # 用户名为空时的响应码
  4. ({'password': ''}, 400), # 密码为空时的响应码
  5. ])
  6. def test_register_and_login(payload, expected_response):
  7. # 发送POST请求进行注册
  8. register_url =
  9. response = requests.post(register_url, json=payload)
  10. assert response.status_code == 201 # 注册成功时的响应码
  11. # 获取注册成功后的用户token
  12. token = response.json().get('token')
  13. # 发送POST请求进行登录
  14. login_url =
  15. headers = {'Authorization': 'Bearer ' + token}
  16. response = requests.post(login_url, json=payload, headers=headers)
  17. assert response.status_code == expected_response # 验证响应码是否符合预期

于这个例子里头, 我们运用了参数化功能去创建多个测试用例, 这些测试用例分别用于验证不同情形下的响应码。借助使用模块发送 HTTP 请求并且检查响应码以及响应内容, 我们能够验证用户注册和登录的接口是不是正常运作。

步骤2:运行测试用例

在终端里面, 进入那个含有.py文件的目录, 接着运行下面这个命令去执行测试, 用。

linenums 复制代码
  1. pytest test_api.py

会自动去发现.py当中的测试用例并执行, 在执行期间, 会把每个测试用例的结果进行输出, 这结果涵盖是否通过以及详细的断言信息, 要是所有测试用例皆通过了, 那么就表明接口自动化测试成功完成了。

步骤3:处理关联接口问题(可选)

有些时候, 接口相互之间存有依赖关联, 一个接口所输出得来的内容, 有可能会成为另外一个接口的输入内容。处于这样的情形之下, 针对接口关联方面的问题, 我们能够运用的是插件。常见的插件包含了 - 和 -。经由这些插件, 能够辅助我们去定义接口彼此之间的依赖关系以及执行的先后顺序, 以此保证测试用例能够正确无误地执行。当运用这些插件之际, 得依照相应的文档说明来开展安装以及配置操作。

要点归纳: 借由本文的阐述, 我们知晓了运用和模块开展接口自动化测试的方法。借助一个实战项目, 演示了测试用例的编写流程以及执行进程, 还简略介绍了处理接口关联问题的方式。于实际项目当中, 我们还得依据具体的接口文档以及业务逻辑去编写更为完备的测试用例, 从而保证应用程序的稳定性与可靠性。

相关推荐
2601_962300811 小时前
Python + Requests + Pytest + Excel + Allure:接口自动化测试项目实战
python·excel·pytest·allure·requests
可乐鸡翅yeah_19 小时前
MPEG‑TS 分片 PTS/DTS 时间戳异常排错,HLS 音画不同步定位实战
运维·测试用例·音视频·媒体·m3u8
程序员小远1 天前
自动化测试用例编写实例详解
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
2601_962295581 天前
Python UI自动化测试用例脚本编写指南
python·测试用例·uiautomator2·ui自动化测试·脚本编写
11路没有终点1 天前
Pytest 安装、版本与第一个测试用例
测试用例·pytest
可乐鸡翅yeah_2 天前
HLS 自动化拨测与手动调试分工,流媒体线上监控体系建设实践
运维·自动化·测试用例·音视频·媒体·m3u8·音视频在线播放
2601_962298272 天前
【自动化测试】基于Selenium + Python的web自动化框架
自动化测试·python·selenium·测试用例·web框架
11路没有终点2 天前
pytest 参数化与 Mark 标记
pytest