Allure常用功能汇总
allure标签
使用方法 |
参数值 |
参数说明 |
---|---|---|
@allure.epic() |
epic描述 |
敏捷里面的概念,定义史诗,往下是feature |
@allure.feature() |
模块名称 |
功能点的描述,往下是story |
@allure.story() |
用户故事 |
用户故事,往下是title |
@allure.title(用例的标题) |
用例的标题 |
重命名html报告名称 |
@allure.testcase() |
测试用例的链接地址 |
对应功能测试用例系统里面的case |
@allure.issue() |
缺陷 |
对应缺陷管理系统里面的链接 |
@allure.description() |
用例描述 |
测试用例的描述 |
@allure.step() |
操作步骤 |
测试用例的步骤 |
@allure.severity() |
用例等级 |
blocker,critical,normal,minor,trivial |
@allure.link() |
链接 |
定义一个链接,在测试报告展现 |
@allure.attachment() |
附件 |
报告添加附件 |
allure用例等级
- blocker 阻塞缺陷(功能未实现,无法下一步)
- critical 严重缺陷(功能点缺失)
- normal 一般缺陷(边界情况,格式错误)
- minor 次要缺陷(界面错误与ui需求不符)
- trivial 轻微缺陷(必须项无提示,或者提示不规范)
功能实现:只需要在用例方法上面添加@allure.severity
装饰器即可
@allure.severity("normal") # 默认是normal级别的用例
allure命令行参数allure-severities
pytest -h可以查看到allure相关的几个命令行参数
--allure-severities=SEVERITIES_SET Comma-separated list of severity names. Tests only with these severities will be run. Possible values are: blocker, critical, normal, minor, trivial.
如果有很多测试用例,现在只想做个快速的回归测试,只测试用例级别为blocker和critical级别的测试用例
pytest --alluredir ./report/allure --allure-severities blocker,critical
写法二:
pytest --alluredir=./report/allure --allure-severities=blocker,critical
如果只执行blocker级别的用例
pytest --alluredir=./report/allure --allure-severities=blocker
allure链接地址
- @allure.link() 访问链接
- @allure.issue() Bug链接
- @allure.testcase() 测试用例链接
首先看一下三个装饰器的源码
def link(url, link_type=LinkType.LINK, name=None): return safely(plugin_manager.hook.decorate_as_link(url=url, link_type=link_type, name=name)) def issue(url, name=None): return link(url, link_type=LinkType.ISSUE, name=name) def testcase(url, name=None): return link(url, link_type=LinkType.TEST_CASE, name=name)
知识点:
- issue()和testcase()其实调用的也是link(),只是link_type不一样
- 必传参数 url:跳转的链接
- 可选参数 name:显示在allure报告的名字,如果不传就是显示完整的链接;建议传!!不然可读性不高
- 可以理解成:三个方法是一样的,我们都提供跳转链接和名字,只是链接的type不一样,最终显示出来的样式不一样而已【type不一样,样式不一样】
- 如果你喜欢,只用@allure.link()也可以
- 而出现三个装饰器的原因是为了更好地将链接分类【访问连接、Bug链接、测试用例链接】
总结
- 为了减少程序的阅读复杂性,其实可以统一用@allure.link()
- 传name,写好链接描述,就知道这个链接是干嘛的啦,反正三个装饰器的作用都是一样的,就是样式略微不同…..
标记装饰器
提供了三个装饰器
- @allure.epic:敏捷里面的概念,定义史诗,往下是 feature
- @allure.feature:功能点的描述,理解成模块往下是 story
- @allure.story:故事,往下是 title
用命令行的方式执行
- –allure-epics
- –allure-features
- –allure-stories
# 只运行 epic 名为 test 的测试用例 pytest --alluredir ./report/allure --allure-epics=test # 只运行 feature 名为 模块 的测试用例 pytest --alluredir ./report/allure --allure-features=模块 # 只运行 story1、story2 的测试用例(也可以不用=号 空格就行了哦) pytest tests.py --allure-stories story1,story2 # 指定 feature+story pytest tests.py --allure-features feature2 --allure-stories story2
allure添加环境变量
在 allure 报告首页 ENVIRONMENT 显示 ‘There are no environment variables’ 没有环境变量的配置信息。 环境变量配置可以添加报告相关的配置参数,如运行的系统环境,版本号,测试环境,测试人员等基本信息
添加environment配置文件
方法一:environment.properties 文件
在项目根目录添加environment.properties,文件里配置如下信息:
systemVersion=mac11.1 pythonVersion=3.7.6 allureVersion=2.13.8 baseUrl=http://192.168.1.xxx:8000 projectName=testName author=jkc
方法二: environment.xml 文件
<environment> <parameter> <key>Browser</key> <value>Chrome</value> </parameter> <parameter> <key>Browser.Version</key> <value>50.0</value> </parameter> <parameter> <key>Stand</key> <value>Production</value> </parameter> </environment>
展示报告
在运行 pytest 生成 allure 报告的时候,有时候需要加 --clean
参数,清楚之前的报告记录,这样会之前清空 report 目录,environment.properties文件也会被删除。 为了不让 environment.properties 文件删除掉,可以把 environment.properties 文件放项目根目录,在运行报告的时候,先 copy 到 report 目录
> pytest --alluredir ./report --clean-alluredir > cp environment.properties ./report/environment.properties > allure serve ./report
使用
配置pytest.ini
addopts = -vs --alluredir ./report # 项目的根目录下
运行项目产生报告
打开报告
使用serve
方法一:直接在pycharm下用terminal打开
allure serve ./report
方法二:在终端命令行打开
allure serve ./项目的全路径/report
使用generated生产allure-report报告文件夹,报告是html格式,可使用邮件浏览器直接访问
alluer generated report
# 重命名报告文件夹
allure geerated report -o allure_report
也可以使用open查看报告
allure open allure-report
本文来自博客园,作者:术科术,转载请注明原文链接:https://www.cnblogs.com/shukeshu/p/17299258.html