1. 前言
- @allure.title 和 @allure.description 都是装饰器,给测试用例提供标题和描述
22. allure 的特性之 @allure.description()、@allure.title() 的详细使用
- 其实 allure 还提供了在测试用例执行过程中动态指定标题和描述等标签的方法
- 如: allure.dynamic.description allure.dynamic.title
2. allure.dynamic 的源代码
class Dynamic(object):@staticmethoddef title(test_title):plugin_manager.hook.add_title(test_title=test_title)@staticmethoddef description(test_description):plugin_manager.hook.add_description(test_description=test_description)@staticmethoddef description_html(test_description_html):plugin_manager.hook.add_description_html(test_description_html=test_description_html)@staticmethoddef label(label_type, *labels):plugin_manager.hook.add_label(label_type=label_type, labels=labels)@staticmethoddef severity(severity_level):Dynamic.label(LabelType.SEVERITY, severity_level)@staticmethoddef feature(*features):Dynamic.label(LabelType.FEATURE, *features)@staticmethoddef story(*stories):Dynamic.label(LabelType.STORY, *stories)@staticmethoddef tag(*tags):Dynamic.label(LabelType.TAG, *tags)@staticmethoddef link(url, link_type=LinkType.LINK, name=None):plugin_manager.hook.add_link(url=url, link_type=link_type, name=name)@staticmethoddef issue(url, name=None):Dynamic.link(url, link_type=LinkType.ISSUE, name=name)@staticmethoddef testcase(url, name=None):Dynamic.link(url, link_type=LinkType.TEST_CASE, name=name)
2.1 重点
上面有的方法都能进行动态修改,如:
allure.dynamic.featureallure.dynamic.linkallure.dynamic.issueallure.dynamic.testcaseallure.dynamic.storyallure.dynamic.titleallure.dynamic.description
3. title 的栗子
3.1 测试代码
https://www.yuque.com/poloyy/nz6yd2/lf410h#y5Ihq
3.2 allure 报告

4. description 的栗子
4.1 测试代码
def test_1():"""动态设置描述"""print(123)allure.dynamic.description("动态描述")allure.dynamic.title("动态标题")
4.2 allure 报告

可以看到动态描述会覆盖动态设置描述
5. 结合 parametrize
5.1 测试代码
data = [("name1", "123456", "name1 登录成功"),("name2", "123456", "name2 登录失败"),("name3", "123456", "name3 登录成功")]@pytest.mark.parametrize('username,pwd,title', data)def test_2(username, pwd, title):"""登录测试用例1"""print(username, pwd)allure.dynamic.title(title)
5.2 allure 报告

6. 其他属性的栗子
6.1 测试代码
def test_2():allure.dynamic.feature('动态feature')allure.dynamic.story('动态story')allure.dynamic.link("https://www.cnblogs.com/poloyy/p/1.html", '动态Link')allure.dynamic.issue("https://www.cnblogs.com/poloyy/p/2.html", '动态Issue')allure.dynamic.testcase("https://www.cnblogs.com/poloyy/p/3.html", '动态testcase')
6.2 allure 报告

