好用的自动化框架-Allure

news/2024/10/21 5:43:51/

概述

报告主要包含总览、类别、测试套件、图表、时间刻度、功能、包等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 == 2allure.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

http://www.ppmy.cn/news/106499.html

相关文章

golang 协程的实现原理

核心概念 要理解协程的实现, 首先需要了解go中的三个非常重要的概念, 它们分别是G, M和P, 没有看过golang源代码的可能会对它们感到陌生, 这三项是协程最主要的组成部分, 它们在golang的源代码中无处不在. G (goroutine) G是goroutine的头文字, goroutine可以解释为受管理的…

优化版本 穿越火线(CF) FPS AI 自瞄 代码 权重 数据集(下面有链接)

更新初衷 本人在制作过程中,有一些爱钻研的朋友来问以及提出增加一些新的功能点回会更好,本着学习研究态度,在第一个版本上进行优化,增加一些内容 不喜欢看过程的小伙伴直接看最下面 界面 解决问题: 1、进入慢 2、无…

知识变现海哥:知识付费小程序的10大坑

知识付费小程序十个坑你不要掉进去, D一,小程序付费内容要全 电子书、PPT、音频、视频都要包含,现在很多付费内容只包含视频,这种小程序不能购买的。 D二,付费内容有试学功能 只有通过试用、试学给用户建立信任&…

密码学知识

密码学是网络安全、信息安全、区块链等产品的基础,常见的非对称加密、对称加密、散列函数等,都属于密码学范畴。 明文:加密前的消息叫明文(plain text) 密文:加密后的文本叫密文(cipher text) 密钥:只有掌…

ubuntu安装yarn

参考https://phoenixnap.com/kb/how-to-install-yarn-ubuntu Follow the steps below to install Yarn using Corepack: Ensure your Node.js version is up-to-date. node -v Corepack requires Node.js 16.10 or later. If the output shows an older version, update Node.…

MGRE 综合实验

配置IP的地址 [R1-GigabitEthernet0/0/0]int g0/0/0 [R1-GigabitEthernet0/0/0]ip add 192.168.1.1 24 [R1-GigabitEthernet0/0/0]int s4/0/0 [R1-Serial4/0/0]ip add 15.0.0.1 24 [R2]int s 4/0/0 [R2-Serial4/0/0]ip add 25.0.0.1 24 [R2-Serial4/0/0]int g 0/0/0 [R2-Giga…

华为OD机试真题B卷 Java 实现【字符统计】,附详细解题思路

一、题目描述 输入一个只包含小写英文字母和数字的字符串,按照不同字符统计个数由多到少输出统计结果,如果统计的个数相同,则按照ASCII码由小到大排序输出。 数据范围:字符串长度满足 1≤len(str)≤1000 。 二、输入描述 一个…

在虚拟机上部署hadoop集群(全流程)

一、单节点部署前置准备 这里一直下一步就好了 接下来需要为该节点固定ip并配置相关网关还有dns解析 这里配置了一个本机dns解析,也配置了一个公网dns解析(主要目的还是为了固定ip