前言
在优雅展示:使用Allure和Pytest创建漂亮测试报告这篇文章中,我们介绍了Allure的基本用法,文末提到定制化报告,为啥需要定制呢?有时候,我们需要更加详细的信息,使得报告更加容易理解。
定制详细步骤
allure.step
是Allure框架提供的一个注解,用于将测试用例分为多个步骤并记录每个步骤的执行结果。
使用allure.step
可以帮助我们更细致地记录测试用例的执行情况,方便排查问题和定位错误。看一个示例:
scss
class TestStudentController(TestCase):
@pytest.mark.student
@pytest.mark.parametrize("feedback, tag", [
pytest.param(TestDataGenerator.text_(max_nb_chars=200), random.choice(['教学问题', '使用问题', '服务问题', '其他问题']))
])
def test_feedback(self, headers, db_connection, feedback, tag):
with allure.step("发送API请求"):
......
with allure.step("验证API响应"):
......
在上述代码中,我们使用了allure.step
将测试用例分为了两个个步骤,并为每个步骤添加了一个描述。当测试用例运行时,Allure会记录每个步骤的执行结果,并在测试报告中展示出来。
除了添加描述外,我们还可以使用allure.attach
方法将一些额外的信息添加到测试报告中。例如,以下代码演示了如何将测试用例的请求和响应信息添加到测试报告中:
scss
class TestStudentController(TestCase):
@pytest.mark.student
@pytest.mark.parametrize("feedback, tag", [
pytest.param(TestDataGenerator.text_(max_nb_chars=200), random.choice(['教学问题', '使用问题', '服务问题', '其他问题']))
])
def test_feedback(self, headers, db_connection, feedback, tag):
with allure.step("发送API请求"):
......
allure.attach("请求数据", feedback)
with allure.step("验证API响应"):
allure.attach("响应数据", self.response)
......
在上述代码中,我们使用了allure.attach
方法将请求和响应信息以文本形式添加到了测试报告中。这样可以方便我们在测试报告中查看每个测试用例的请求和响应情况,有助于排查问题和定位错误。
定制内容描述
@allure.description
是一个装饰器,用于在测试报告中为测试方法添加描述信息。你可以在测试方法上方使用@allure.description
装饰器,并传入相应的描述文本作为参数。
以下是一个示例:
python
import allure
@allure.description("这是一个示例测试方法")
def test_example():
# 测试代码
在上述示例中,我们使用@allure.description
装饰器为test_example
测试方法添加了描述信息。当测试报告生成时,该描述信息将显示在测试方法的部分下方。
动态描述,替换开始时的描述
可以从测试内动态更新最初的描述allure.dynamic.description,这是非常灵活的方式,代码如下:
python
import allure
@allure.description("这是一个示例测试方法")
def test_example():
allure.dynamic.description('替换后的描述')
# 测试代码
定制测试标题
@allure.title
是一个装饰器,用于在测试报告中为测试方法添加标题。你可以在测试方法上方使用@allure.title
装饰器,并传入相应的标题文本作为参数。
以下是一个示例:
python
import allure
@allure.title("测试方法")
def test_example():
# 测试代码
在上述示例中,我们使用@allure.title
装饰器为test_example
测试方法添加了标题。当测试报告生成时,该标题将显示在测试方法的部分上方。
链接
@allure.link将在"链接"部分提供指向所提供的网址的可单击链接
@allure.link将在"链接"部分提供指向所提供的网址的可单击链接
@allure.testcase
是一个装饰器,用于在测试报告中为测试方法添加测试用例链接。在测试方法上方使用@allure.testcase
装饰器,并传入相应的测试用例链接作为参数。
以下是一个示例:
python
import allure
@allure.testcase("https://example.com/test_case_001")
def test_example():
# 测试代码
在上述示例中,我们使用@allure.testcase
装饰器为test_example
测试方法添加了测试用例链接。当测试报告生成时,该链接将显示在测试方法的部分上方,供用户点击查看相关测试用例的详细信息。
自定义标签
@allure.feature
和 @allure.story
是用于在测试报告中为测试方法添加特性和用户故事的装饰器。
@allure.feature
装饰器用于定义被测试功能的名称,例如:
python
import allure
@allure.feature('登录功能')
def test_login():
# 测试代码
在上述示例中,使用 @allure.feature
装饰器来标识测试方法所属的功能模块。
@allure.story
装饰器用于定义测试方法的用户故事或场景,例如:
python
import allure
@allure.feature('登录功能')
@allure.story('使用有效用户名和密码登录')
def test_valid_login():
# 测试代码
在上述示例中,我们使用了 @allure.feature
和 @allure.story
装饰器结合起来为测试方法添加了功能和用户故事信息。
这些装饰器有助于组织测试报告,使其更具可读性和结构化,帮助用户更好地理解测试覆盖的功能和场景。
严重性标记
@allure.severity
是一个装饰器,用于为测试方法指定测试严重性级别。它可以帮助你在测试报告中标识测试的重要性和优先级。
以下是一个示例:
python
import allure
@allure.severity(allure.severity_level.CRITICAL)
def test_example():
# 测试代码
在上述示例中,我们使用 @allure.severity
装饰器为 test_example
测试方法指定了 "CRITICAL" 严重性级别。你可以根据实际情况选择不同的级别,如 "BLOCKER"、"CRITICAL"、"NORMAL"、"MINOR" 或 "TRIVIAL"。
这些级别可以帮助你确定测试的优先级和重要性,以便更好地管理和评估测试结果。测试报告中会以可视化的方式显示测试的严重性级别,让读者能够快速了解测试的重要性。
重试信息展示
对于重试,可以使用pytest重新运行失败插件。例如,如果我们有一个方法经常失败,那么可以添加参数--reruns=5,pytest启动选项中指定参数后,我们会在Retries选项卡上看到所有未成功运行此测试的尝试。
最后
掌握了定制的方法,开始定制你的个性化用例吧。