allure生成报告及命令 allure+pytest

参考文档
https://ceshiren.com/t/topic/14033
https://ceshiren.com/t/topic/27768

几种工具的名称和用途:

  • allure:通过压缩包解压并配置环境变量进行安装,在命令行中通过allure命令调用来运行的,是allure工具的本体
  • allure-pytest:是python的第三方库,allure官方开发为了配合pytest测试框架使用生成对应的测试数据。没有单独的运行方法,通过在pytest运行时添加alluredir参数调用
  • pytest-allure-adaptor:为1.4版本allure搭配pytest框架使用,不支持新版本allure,不是特殊情况的话不要安装,这个库会影响allure-pytest的正常运行

1.allure安装

1.1allure安装包安装

依赖java环境,需要提前安装jdk

1.2allure插件安装

插件allure-pytest

pip install allure-pytest

2.pytest里运行案例并生成报告

场景1: 可随时打开报告
说明:第二步是生成的静态资源报告,第三步是将报告部署到web服务器上,并启动web服务

# 1.生成报告中间结果(json、text格式)
# --alluredir 指定中间结果存储位置,--clean-alluredir 清除老数据
pytest -s . --clean-alluredir  --alluredir=../result
# 2.生成静态资源报告(index.html、css、js文件)
# -o 指定报告输出路径,  -c/--clean 清理老的报告
allure generate ../result/ -o ../resport/ --clean
# 3.部署报告到服务器并查看报告
# -h 指定主机IP地址, -p 指定端口
allure open -h 127.0.0.1 -p 8883  ../resport

场景2: 在线报告

# 1.生成报告中间结果(json、text格式)
pytest -s . --clean-alluredir  --alluredir=../result
# 2.生成在线的测试报告
allure serve ../result

3. Allure的几个特性

3.1 @allure.feature 对应模块名称
3.2 @allure.story 对应用例标题
3.3 @allure.link@allure.issue@allure.testcase

详细说明:
@allure.link 与测试用例相关的链接,比如需求地址 @allure.link(url,name),name非必填参数,显示在报告上的链接跳转名
@allure.issue 禅道类似系统记录的这个用例的bug的url
@allure.testcase 与用例链接

区别:
link、issue、testcase更好的区分——访问链接、BUG链接、测试用例链接

例子:

TEST_CASE_LINK="https://www.baidu.com"
@allure.testcase("TEST_CASE_LINK","链接名称(可自定义)")

参考链接:
参考1
参考2

3.4 with allure.step

用于将一个测试用例,分成几个步骤在报告中输出

3.5 allure.attach

用于向测试报告中输入一些附加的信息,通常是一些测试数据信息

  • allure.attachement_type.TEXT
  • allure.attachement_type.HTML
  • allure.attachement_type.JPG
  • allure.attachement_type.MP4

添附件为文本内容

allure.attach("文件内容","自定义文件名称",attachment_type="文件类别")

附件为图片或视频文件

allure.attach.file("文件地址","自定义文件名称",attachment_type="文件类别")

3.6@allure.severity

定义测试用例或测试模块的级别,总共包含5大级别,分别为:
Trival(不重要的)、Minor(不太重要)、Normal(正常的)、Critical(严重的)、Blocker(致命的)

在测试用例或测试类之前定义,当类定义了级别,类中的测试用例默认和类的级别一致;

@allure.severity(allure.severity_level.NORMAL)

执行的时候,通过–allure-severities="级别"执行指定级别的用例;

3.7 title

定义测试用例名称,在用例之前定义

@allure.title(“用例名称”)

4. 命令参数

  • –alure-features=“功能名称”:执行指定功能的用例
  • –allure-severities=“指定级别”:执行指定级别的用例
  • –alluredir=“报告路径”:指定报告生成路径,必须使用双引号;
  • allure serve “报告目录”:以html格式查看报告
  • allure generate “报告目录”:生成html报告到allure-report目录
  • allure generate “报告目录” -o “html报告目录”:生成html报告到指定目录
  • –clean-alluredir:清除之前的报告目录

高级用法:
pytest-allure-adaptor 插件

应用
1.selenium用例运行失败截图
利用pytest内置函数pytest_runtest_makereport()
pytest_runtest_makereport