pytest之allure
Allure 框架是一个灵活的轻量级多语言测试报告工具
安装:pip install pytest-allure
allure是一个命令行工具,可以下载后进行环境变量
下载地址:https://github.com/allure-framework/allure2/releases
配置环境变量:allure的解压地址,路径为bin文件所在目录。如:D:\allure-2.13.6\bin
使用方法:
在执行测试用例命令行后面添加参数: pytest 文件名.py --alluredir=目录。(该目录为测试结果存放的目录地址,如果要清除以前的测试结果,那么在命令后面添加【--clean-alluredir】即可)
在浏览器中生成测试报告:allure serve 报告存放目录
从现有的allure结果生成报告:allure generate 报告存放目录
在浏览器中打开报告:allure open 报告存放目录
删除生成的报告数据:allure report clean
allure报告结构
Overview:总览。
Categories:类别,默认是分了 failed 和 error,凡是执行结果是其中一个的都会被归到类里面,可以通过这里快捷查看哪些用例是 failed 和 error 的。
Suites:测试套件,就是所有用例的层级关系,可以根据 package、module、类、方法来查找用例。
Graphs:测试结果图形化,包括用例执行结果的分布图,优先级,耗时等。
Timeline:可以看到测试用例精确的测试时序(执行顺序),包括执行时间。
Behaviors:行为驱动,根据 epic、feature、story 来分组测试用例。
Packages:按照 package、module 来分组测试用例。
添加环境变量
在存放测试报告的文件夹中创建文件,environment.properties 或者 environment.xml 文件
environment.properties文件的内容:
environment.xml 文件的内容:
注意:当文件含有中文时,environment.properties这种方式中含有乱码
解决配置文件被删除问题
在执行clean-alluredir命令时,会把环境配置文件也删除
可以在配置文件(environment.properties 或 environment.xml)存放于项目根目录,运行报告之前,拷贝到报告目录里即可
如:
pytest test_case.py --alluredir=allure --clean-alluredir 执行测试用例
cp environment.properties ./allure/environment.properties 将环境配置文件复制到allure文件夹中
allure serve allure 生成测试报告
Categories 分类(测试用例结果的分类)
默认情况下有两种分类缺陷:
product defects:产品缺陷,测试结果为failed
test defects:测试缺陷,测试结果为error或者是broken
可以自定义创建缺陷的分类,文件名为:categories.json,只需要把该文件放在测试结果存放的目录即可,也就是与配置环境变量的文件放在一起
categories.json的参数:
name参数:分类名称
matchedStatuses:测试用例的运行状态,默认["failed", "broken", "passed", "skipped", "unknown"]。
messageRegex:测试用例运行的错误信息,默认是 .* ,是通过正则去匹配的。
traceRegex:测试用例运行的错误堆栈信息,默认是 .* ,是通过正则去匹配的。
文件内容:
allure.step() 测试步骤
在allure报告中添加测试用例步骤的两种方式:
1、@allure.step():这种方式会带上函数的传参和对应的值
2、with allure.step():这种方式代码可读性更好一点,但不会带上函数里面的传参和对应的值
allure 报告允许对每个测试用例进行非常详细的步骤说明,通过 @allure.step() 装饰器,可以让测试用例在 allure 报告中显示更详细的测试过程。
@allure.step() 只有一个参数,就是 title,输入标题内容,allure 报告上就会显示出来。
allure.setp使用方法:
在测试用例上加装饰器:@allure.setp("标题内容")
with allure.step()用法:
也就是在方法下运行对应的功能。方便进行管理
allure.attach 附件管理
allure 报告可以显示许多不同类型的附件,这些附件可以补充测试、步骤或装置结果
使用方法:
1、allure.attach(body, name, attachment_type, extension)
参数body:要写入文件的原始内容
参数name:附件名
参数attachment_type:附件类型,是allure.attachment_type中的一种
参数extension:所创建文件的扩展名
allure.attachment_type提供的附件类型:
2、allure.attach.file(source, name, attachment_type, extension)
参数source:包含文件路径的字符串
参数name:附件名
参数attachment_type:附件类型,是allure.attachment_type中的一种
参数extension:所创建文件的扩展名
@allure.description()装饰器
添加足够详细的测试用例描述,可以更加方便查看测试步骤
使用方法:
1、@allure.description(str) :传入一个html代码组成的字符串
2、@allure.description(str) :直接传入字符串信息
3、在装饰的测试函数第一行插入注释信息
@allure.titile()标题装饰器
测试用例的标题可以通过特殊的方式变得更易读,标题支持参数占位符并支持动态替换
使用方法:
在测试用例函数上方,使用@allure.title(标题详解,并且可以加参数)