1、allure介绍
- allure是一个轻量级的测试报告工具,能够提供详尽的测试报告、测试步骤和测试日志等;
- 支持多平台测试报告框架;
- java语言开发,支持pytest、javascript、PHP、ruby等多种语言;
- 可以集成到jenkins;
2、allure测试报告模板
https://demo.qameta.io/allure/
3、allure安装
1)linux环境
sudo apt-add-repository ppa:qameta/allure sudo apt-get update sudo apt-get install allure
2)windows
下载地址:
https://repo.maven.apache.org/maven2/io/qameta/allure/allure-commandline/
选择对应的版本,然后选择zip包进行下载;
安装:
将zip包解压,并配置环境变量即可使用;
在path路径添加:D:\Program Files\allure-2.13.5\bin
验证:
在cmd窗口输入命令:allure --version
4、allure-pytest安装
使用pip在线安装,执行命令:
pip install allure-pytest
验证:
在cmd窗口输入命令:
pip show allure-pytest
结果如下:
5、执行
1)生成报告
#第一次生成报告
pytest 脚本名称 --alluredir="报告生成路径"
#覆盖原报告文件
pytest 脚本名称 --clean-alluredir --alluredir="报告生成路径"
2)查看报告
allure serve "报告路径"
3)生成html报告
#第一次生成html报告
allure generate "报告路径" -o "html报告路径"
#覆盖生成html报告
allure generate "报告路径" -o "html报告路径" -clean
6、allure常用装饰符
allure常用于生成报告,在报告中展示测试功能、测试步骤、附加信息等;
allure常用修饰符:
1)feature
定义测试功能名称,一般在类之前定义
@allure.feature("功能名称)
2)story
定义子功能名称,一般在测试用例之前定义
@allure.story("子功能名称")
3)step
定义测试步骤
with allure.step("步骤名称")
4)attach
为测试用例添加截图、附件等信息,常见的文件类别有4种
- 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="文件类别")
5)testcase
在测试用例中添加链接,一般在测试用例之前添加
TEST_CASE_LINK="https://www.baidu.com"
@allure.testcase("TEST_CASE_LINK","链接名称(可自定义)")
6)severity
定义测试用例或测试模块的级别,总共包含5大级别,分别为:Trival(不重要的)、Minor(不太重要)、Normal(正常的)、Critical(严重的)、Blocker(致命的)
在测试用例或测试类之前定义,当类定义了级别,类中的测试用例默认和类的级别一致;
@allure.severity(allure.severity_level.NORMAL)
执行的时候,通过–allure-severities="级别"执行指定级别的用例;
7)title
定义测试用例名称,在用例之前定义
@allure.title("用例名称")
7、命令参数
- –alure-features=“功能名称”:执行指定功能的用例
- –allure-severities=“指定级别”:执行指定级别的用例
- –alluredir=“报告路径”:指定报告生成路径,必须使用双引号;
- allure serve “报告目录”:以html格式查看报告
- allure generate “报告目录”:生成html报告到allure-report目录
- allure generate “报告目录” -o “html报告目录”:生成html报告到指定目录
- –clean-alluredir:清除之前的报告目录
8、样例
1)定义测试用例名称和测试用例步骤
脚本:
import pytest
import allure
@allure.feature("登录功能")
class TestLogin():
@allure.story("登录成功-输入正确的用户名和密码")
def test_login_success(self):
with allure.step("步骤1:打开app"):
print("打开app")
with allure.step("步骤2:打开登录页面"):
print("打开登录页面")
with allure.step("步骤3:输入正确用户名和密码"):
print("输入正确用户名和密码")
with allure.step("步骤4:点击登录按钮"):
print("点击登录按钮")
print("登录:登录成功")
pass
@allure.story("登录失败-用户名为空")
def test_login_fail(self):
print("登录:登录失败,用户名为空")
pass
@allure.story("登录失败-密码为空")
def test_login_fail2(self):
print("登录:登录失败,密码为空")
pass
@allure.story("登录失败-用户名/密码不正确")
def test_login_fail3(self):
print("登录:登录失败,用户名/密码不正确!")
pass
@allure.feature("搜索功能")
class TestSearch():
TEST_CASE_LINK = "https://www.baidu.com"
@allure.testcase("TEST_CASE_LINK", "活动页面链接地址")
@allure.story("搜索成功-搜索内容为任意字符")
def test_search_success(self):
print("搜索:搜索成功,输入任意字符~~")
pass
@allure.story("搜索失败-搜索内容为空")
def test_search_fail(self):
print("搜索:搜索失败,搜索内容为空~~")
pass
执行命令:
#生成报告
pytest test_allureTest01.py --alluredir="../result/"
#查看报告
allure serve"../result/"
执行结果:
2) 定义测试用例级别
脚本:
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
import pytest
import allure
@allure.severity(allure.severity_level.NORMAL)
class TestSeverity01:
@allure.severity(allure.severity_level.NORMAL)
def test_demo01(self):
print("severity normal")
@allure.severity(allure.severity_level.MINOR)
def test_demo02(self):
print("severity minor")
@allure.severity(allure.severity_level.BLOCKER)
def test_demo03(self):
print("severity blocker")
def test_demo04(self):
print("severity normal")
@allure.severity(allure.severity_level.CRITICAL)
class TestSeverity02:
@allure.severity(allure.severity_level.NORMAL)
def test_demo01(self):
print("TestSeverity02:severity normal")
@allure.severity(allure.severity_level.TRIVIAL)
def test_demo02(self):
print("TestSeverity02:severity Trival")
@allure.severity(allure.severity_level.CRITICAL)
def test_demo03(self):
print("TestSeverity02:severity critical")
def test_demo04(self):
print("TestSeverity02:severity critical")
执行命令:
pytest test_allureTest02.py --allure-severities="critical" -vs
执行结果:
3)测试用例添加附件信息
脚本:
import pytest
import allure
@allure.title("附件信息为text文本")
def test_attach_text():
allure.attach("文件内容:这是一个text文本","text文件",attachment_type=allure.attachment_type.TEXT)
@allure.title("附件信息为html文件")
def test_attach_html():
allure.attach("<body>html文本内容</body>","html文件",attachment_type=allure.attachment_type.HTML)
@allure.title("附件信息为jpg图片")
def test_attach_photo():
allure.attach.file("../attach/test.jpg","jpg图片",attachment_type=allure.attachment_type.JPG)
执行命令:
#生成报告,清除之前的报告内容
pytest test_allureAttach.py --clean-alluredir --alluredir="../result"
#生成报告
allure generate "../result/" -o "../report/"
执行结果: