简介
- 轻量、灵活、支持多语言、多平台的测试报告工具
- 可以为dev / qa 提供详尽的测试报告、测试步骤、log
- 也可以为管理层提供high level统计报告
- Java语言开发的,支持pytest,JavaScript,PHP,ruby等
- 可以集成到Jenkins
安装: 前提需要有jdk
- windows / mac 通用安装方法
- https: //github.com/allure-framework/allure2/releases 下载allure.zip包
- 解压—>进入bin目录
- 把bin目录加入PATH环境变量
- 命令行验证是否安装成功:allure
- Mac可以使用brew安装
- brew install allure
- Windows可以使用scoop安装
- scoop install allure
- 安装
- 官网
- 文档
pytest-allure插件
pip install allure-pytest
Allure报告的生成
- pytest -s -v --alluredir=./allure_results --clean-alluredir
// 测试执行期间收集结果 - 方式一打开测试文件
- allure serve ./allure_results // 直接在浏览器打开测试报告
- 方式二打开测试文件
- allure generate ./allure-results -c -o allure-report --clean // 生成报告
- allure open -h 127.0.0.1 -p 8883 ./allure-report // 浏览器打开测试报告
allure特性分析
- 场景
- 希望在报告中看到测试功能,子功能,测试步骤,包括测试附加信息
- 解决
- @Feature,@story,@step,@attach
- 步骤
- imprt allure
- 功能上加@allure.story(“子功能名称”)
- 步骤上加上@allure.step(“步骤细节”)
- @allure.attach(“具体文本信息”),需要附加的信息,文本,图片,视频,网页
- 如果只是测试登录功能运行的时候可以加限制过滤
- pytest 文件名 --allure_features ‘购物车功能’ --allure-stories ‘加入购物车’ (注意这里–allure_features中间是下划线)
按feature,story,step运行
mport allure
@allure.feature("登录模块") # 标记模块
class Test_login:
@allure.story("登录测试用例") # 标记用例
def test_login(self):
with allure.step("开始登录"):
print("登录")
# @allure.step()只能以注解的形式放在类或方法上面
运行指定测试用例 *** ***
pytest test_demo.py --allure-feature ‘登录模块’
pytest test_demo.py --allure-stories ‘登录测试用例’
pytest test_demo.py --allure-features ‘登录模块’ --allure-stories ‘登陆成功’
allure特性-issue,testcase
- 关联测试用例(可以直接给测试用例地址链接)
- 关联bug
- 执行时需要加上参数
- –allure-link-pattern=issue:http://www.mytesttracker.com/issue/{}
- 执行时需要加上参数
TEST_CASE_LINK = 'http://hduweude/dewdue'
# 添加测试的链接地址
@allure.testcase(TEST_CASE_LINK, 'Test case title') # 链接和链接的名字
def test_with_testcase_link():
pass
# --allure-link-pattern=issue:http://www.mytesttracker.com/issue/{}
@allure.issue('140', 'Pytest dhsjdh dhsj ') # id 和 说明
def test_with_issue():
pass
$ pytest test_demo.py --allure-link-pattern=issue:http://www.mytesttracker.com/issue/{} --alluredir=./tmp/my_allure_results --clean-alluredir
allure按照重量级别进行一定的范围测试
- 场景:测试<PO、冒烟测试、验证线上测试>
- 解决:
- 通过附加pytest.mark标记
- 通过allure.feature, allure.story
- 通过allure.severity来附加标记
- Trivial 轻微缺陷(必输项无提示,或者提示不规范)
- Minor 次要缺陷(界面错误或者UI需求不符)
- Normal 普通缺陷(数值计算错误)
- Critical 临界缺陷(功能点缺失)
- Blocker 中断缺陷(客户端程序无响应,无法执行下一步操作)
- 步骤:
- 在方法、函数和类上附加
- @allure.severity(allure.severity_level.TRIVIAL)
- 运行时
- pytest -s -v 文件名 --allure-severities normal,critical
- 或者在pycharm中设置:
- 在方法、函数和类上附加
前端自动化测试-附加信息
- 场景:经常需要附加图片或者html,在适当的地方,适当的时机
- 解决:@allure.attach显示不同类型的附件,可以用来补充测试、步骤或测试结果
- 步骤:
- 在测试报告中附加纯文本:
- allure.attach(“这是纯文本”, attachment_type=allure.attachment_type.TEXT)
- 在测试报告中附加网页:
- allure.attach( body(内容),name,attachment_type,extension) # 格式
- allure.attach(“代码块”, ‘这是错误页的结果信息’, allure.attachment_type.HTML)
- 在测试报告中附加图片:
- allure.attach.file(source, name, attachment_type, extension) # 格式
- allure.attach.file("./result/b.png", attchment_type=allure.attachment_type.PNG)
- 在测试报告中附加纯文本: