参考文档
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","链接名称(可自定义)")
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