当前位置:实例文章 » 其他实例» [文章]Python+pytest+requests 自动化测试框架

Python+pytest+requests 自动化测试框架

发布人:shili8 发布时间:2025-02-12 11:43 阅读次数:0

**Python + pytest + requests 自动化测试框架**

在软件开发中,自动化测试是非常重要的环节。它可以帮助我们快速发现bug,并且保证我们的代码质量。下面,我们将介绍如何使用 Python、pytest 和 requests 构建一个完整的自动化测试框架。

**环境准备**

首先,我们需要安装必要的库:

* `pytest`:用于写和运行测试用例* `requests`:用于发送 HTTP 请求可以通过 pip 安装这些库:

bashpip install pytest requests


**项目结构**

我们将按照以下结构组织我们的代码:

markdownproject/
 conftest.py test_api.py test_data.py requirements.txt setup.cfg pytest.ini


其中:

* `conftest.py`:用于定义测试环境的配置和初始化函数* `test_api.py`:用于写 API 相关的测试用例* `test_data.py`:用于写数据相关的测试用例* `requirements.txt`:用于记录项目依赖的库* `setup.cfg` 和 `pytest.ini`:用于配置 pytest 的环境和行为**conftest.py**

在这个文件中,我们定义了一个函数来初始化我们的测试环境:

# conftest.pyimport pytestfrom requests import Session@pytest.fixture(scope="session")
def session():
 """Initialize a requests session."""
 return Session()


这个函数使用 `pytest.fixture` 来定义一个名为 `session` 的 fixture。这个 fixture 使用 `requests.Session` 来初始化一个会话对象,并且将其作用域设置为整个测试会话。

**test_api.py**

在这个文件中,我们写了几个 API 相关的测试用例:

# test_api.pyimport pytestfrom requests import Sessionfrom conftest import sessiondef test_get_user(session):
 """Test getting a user."""
 url = " /> response = session.get(url)
 assert response.status_code ==200 data = response.json()
 assert data["name"] == "John Doe"

def test_create_user(session):
 """Test creating a new user."""
 url = " /> payload = {"name": "Jane Doe", "email": "jane@example.com"}
 response = session.post(url, json=payload)
 assert response.status_code ==201 data = response.json()
 assert data["name"] == "Jane Doe"


在这个例子中,我们定义了两个测试用例:`test_get_user` 和 `test_create_user`。每个测试用例使用 `session.get` 或 `session.post` 来发送 HTTP 请求,并且检查响应的状态码和 JSON 数据。

**test_data.py**

在这个文件中,我们写了几个数据相关的测试用例:

# test_data.pyimport pytestfrom conftest import sessiondef test_get_data(session):
 """Test getting data."""
 url = " /> response = session.get(url)
 assert response.status_code ==200 data = response.json()
 assert data["key"] == "value"

def test_create_data(session):
 """Test creating new data."""
 url = " /> payload = {"key": "new_value", "value": "new_value"}
 response = session.post(url, json=payload)
 assert response.status_code ==201 data = response.json()
 assert data["key"] == "new_value"


这个例子与 `test_api.py` 相似,但它测试的是数据相关的 API。

**总结**

在本文中,我们介绍了如何使用 Python、pytest 和 requests 构建一个完整的自动化测试框架。我们定义了一个 `conftest.py` 文件来初始化我们的测试环境,写了几个 API 相关和数据相关的测试用例,并且使用 pytest 来运行这些测试用例。

这个框架可以帮助我们快速发现bug,并且保证我们的代码质量。我们也可以根据需要扩展这个框架,例如添加更多的测试用例或使用其他库来实现特定的功能。

**参考**

* [pytest]( />* [requests](

其他信息

其他资源

Top