@allure.title("str")
给每个测试设置测试标题
注意: 如果类前写了一个title,而且测试函数前面也写了一个title那么,测试函数前的名称优先级更高一些。
Allure会将测试用例划分为四个层次:epics,features,stories,skip。这四个层次,按照顺序依次包含【epics包含多个features,以此类推】,会在allure的目录下以下辖目录的的方式进行组织。同时也可通过pytest指令执行对应层级名称下的测试用例。
这些标记可以在类前标记,可以在测试用例函数前进行标记,类和测试用例函数前进行标记。注意: 你在类前进行标记,然后再类中的测试用例再用该标记进行标记,allure采集用例的时候,用例数量会因此叠加。具体情况,那么去做一下就能了解刚刚的描述。
@allure.epic(str) # 史诗层级的allure标记
@allure.feature(str) # 特征层级的allure标记
@allure.story(str) # 故事层级的allure标记
@allure.skip(str) # 标签层级的allure标记
epics,features,stories都是目录层级的标记,而skip则会以小标签的形式存在于测试报告名称的title下。
pytest支持allure标记来选择执行测试用例这样,就可以通过allure选择性的执行用例了。基本命令如下
pytest --allure-epics=EPICS_SET
pytest --allure-features=FEATURES_SET
pytest --allure-stories=STORIES_SET
上述命令,均为pytest命令,后面的参数为pytest支持allure标记层级筛选执行用例的参数选项。参数后面的大写字母,是对应的标记名称。可以填写多个同级标记名称,用英文逗号分割即可。
allure不仅会将测试用例分成不同的层级,而且还可以将测试用例用不同的严重等级。这些严重等级按照优先程度递减分别为Blocker:中断缺陷,critical:临界缺陷,normal:普通缺陷,Minor:次要缺陷,Trival:轻微缺陷。
用于函数前面,标记用法如下代码所示:
@allure.severity(allure.severity_level.Blocker)
@allure.severity(allure.severity_level.critical)
@allure.severity(allure.severity_level.normal)
@allure.severity(allure.severity_level.Minor)
@allure.severity(allure.severity_level.Trival)
这样标记后,allure会以条形图的方式用不同的等级来区分对应等级下的用例的通过率。
同时,你可以通过下面的pytest命令来执行对应命令等级下的测试用例:
pytest --allure-severities=SEVERITIES_SET
SEVERITIES_SET的可选值为:blocker、critical、normal、minor、trivial
执行过程的标记有多种使用方式可以在函数前,函数后,并且能够携带参数的进行测试步骤的标记,最终运行的步骤,会将执行过程打印在测试报告中【注:并不是日志中】。
前提:该函数在头部引入了allure
使用方式如下:
@allure.step("字符串相加:{0},{1}")
# 测试步骤,可自动获取函数参数 这个会定制step
def fun_ction(str1, str2):
return str1, str2
通过这种方式,即可在pytest调用到该函数的时候,将测试的步骤,以及参数存入到allure生成的测试报告的步骤之中。
前提:该函数的头部引入了allure
使用方式有两种,第一种为:
allure.step(str)
第二种为:
with allure.step(str):
allure.sttach(str,str)
在两种方式都可以传入字符串,打印到执行步骤的报告中,不同的是,第二中可以有小的项目,【个人认为,第一种就够用】
仅仅是为了allure能够将执行的步骤打印到报告中,而并非是看日志文件才能看到步骤。而两种标记其实都要用到,一个是检查某个动作的入参来使用,另一个,则是检查以下某个检查结果的动作的。用的熟练的化,看报告就能够看到测试程序到底是如何执行的。
其它的allure的标记个人认为可能有些杂项了,因为能用上的概率挺小的,因此,不做讨论,这里只是将语法格式写一下,以为以后有兴趣研究的人去研究一下,其实也不难。
@allure.issue("http://www.baidu.com") # 链接1 ? 详解链接
@allure.testcase("http://www.testlink.com") # 链接2 ? 详解链接
@allure.link("") # 链接3
allure.attach('附件内容', '我是附件名', allure.attachment_type.TEXT) # 文字类附件
allure.attach.file(r'C:\123.jpg', '截图名', attachment_type=allure.attachment_type.JPG) # 附件类附件【这里是图片】