我们学习了如何编写自动化测试脚本,也能顺利执行并展示结果了,可是我们如何向其他干系人展示测试结果呢??而且尽量优雅美观,不光有数据,还要有图表的那种。来,介绍一个测试报告框架Allure
allure官网:https://docs.qameta.io/
时间充裕且英文好的同学可以直接看官网,任何你想知道的内容都可以在官网上查到,如果时间不充足且英文不太好的同学可以截下来看看我的笔记,入门是没问题的。如果再想进阶,还是得去官网。
allure简介
- allure是一个轻量级、灵活的,支持多语言的测试报告工具
- 多平台的,奢华的report框架
- 可以为dev/qa提供详尽的测试报告,测试步骤及log
- 有可以为管理层提供高水平的统计报告
- Java语言开发的,支持pytest、JavaScript、PHP、ruby等
- 可以集成到Jenkins
allure安装
- win/mac通用安装方法
- 下载地址:https://repo1.maven.org/maven2/io/qameta/allure/allure-commandline/
- 下载allure2.7.zip包
- 解压->进入bin目录->运行allure.bat
- 把bin目录加入PATH环境变量
- mac可以使用brew安装:
brew install allure
- 文档:https://docs.qameta.io/allure/
安装插件allure-pytest
虽然已经成功安装了allure,但是是没有办法单独使用的,需要结合pytest使用,所以还需要下载插件allure-pytest
插件要在python环境下安装,所以使用pip install allure-pytest
allure常用的特性
一、 对测试用例分组
- 场景:希望在报告中看到测试功能、子功能或场景、测试步骤、包括测试附加信息
- 解决:添加装饰器@allure.feature、@allure.story、@allure.step、@allure.attach
- 步骤:
1.import allure
2.功能上加@allure.feature,一般是在类上
3.子功能上加@allure.story,一般是在方法上、
4.步骤上加@allure.step、
5.打印具体的文本信息加@allure.attach,需要附加的信息,可以是数可据,文本,图片,视频、网页等 - 执行
可以根据feature或者story过滤用例执行。如果对参数不熟悉,可以使用pytest --help|grep allure
获取,如下:
用法如下:(allure-env) Yujin:allure yujin$ pytest --help|grep allure --allure-severities=SEVERITIES_SET --allure-epics=EPICS_SET --allure-features=FEATURES_SET --allure-stories=STORIES_SET --allure-ids=IDS_SET Comma-separated list of IDs. --allure-link-pattern=LINK_TYPE:LINK_PATTERN --alluredir=DIR Generate Allure report in the specified directory (may --clean-alluredir Clean alluredir folder if it exists --allure-no-capture Do not attach pytest captured logging/stdout/stderr to
- 根据feature过滤:
pytest test_allure.py --allure-features="登录模块" -vs
- 根据story过滤:
pytest test_allure.py --allure-stories="登录失败" -vs
- 如果希望执行多个story或者feature,多个story名或feature名中间加“,”即可
但是注意,–allure-features和–allure-stories同时使用时,如果–allure-features中的用例包括了–allure-stories的用例,则只执行–allure-features的用例;如果不包含,则同时执行–allure-features和–allure-stories的用例pytest test_allure.py --allure-stories="登录失败","登出失败" -vs
是的,通过pytest -m
参数也可以实现分组运行测试用例的目的,但是为例在测试用例中展示,结合allure特性更直观
二、allure特性 - testcase
场景:自动话测试用例执行失败了,希望关联手工测试的地址,方便测试人员定位bug
解决:添加@allure.testcase(TEST_CASE_LINK,“地址描述”)
@allure.feature("搜索模块")
class TestSearch:
@allure