1、pytest注意事项:
pytest 是一个常用的 Python 测试框架,它具有许多强大的功能和扩展性。当与 requests 库结合使用时,可以方便地进行 Web API 的测试。在使用 pytest 进行测试时,有一些命名规范可以遵循,以便更好地组织和管理测试代码。以下是常见的 pytest 命名要求:
①. 测试文件的命名规范:
- 测试文件应该以 `test_` 开头或者以 `_test.py` 结尾。
- 例如,`test_calculation.py` 或者 `calculation_test.py`。
②. 测试函数的命名规范:
- 测试函数应该以 `test_` 开头。
- 例如,`def test_addition()` 或者 `def test_subtraction()`。
③. 测试类的命名规范:
- 如果您使用类来组织测试,类名应该以 `Test` 开头,并且不能包含下划线。
- 例如,`class TestCalculation()`。
这些命名规范有助于 pytest 自动识别测试,并且可以更好地组织和查找你的测试代码。请注意,当你运行 pytest 时,它会自动查找符合这些命名规范的函数和类,并执行相应的测试。重要的是要保持一致性,遵循这些命名规范能够使您的测试代码更易读和易于维护。在命令行上运行 pytest 命令,它将自动运行当前目录下的所有测试用例,所以命名不规范会少执行用例;
2、request和pytest:
耳熟能详的python就不再赘述了,这里简单介绍一下pytest和request。
①request
以下是 requests 常见的一些方法和用法:
# 以下是 requests 常见的一些方法和用法:
# 发送 GET 请求:
response = requests.get(url, params=params, headers=headers)
# 发送 POST 请求:
response = requests.post(url, data=data, json=json_data, headers=headers)
# 发送 PUT 请求:
response = requests.put(url, data=data, headers=headers)
# 发送 DELETE 请求:
response = requests.delete(url, headers=headers)
# 获取响应的文本内容:
response_text = response.text
# 获取响应的 JSON 数据:
response_json = response.json()
# 获取响应的二进制数据:
response_content = response.content
# 获取响应头:
response_headers = response.headers
requests 还支持其他许多功能和参数,如设置请求超时时间、处理重定向、处理 Cookies 等。它具有简单易用的接口和丰富的文档,广泛应用于 Web 开发中的 HTTP 请求和响应处理。
②pytest
pytest 是一个常用的 Python 测试框架,它提供了简单且强大的工具来编写和运行测试用例。pytest 具有易于使用的语法,使得编写清晰、可读性高的测试代码变得简单,以下是 pytest 的一些特点和优势:
- 简洁的语法:pytest 提供了一种简洁且易于理解的语法,使得编写测试用例变得更加直观和简单。
- 自动发现测试用例:pytest 可以自动发现以 test_ 开头的函数、以 test 开头的方法和以 Test 开头的类,并将它们视为测试用例进行执行。
- 丰富的断言:pytest 内置了丰富的断言方法,可以轻松地编写断言来验证测试的预期结果。
- 丰富的扩展性:pytest 支持插件系统,可以通过插件来扩展其功能,如测试覆盖率、HTML 报告等。
- 高度可定制化:pytest 提供了许多命令行选项和配置选项,可以根据需求进行定制和配置。
- 支持标记和跳过测试:pytest 支持使用自定义的标记对测试用例进行分类,以便只运行特定的测试用例或跳过某些测试用例。
- 并行执行:pytest 支持并行执行测试用例,加快测试的运行速度。
# pytest使用assert断言来验证预期结果
assert 200 == response.status_code
assert "成功" in response.text
assert 401 == response.json().get("code")
3、Allure生成测试报告:
Allure 是一个功能强大的开源测试报告框架,用于生成漂亮、交互式的测试报告。它与 pytest 结合使用,可以为测试结果提供可视化和详细的报告,使测试结果更加易于理解和分析。注意:需要安装java环境
①优势:
以下是一些 Allure 的特点和优势:
- 漂亮的报告界面:Allure 生成的测试报告具有漂亮且易于阅读的界面,以图表、图像和图表的形式展示测试结果。
- 详细的测试结果:Allure 报告能提供详细的测试结果信息,包括测试用例的执行状态、运行时间、错误信息、附件等。
- 多种图表视图:Allure 可以生成各种图表视图,如测试用例的执行时间分布、测试用例的失败和通过情况等。
- 灵活的标记和过滤:Allure 支持根据标记和过滤器来显示特定的测试结果,以便更好地分析和定位问题。
- 支持多语言:Allure 支持多种语言,包括 Java、Python、Ruby、C#等,可以在不同的测试框架中使用。
②安装及使用
使用下方命令进行安装
pip install pytest-allure
在pytest.ini文件中定义好pytest的配置文件
# pytest配置文件
[pytest]
addopts = -s --alluredir report
testpaths = ./scropt
python_files = test*.py
python_classes = Test*
python_functions = test*
生成报告:先运行pytest运行测试用例,在使用allure生成报告命令生成报告
# 控制台先运行
pytest
# 用例运行结束后运行
allure serve report