一、什么是pytest+Allure
pytest+Allure是一种使用Python语言的测试框架和测试报告生成工具的组合,可以用于进行自动化测试和展示测试结果 。
- pytest是一种简洁、灵活、易扩展的测试框架,可以支持多种测试类型,如单元测试、功能测试、集成测试等,也可以与其他测试工具和库集成,如selenium, requests, mock等 。
- Allure是一种轻量级、支持多语言的开源测试报告生成框架,可以生成美观、清晰、详细的测试报告,也可以集成到持续集成工具,如Jenkins等 。
- pytest+Allure可以让测试人员更方便地编写、运行、管理和查看测试用例和测试报告,提高测试效率和质量 。
二、pytest+Allure是如何实现的
- pytest是基于Python的内置模块unittest和doctest的改进,使用了一些特殊的装饰器和断言,以及一些插件机制,来实现测试用例的编写、运行和管理 。
- Allure是基于Java语言开发的,使用了一些注解和命令行工具,以及一些插件机制,来实现测试结果的收集、分析和展示 。
- pytest+Allure是通过allure-pytest这个插件来实现的,这个插件可以让pytest在运行测试用例时,生成Allure能够识别的测试结果文件,然后Allure可以根据这些文件生成测试报告 。
三、pytest+Allure是如何使用的
- 首先,需要安装pytest和llure-pytest这两个库,可以使用pip命令来安装,如
pip install pytest allure-pytest
。 - 其次,需要下载allure的命令行工具,可以从[allure的官网]或[allure的GitHub]下载,然后将其bin目录添加到环境变量中,以便在命令行中使用allure命令 。
- 然后,需要编写测试用例,可以使用pytest的装饰器和断言,也可以使用allure的装饰器和附加信息,来增加测试用例的可读性和可维护性 。
- 接着,需要运行测试用例,可以使用pytest的命令行参数,如
pytest test.py
,也可以使用allure的命令行参数,如pytest test.py --alluredir=./result
,来指定生成测试结果文件的目录 。 - 最后,需要生成测试报告,可以使用allure的命令行工具,如
allure serve ./result
,来直接在浏览器中打开测试报告,或者allure generate ./result -o ./report
,来生成测试报告的静态网页文件,然后使用allure open ./report
,来在浏览器中打开测试报告 。
四、Allure的层级标签
allure的层级标签是指allure提供的一些装饰器函数,可以用来给测试用例添加一些分类和描述信息,以便在生成的测试报告中更清晰地展示测试用例的结构和内容 。
allure的层级标签主要有以下几种:
- @allure.epic():用来标记测试用例属于哪个项目或者史诗,是最高层级的标签,可以理解为项目名称 。
- @allure.feature():用来标记测试用例属于哪个功能或者模块,是第二层级的标签,可以理解为模块名称 。
- @allure.story():用来标记测试用例属于哪个用户故事或者子模块,是第三层级的标签,可以理解为子模块名称 。
- @allure.title():用来标记测试用例的标题,是第四层级的标签,可以理解为用例标题 。
- @allure.severity():用来标记测试用例的严重程度或者优先级,是第五层级的标签,可以理解为用例等级 。
allure的层级标签的使用方法是:
- 在编写测试用例的时候,可以在测试类或者测试方法的开头,使用相应的装饰器函数,给测试用例添加层级标签,例如:
import pytest
import allure
@allure.epic("计算器项目")
@allure.feature("加法模块")
class TestAdd:
@allure.story("正数相加")
@allure.title("测试两个正数相加")
@allure.severity(allure.severity_level.NORMAL)
def test_add_positive(self):
assert 1 + 2 == 3
@allure.story("负数相加")
@allure.title("测试两个负数相加")
@allure.severity(allure.severity_level.MINOR)
def test_add_negative(self):
assert -1 + -2 == -3
-
在运行测试用例的时候,可以使用pytest的命令行参数,如pytest test_add.py --alluredir=./result,来指定生成测试结果文件的目录 。
-
在生成测试报告的时候,可以使用allure的命令行工具,如allure serve ./result,来直接在浏览器中打开测试报告,或者allure generate ./result -o ./report,来生成测试报告的静态网页文件,然后使用allure open ./report,来在浏览器中打开测试报告。
-
在浏览器中查看测试报告的时候,可以看到测试用例按照层级标签的顺序和内容进行展示。
五、总结
pytest+allure是一种非常强大和实用的测试工具组合,可以帮助测试人员更高效和高质地完成自动化测试工作。本文介绍了pytest+allure的概念、原理和使用方法,希望对大家有所帮助。