好用的自动化框架-Allure

概述

报告主要包含总览、类别、测试套件、图表、时间刻度、功能、包等7大部分,支持自定义诸多信息,包括附件添加、缺陷链接、案例链接、测试步骤、Epic、Feature、Story、Title、案例级别等,相当强大。

allure与pytest的结合使用可以呈现完美的测试报告

总览

在这里插入图片描述

Allure常用装饰器

装饰器名称功能描述
@allure.epic(“测试模块_demo1”)“史诗”功能块,往下再分feature、story
@allure.feature(“测试模块_demo2”)“功能”标注功能模块,往下分story
@allure.story(“测试模块_demo3”)“故事”标注features下的分支功能模块,具有相同feature或story的用例将规整到相同模块下,执行时可用于筛选
@allure.issue(“BUG号:123”)“问题”问题标识,关联标识已有的问题,可为一个url链接地址
@allure.testcase(“用例名:测试字符串相等”)“用例”用例标识,关联标识用例,可为一个url链接地址
@allure.severity(“critical”)“严重级别”优先级,包含blocker, critical, normal, minor, trivial 几个不同的等级
@allure.step(“测试步骤”)“测试步骤”测试步骤

Epic、Feature、Story、Tag定制详解

四个修饰符:epic、feature、story、tag,包含关系是 从左到右,越来越小。
1、相同的epic、feature、story汇聚在一起
2、tag:标签
1)可继承,方法继承类
2)可重写,方法自身标签优先,没有再用类标签
3)标签可以同时打多个,逗号分割
3、只执行部分 feature/stories 的话,用下面命令
py.test --alluredir report --allure-features=feature1,feature2 --allure-stories=story1,story2

添加Epic、Feature、Story、Tag,Report展示如下图:

在这里插入图片描述
代码块


#! /usr/bin/env python
# -*-coding:utf-8-*-
 
import allure
import pytest
 
@allure.epic('allure.X--@allure.epic')
@allure.feature("Func01测试用例集合--@allure.feature")
@allure.tag('核心关注')
class TestFunc01Case(object):
    @allure.story('case01--@allure.story')
    @allure.severity('blocker')
    @allure.tag('重要的', 'bug回归')
    def test_func01_case_01(self):
        # 以下内容为测试用例描述
        u"""
        @allure.severity():包含blocker, critical, normal, minor, trivial 几个不同的等级
        Allure中对严重级别的定义:
        1、 Blocker级别:中断缺陷(客户端程序无响应,无法执行下一步操作)
        2、 Critical级别:临界缺陷( 功能点缺失)
        3、 Normal级别:普通缺陷(数值计算错误)
        4、 Minor级别:次要缺陷(界面错误与UI需求不符)
        5、 Trivial级别:轻微缺陷(必输项无提示,或者提示不规范)
 
        """
        assert 1 == 1

Severity定制详解

@allure.severity():包含blocker, critical, normal, minor, trivial 几个不同的等级
1、Allure中对严重级别的定义:
1) Blocker级别:中断缺陷(客户端程序无响应,无法执行下一步操作)
2) Critical级别:临界缺陷( 功能点缺失)
3) Normal级别:普通缺陷(数值计算错误)
4) Minor级别:次要缺陷(界面错误与UI需求不符)
5) Trivial级别:轻微缺陷(必输项无提示,或者提示不规范)

2、如果希望只跑critical和blocker这两个等级的case
在原先命令上加上–allure-severities=critical,blocker参数
py.test --alluredir report --allure-severities=critical,blocker -s –q

添加Severity,Report展示如下图:

在这里插入图片描述
代码实现

#! /usr/bin/env python
# -*-coding:utf-8-*-
 
import allure
import pytest
 
@allure.epic('allure.X--@allure.epic')
@allure.feature("Func01测试用例集合--@allure.feature")
@allure.tag('核心关注')
class TestFunc01Case(object):
    @allure.story('case01--@allure.story')
    @allure.severity('blocker')
    @allure.tag('重要的', 'bug回归')
    def test_func01_case_01(self):
        assert 1 == 1
 
    @allure.story('case02--step、attach用法--@allure.story')
    @allure.severity('critical')
    def test_func01_case_02(self):
       pass
 
    @allure.story('case03--@allure.story')
    @allure.severity('normal')
    def test_func01_case_03(self):
        pass
 
    @allure.story('case04--issue、testcase@allure.story')
    @allure.severity('minor')
    def test_func01_case_04(self):
        pass
 
    @allure.story('case05--@allure.story')
    @allure.severity('trivial')
    def test_func01_case_05(self):
        pass

Attach、Step定制详解

1、attach:附加
@allure.attach在报告中增加额外的信息:allure.attach(’arg1’,’arg2’,’arg3’):
arg1:是在报告中显示的名称
arg2:表示添加的内容
arg3:表示添加的类型(支持类型:HTML,JPG,PNG,JSON,OTHER,TEXTXML)
往报告中添加额外的信息
allure.attach(‘this is an attach’,’aaaaa’)

2、step:步骤
@allure.step在报告中增加步骤显示

有两种使用方法:
1、@allure.step() 只能以装饰器的形式放在类或者方法上面
2、with allure.step():可以放在测试用例方法里面,但测试步骤的代码需要被该语句包含,用于格式化输出

添加Attach、Step,Report展示如下图:

在这里插入图片描述
代码实现

#! /usr/bin/env python
# -*-coding:utf-8-*-
 
import allure
import pytest
 
@allure.epic('allure.X--@allure.epic')
@allure.feature("Func01测试用例集合--@allure.feature")
@allure.tag('核心关注')
class TestFunc01Case(object):
    @allure.story('case01--@allure.story')
    @allure.severity('blocker')
    @allure.tag('重要的', 'bug回归')
    def test_func01_case_01(self):
       pass
 
    @allure.story('case02--step、attach用法--@allure.story')
    @allure.severity('critical')
    def test_func01_case_02(self):
        assert 2 == 2
        allure.attach('this is attach', 'attach用法')
        # 在报告中添加图片
        with allure.step('预期结果'):
            allure.attach.file('test.png', 'test11111', allure.attachment_type.PNG)
        with allure.step('实际结果'):
            print ('匹配')

Issue和TestCase定制详解

issue和testCase用法一样,但展示结果issue前面会有一个图标

添加Issue、TestCase,Report展示如下图:

在这里插入图片描述
代码实现

#! /usr/bin/env python
# -*-coding:utf-8-*-
 
import allure
import pytest
 
@allure.epic('allure.X--@allure.epic')
@allure.feature("Func01测试用例集合--@allure.feature")
@allure.tag('核心关注')
class TestFunc01Case(object):
    @allure.story('case01--@allure.story')
    @allure.severity('blocker')
    @allure.tag('重要的', 'bug回归')
    def test_func01_case_01(self):
        pass
 
    @allure.story('case04--issue、testcase@allure.story')
    @allure.severity('minor')
    @allure.issue("https://jira.ahi-fintech.com/browse/QA-1", 'Bug链接')
    @allure.testcase("http://www.testlink.com", 'testcase链接')
    def test_func01_case_04(self):
        u"""
        issue(url, name=None)
        testcase(url, name=None)
        return link(url, link_type=LinkType.ISSUE, name=name)
        return link(url, link_type=LinkType.TEST_CASE, name=name)
        """
        pass

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/24203.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ProtoBuf 语法(一)

系列文章 ProtoBuf 语法(二) ProtoBuf 语法(三) 文章目录 前言一、字段规则二、消息类型的定义与使用2.1 定义2.2 使用 三、enum 类型3.1 定义规则3.2 注意事项 四、any 类型4.1 类型说明4.2 类型使用 五、oneof 类型六、map 类型…

【Vue】二:Vue核心处理---计算属性 监视属性

文章目录 1.计算属性示例2. 监听属性3.补充 1.计算属性示例 实际上计算属性与methods中定义方法基本上没有什么区别,只是计算属性基于响应式依赖缓存,只要数据没有发生改变,计算属性从缓存中取值,只有当数据发送改变,才…

安卓中集成高德地图

安卓中集成高德地图 1.高德地图的优缺点 高德开放平台 | 高德地图API 高德地图优点: 1、领先的地图渲染技术:性能提升10倍,所占空间降低80%,比传统地图软件节省流量超过90% 2、专业在线导航功能&#x…

idea模板配置

idea版本:2023.1 未设置模板的idea,新建类会自动生成类注释 格式如下: /*** author user* date 2023/5/20 0020 14:25*/ public class User {} 其中,user为当前用户名 这里,如果希望将类注释改写成如下&#xff0…

档案馆空气质量在线3D监控系统温湿度方案

档案馆库房八防温湿度空气质量一体化解决方案 档案库房是档案事业发展的基石,其主要任务是集中保管国家机构及个人等在各种形式下形成的具有一定价值和保存价值的各种载体档案,主要包括文书档案、科技档案、会计档案、人事档案、实物档案等。随着我国经济…

X2000 freeRTOS usb_bulk通信

例程 官方例程..\freertos\example\usb\device\gadget_generic_bulk.c&#xff0c;代码如下&#xff1a; #include <common.h> #include <usb/gadget_bulk.h> #include <os.h>static const struct gadget_id bulk_id {.vendor_id 0x1CBE,.product_id 0x…

【数据生成】——Semantic Image Synthesis via Diffusion Models语义分割数据集生成论文浅读

语义分割&#xff0c;数据生成 摘要 Denoising Diffusion Probabilistic Models (DDPMs) 在各种图像生成任务中取得了显著的成功&#xff0c;相比之下&#xff0c;生成对抗网络 (GANs) 的表现不尽如人意。最近的语义图像合成工作主要遵循事实上的基于 GAN 的方法&#xff0c;…

直流电机 PID 控制系统仿真研究(Simulink实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

python+vue高校网上跳蚤二手市场的设计与实现

商品信息是卖家供应用户必不可少的一个部分。在跳蚤市场发展的整个过程中&#xff0c;商品担负着最重要的角色。为满足如今日益复杂的管理需求&#xff0c;各类管理系统程序也在不断改进。本课题所设计的普通高校网上跳蚤市场&#xff0c;使用Django框架&#xff0c;Python语言…

【信号变化检测】使用新颖的短时间条件局部峰值速率特征进行信号变化/事件/异常检测(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

网络安全复习

目录 低层协议安全性 IP协议 ARP协议 TCP协议 NAT协议 单钥加密体制 DES算法 课后习题 双钥加密体制 &#x1f407;怎么说 欧几里得算法求逆 RSA算法 椭圆曲线加密 Diffie- Hellman 密钥交换算法 ElGamal签名机制 Schnorr签名机制 DSS签名算法——DSA 低层协…

HTML+CSS实训——Day02——仿一个网易云音乐的登陆界面

仓库链接:https://github.com/MengFanjun020906/HTML_SX 前言 今天要继续完成我们的音乐软件了&#xff0c;昨天写完了封面&#xff0c;今天该完成开屏广告和登陆界面了。 登陆界面代码 <!DOCTYPE html> <html lang"en"> <head><meta charse…

【P35】JMeter 包含控制器(Include Controller)

文章目录 一、包含控制器&#xff08;Include Controller&#xff09;参数说明二、准备工作三、测试计划设计3.1、保存测试片段3.2、使用测试片段 一、包含控制器&#xff08;Include Controller&#xff09;参数说明 可以将测试计划的某一部分提取为公用逻辑&#xff0c;这样…

【十字绣】传统手艺-微信小程序开发流程详解

还记得小时候看过母亲的十字绣吗&#xff0c;易学易懂&#xff0c;就是用专用的绣线和十字格布&#xff0c;通过平面坐标计找出位置&#xff0c;对照专用的图案进行刺绣&#xff0c;可作出心中所想的画&#xff0c;奈何所需材料成本不小&#xff0c;这里用小程序简单模拟十字绣…

使用object.defineProperty来更新数据示例

Object.defineProperty() 方法会直接在一个对象上定义一个新属性&#xff0c;或者修改一个对象的现有属性&#xff0c;并返回此对象。 Object.defineProperty&#xff08;&#xff09;可以为对象的属性添加特性&#xff0c;每一个被添加过的属性&#xff0c;都会拥有属于自己的…

【C++初阶】C++——模板初阶与泛型编程

​ ​&#x1f4dd;个人主页&#xff1a;Sherry的成长之路 &#x1f3e0;学习社区&#xff1a;Sherry的成长之路&#xff08;个人社区&#xff09; &#x1f4d6;专栏链接&#xff1a;C初阶 &#x1f3af;长路漫漫浩浩&#xff0c;万事皆有期待 文章目录 1. 泛型编程2. 函数模板…

C Primer Plus第四章编程练习答案

学完C语言之后&#xff0c;我就去阅读《C Primer Plus》这本经典的C语言书籍&#xff0c;对每一章的编程练习题都做了相关的解答&#xff0c;仅仅代表着我个人的解答思路&#xff0c;如有错误&#xff0c;请各位大佬帮忙点出&#xff01; 1.编写一个程序&#xff0c;提示用户输…

自学网络安全最细规划(建议收藏)

01 什么是网络安全 网络安全可以基于攻击和防御视角来分类&#xff0c;我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术&#xff0c;而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 无论网络、Web、移动、桌面、云等哪个领域&#xff0c;都有攻与防两面…

自古以来,反射也是兵家必争之地

成文耗时1小时&#xff0c;阅读5min&#xff0c;有用指数5颗星。 这几天收到一个战术性需求&#xff0c;将一大坨字段序列化为特定格式的字符串。 大概是下表&#xff1a; 序号字段名描述是否必填0logVersion日志版本是1productName产品是2serviceName服务是.........25extend3…

8项seo的日常工作

SEO的日常工作涵盖了一系列任务和活动&#xff0c;旨在优化网站以提高在搜索引擎中的排名和可见性。 以下是SEO的日常工作内容&#xff1a; 关键词研究和优化&#xff1a;定期进行关键词研究&#xff0c;寻找与目标受众和业务相关的热门关键词。优化网站内容、标题、元描述和链…