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(标题详解,并且可以加参数)

 

posted on 2023-09-07 16:15  搬家小蜜蜂  阅读(352)  评论(0)    收藏  举报

导航