接口测试和openyxl使用@pytest.mark.parametrize,获取表格里面的测试数据
时间: 2024-12-10 19:44:30 浏览: 5
接口测试通常关注的是API的行为,确保它按预期接收请求并返回正确的响应。在Python中,特别是在使用`pytest`这个流行的测试框架时,`@pytest.mark.parametrize`是一个强大的工具,用于参数化测试用例。当你需要多次运行相同的测试,每次使用一组不同的输入数据时,可以使用这个装饰器。
对于`openpyxl`库,它是用来操作Excel文件的,如果你要在单元测试中测试读取或处理Excel表格的功能,你可以这样做:
```python
import pytest
from openpyxl import load_workbook
# 假设我们有一个函数 process_data,它接受工作表和行数作为参数
def process_data(ws, row):
# ... 这里是你的业务逻辑 ...
@pytest.mark.parametrize("file_name, sheet_name, expected_result", [
("test.xlsx", "Sheet1", "Expected output for test1"),
("another_file.xlsx", "Sheet2", "Expected output for another file"),
])
def test_openpyxl(file_name, sheet_name, expected_result):
wb = load_workbook(file_name)
ws = wb[sheet_name]
# 执行过程数据处理,并验证结果
result = process_data(ws, 0) # 示例,假设第一行是处理的目标
assert result == expected_result, f"Got {result}, but expected {expected_result}"
# 使用pytest run_test.py -v 就会按照每个元组中的参数组合运行测试
```
阅读全文