http://allure.qatools.ru/
https://docs.qameta.io/allure/#
灵活的、轻量级的测试报告工具
支持多平台:windows、mac、linux
支持多语言:java、python、PHP、ruby
提供详尽的测试报告、测试步骤、日志
可与jenkins集成
windows:
https://github.com/allure-framework/allure2/releases下载allure2.7.zip包
解压->进入bin目录->运行allure.bat
把bin目录加入PATH环境变量
mac:
brew install allure
我们使用python语言,还需要安装allure-pytest,安装命令:pip install allure-pytest
第一步:生成测试结果数据,并保存在指定目录
pytest [测试文件] --alluredir=./result/
第二步:生成html格式的测试报告(有2种方式)
方式1:在线查看报告,直接打开默认浏览器
allure serve ./result/
方式2:在本地生成报告,并启动一个tomcat服务(有2个命令)
allure generate ./result/ -o ./report/ --clean
(注:覆盖路径加–clean)
allure open -h 127.0.0.1 -p 8883 ./report/
我们希望在测试报告中添加文字描述,使我们的报告更加直观,比如测试的功能模块、子功能名称、测试步骤、测试附加信息等,此时会用到allure的feature、story、step、attach装饰器
test_allure.py
import pytest
import allure
@allure.feature("登录模块")
class TestLogin:
@allure.story("登录成功")
def test_login_success(self):
print("登录成功")
@allure.story("登录失败")
def test_login_fail(self):
print("登录失败")
@allure.story("密码缺失")
def test_input_pwd(self):
with allure.step("输入用户名"):
print("输入用户名")
with allure.step("点击登录按钮"):
print("点击登录按钮")
def test_attach_text(self):
allure.attach("我是文本",attachment_type=allure.attachment_type.TEXT)
def test_attach_html(self):
allure.attach("我是htmlbody内容", "html",attachment_type=allure.attachment_type.TEXT)
def test_attach_image(self):
allure.attach.file("./image/DCIM(3).jpg",name="image",attachment_type=allure.attachment_type.JPG)
命令行中执行以下命令
pytest -vs test_allure.py --allure-stories '登录成功'
#TRIVIAL:不重要,必填项无提示,或提示不规范
@allure.severity(allure.severity_level.TRIVIAL)
def test_trivial():
print("trivial")
#MINOR:不太重要,界面错误或UI需求不符
@allure.severity(allure.severity_level.MINOR)
def test_minor():
print("minor")
#NORMAL:普通,数值计算错误
@allure.severity(allure.severity_level.NORMAL)
def test_normal():
print("normal")
#CRITICAL:严重,功能点缺失
@allure.severity(allure.severity_level.CRITICAL)
def test_critical():
print("critical")
#BLOCKER:阻塞,中断缺陷,程序无响应,无法执行下一步操作
@allure.severity(allure.severity_level.BLOCKER)
def test_blocker():
print("blocker")
===================================================
#命令行中运行
pytest -s -v test_severity.py --alluredir=./result --allure-severities normal,critical
关联用例
@allure.link("http://www.baidu.com",name="百度")
def test_with_link():
print("加了测试用例链接")
关联bug
#issue里传入bug的id,以下示例的bug的id=1
@allure.issue("1","这是个bug")
def test_with_link():
print("加了BUG链接")
===============================
#命令行执行以下命令
pytest test_case.py --allure-link-pattern=issue:http://www.mytestissue/issue/{
} --alluredir=result
如果我们不想在命令行中敲命令,而是想在pycharm里直接执行,就要在pycharm中添加pytest的运行参数