接口自动化测试实现:
pytest + request + allure
V1.0 版本 初探 API 自动化测试
写出来的自动化脚本存在一些问题,针对遇到的问题进行了部分优化,问题记录可查看该文章:
项目预览

修改记录
pytest 替代 unittest
conftest.py
用例内必要的参数可以封装到 conftest.py 内,方便调用,比如:
- host
- 公共参数
- 特殊参数
- 获取配置信息
- …
以公共参数为例:
# conftest.py
@pytest.fixture(scope="module")
def common_params():
""" 获取公共参数
"""
return get_params_ini.GetParamsIni().get_params()
那么在用例内就可以直接使用,省去了之前每条 case 模块 setup 获取公共参数及 host 的冗余。
# testcase.py
import pytest
def test_case_02(self, common_params):
print(common_params)
pytest.skip("此为测试启动方法")
参数化
pytest 还有一大亮点是参数化,这样只用设计用例数据就可以啦。
@pytest.mark.parametrize(
"num, result",
[(-1, "fail"), (5, "pass"), (0, "error")]
)
def test_case_01(self, num, result):
if num > 0:
assert result == "pass"
elif num < 0:
assert result == "fail"
else:
assert result == "error"
指定用例
pytest.main

本文深入探讨了使用pytest、request和allure进行接口自动化测试的实践。覆盖了pytest替代unittest的优势,conftest.py参数化的应用,日志记录的优化,断言器的设计,以及allure报告的生成技巧。并介绍了自动生成用例模板的方法。
最低0.47元/天 解锁文章
1459

被折叠的 条评论
为什么被折叠?



