Python接口测试实战:从Postman到Pytest封装

阿麦
阿麦
发布时间:2026-10-14| 5人浏览过
原创

本文详解如何利用Python进行接口测试,以豆瓣搜索功能为例。内容涵盖从Postman导出Python代码、安装requests库、转换为Pytest用例,以及封装通用的GET和POST请求类,帮助开发者快速构建自动化测试脚本。

前言

许多开发者熟悉Postman工具或Python语言,但未必掌握使用Python编写测试用例脚本的方法。实际上,Postman支持将完整的Python代码直接复制导出,为自动化测试提供了便利。

以下示例均以豆瓣网站的搜索功能为基准进行演示。

一、Postman接口用例转换为Python测试用例

在Postman界面中,点击右侧的</>图标,右侧面板将显示生成的脚本代码。在顶部下拉菜单中选择导出的编程语言,此处选择Python-Requests版本。

复制生成的脚本代码,并在PyCharm编辑器中打开。在导入代码前,若环境中未安装requests库,运行时会报错,因此需先安装该库。

在cmd命令窗口输入:pip install requests

导出后的脚本格式如下:


import requests

url = "<https://www.douban.com/search?">

payload={'q': '三体'}
files=[

]
headers = {
  'Cookie': 'bid=5bBvkukAbvY'
}

response = requests.request("POST", url, headers=headers, data=payload, files=files)

print(response.text)

二、转换为pytest测试用例

1. 接下来展示如何将其转换为标准的Pytest测试用例格式。


import requests

class TestDouban:

    def test_douban(self):
        url = "<https://www.douban.com/search?">
        payload = {'q': '三体'}
        files = []
        headers = {
          'Cookie': 'bid=5bBvkukAbvY'
        }
        response = requests.request("POST", url, headers=headers, data=payload, files=files)
        print(response.text)

三、封装POST和GET方法

在项目中,根路由路径通常保持一致,仅具体接口地址不同。由于POST和GET是接口测试中最通用的两种方法,可以将根路由及这两种请求方法封装为一个通用类,以便后续直接调用,提高代码复用性。

1. common.py—公共类封装


import requests

class Common:
    def __init__(self):
        # 豆瓣根路由
        self.url_root = "<https://www.douban.com>"

    # get请求,uri是接口具体地址,params是get请求的参数,如果没有,默认为空
    def get(self, uri, params=''):
        # 拼凑访问地址
        url = self.url_root + uri + params
        # 通过get请求访问对应地址
        response = requests.get(url)
        # 返回request的response结果,类型为requests的Response类型
        return response

    # post请求,uri是接口具体地址,params是post请求的参数,如果没有,默认为空
    def post(self, uri, params=''):
        # 拼凑访问地址
        url = self.url_root + uri
        # 有参数,则访问对应的url,并赋值给默认参数data
        if len(params) > 0:
            response = requests.post(url, data=params)
        # 无参数,只需要访问对应的url即可
        else:
            response = requests.post(url)
        # 返回request的response结果,类型为requests的Response类型
        return response

2. 具体接口测试用例实现


import requests

from common.common import Common

class TestDouban:
    def setup(self):
        self.com = Common()

    def test_douban(self):
        uri = "/search?"
        payload = {'q': '三体'}
        response = self.com.post(uri, payload)
# 由于file不需要,就将file删除了,至于hearder是否要添加可根据需求来定

执行结果如下:

总结

至此,关于使用Python编写接口测试文档的教程介绍完毕。如需了解更多相关Python接口测试内容,建议搜索本站历史文章或继续浏览后续相关文章,感谢支持!

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。