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](