Python+Requests+PyTest+Excel+Allure 接口自动化测试实战
本攻略将详细介绍如何使用Python的Requests库、PyTest测试框架、Excel作为测试数据源以及Allure生成漂亮的测试报告进行接口自动化测试。
准备工作
-
安装Python:确保您的系统已经安装了Python,并配置好了环境变量。
-
安装依赖库:使用pip命令安装以下依赖库:
shell
pip install requests pytest openpyxl allure-pytest
- 创建项目目录结构:创建一个新的项目目录,并按照以下结构组织文件:
├── api
│ ├── __init__.py
│ └── api_client.py
├── data
│ └── test_data.xlsx
├── reports
└── tests
├── __init__.py
└── test_api.py
编写接口测试用例
-
创建测试数据文件:在
data
目录下创建一个Excel文件test_data.xlsx
,并在其中创建一个名为test_cases
的工作表,用于存储测试用例数据。 -
编写接口测试用例:在
test_cases
工作表中,按照以下格式编写接口测试用例数据:
Case ID | Method | URL | Headers | Body | Expected Status Code |
---|---|---|---|---|---|
1 | GET | https://api.com/ | 200 | ||
2 | POST | https://api.com/ | {\"name\": \"John Doe\"} | 201 | |
... |
- 创建API客户端:在
api
目录下创建一个api_client.py
文件,编写一个API客户端类,用于发送请求和处理响应。
```python
import requests
class APIClient:
def init(self):
self.session = requests.Session()
def send_request(self, method, url, headers=None, body=None):
response = self.session.request(method, url, headers=headers, json=body)
return response
```
- 编写测试用例:在
tests
目录下创建一个test_api.py
文件,编写接口测试用例。
```python
import pytest
from api.api_client import APIClient
from openpyxl import load_workbook
@pytest.fixture(scope='module')
def api_client():
return APIClient()
@pytest.fixture(scope='module')
def test_data():
workbook = load_workbook('data/test_data.xlsx')
sheet = workbook['test_cases']
data = []
for row in sheet.iter_rows(min_row=2, values_only=True):
data.append(row)
return data
@pytest.mark.parametrize('case_id, method, url, headers, body, expected_status_code', test_data())
def test_api(api_client, case_id, method, url, headers, body, expected_status_code):
response = api_client.send_request(method, url, headers=headers, body=body)
assert response.status_code == expected_status_code
```
运行测试用例
- 运行测试用例:在项目根目录下打开终端,运行以下命令执行测试用例:
shell
pytest --alluredir=reports
- 生成Allure报告:运行以下命令生成Allure测试报告:
shell
allure serve reports
这将在默认浏览器中打开Allure报告,您可以查看测试结果、错误信息、测试步骤等详细信息。
以上是关于使用Python+Requests+PyTest+Excel+Allure进行接口自动化测试的完整攻略。希望对您有所帮助!如果您还有其他问题,请随时提问。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python+Requests+PyTest+Excel+Allure 接口自动化测试实战 - Python技术站