-
allure框架介绍
1)轻量级、灵活,支持多语言、多平台 的测试报告工具;
2)可提供详尽的测试报告、步骤、log;
3)可提供high level统计报告;
4)Java语言开发的,支持pytest、JavaScript、PHP、ruby等;
5)可以集成到Jenkins。
官网:https://demo.qameta.io/allure
文档:http://allure.qatools.ru/ -
allure安装
1)安装allure工具
①下载zip包:文档 2.1.4 - Maven Central
②解压→进入bin目录→运行allure.bat
③把bin目录加入PATH环境变量
2)命令行安装插件:pip install allure-pytest -
收集结果 生成报告
1)将用例执行结果收集到指定文件中
pytest [测试文件.py] -vs --alluredir=./result
2)方式1:执行命令 临时在线查看测试报告allure serve ./result
(本地会启动一个web服务)
方式2:
①将用例执行结果生成到report路径
allure generate ./result -o ./report/ --clean
(覆盖路径加–clean)
②allure open -h 10.94.54.45 -p 61002 ./report/
(方便其他人打开我本地服务查看报告) -
allure常用特性
- 在报告中看到测试功能,子功能或场景,测试步骤,附加信息(数据/文本/图片/视频/网页)
解决: @feature @story @step
@allure.feature("登录模块") #feature可添加在 类/方法 上方
class TestLogin():
@allure.story("登录成功") #story可添加在 类/方法 上方
def test_login_success(self):
with allure.step("点击登录后登录成功"):
print("这是登录:测试用例-登录成功")
pass
@allure.story("密码缺失")
def test_login_failure(self):
with allure.step("点击用户名"):
print("输入用户名")
with allure.step("点击密码"):
print("输入密码")
print("点击登录")
with allure.step("点击登录失败之后登录失败"):
assert "1" == 1
print("登录失败")
- 关联测试用例-testcase
TEST_CASE_LINK = 'http://www.baidu.com'
@allure.testcase(TEST_CASE_LINK, '用户登录成功')
def test_login_success():
pass
- 划分重要性级别 - @severity
1)在方法,函数和类上方添加标记
@allure.severity(allure.severity_level.CRITICAL)
2)执行命令
pytest -vs [测试文件.py] --allure-severities normal,critical
@allure.severity(allure.severity_level.NORMAL)
class TestClassWithNormalSeverity(object):
def test_inside_the_normal_severity_class(self): # 默认为normal级别
pass
@allure.severity(allure.severity_level.CRITICAL)
def test_inside_the_normal_severity_class_with_critical(self):
pass
还可以在Pycharm中执行该命令
- @attach-附加文本、链接、图片、视频等信息
#附加文本
@allure.title("添加文本信息")
def test_attach_text():
allure.attach("这是一个纯文本", attachment_type=allure.attachment_type.TEXT)
#附加html代码块
def test_attach_html():
allure.attach("<body>这是一段htmlbody块</body>", attachment_type=allure.attachment_type.HTML)
#附加图片
def test_attach_photo():
# r"file":为了避免\xx是一个转义字符而导致的错误
allure.attach.file(r"D:\AutoTest\study_allure\testcases\110.jpg", name="这是一张图片", attachment_type=allure.attachment_type.JPG)
#附加视频
def test_attach_video():
allure.attach.file(r"D:\AutoTest\study_allure\testcases\Video_2021-09-01.MP4", name="这是一条视频", attachment_type=allure.attachment_type.MP4)