前言

allure可以输出非常精美的测试报告,也可以和pytest进行完美结合,不仅可以渲染页面,还可以控制用例的执行。下面就对allure的使用进行一个详细的介绍和总结。

需要准备的环境:

  • python
  • pytest
  • allure-pytest
  • allure工具

一、allure用例描述

使用方法 参数值 参数说明
@allure.epic() epic描述 敏捷里面的概念,对用例或用例集进行描述分类
@allure.feature() 模块名称 与epic类似,只是比epic级别低
@allure.story() 用户故事 与epic类似,只是比feature级别低
@allure.title(用例的标题) 用例的标题 重命名html报告的用例名称
@allure.testcase() 测试用例的链接地址 与link类似
@allure.issue() 缺陷 与link类似
@allure.description() 用例描述 进行测试用例的描述
@allure.step() 操作步骤 进行测试用例的步骤
@allure.severity() 用例等级 blocker,critical,normal,minor,trivial
@allure.link() 链接 定义一个链接,在测试报告展现(推荐使用)
@allure.attachment() 附件 报告添加附件

二、allure实战demo

# -*- coding:utf-8 -*-
"""
@File: allure_demo.py
@Author: 三叔测试笔记
@Time : 2022/3/18 8:34
@Description: allure使用介绍
"""
import pytest
import allure
from base.log import Logger
logger = Logger(logger_name='allure', level='error').get_logger() @pytest.fixture(scope="session") # 用例前置操作
def login_fixture():
# 比如登录获取token操作
return "token:xx" @allure.step("用例步骤1")
def step_1():
logger.info("用例操作---------------步骤1")
return True @allure.step("用例步骤2")
def step_2():
logger.info("用例操作---------------步骤2")
return False @allure.step("用例步骤3")
def step_3():
logger.info("用例操作---------------步骤3")
return True @allure.epic("可以对用例或用例集进行描述分类(若出现多个时,内容一致则自动归为一类)")
@allure.feature("对用例集或用例进行描述分类---与epic类似,只是比epic级别低")
@allure.story("对用例集或用例进行描述分类---与epic类似,只是比feature级别低")
class TestAllureDemo: @allure.testcase("https://xxx/testcase/list",
name='用例链接testcase') # 为了更好的链接到问题分类或者bug、测试用例地址中(url、name两个参数,可不填写name;可以用@allure.link)
@allure.link("https://xxx/testcase/list", name='用例链接link') # 与testcase没有多大区别,从可读性角度还是建议选择@allure.link
@allure.issue("https://xxx/testcase/list", name='用例链接issue') # 与testcase区别在于有小虫子图标
@allure.title("用例的标题") # 可参数化标题
@allure.story("用例分类:1") # 可参数化标题
@allure.severity("critical") # 用例等级(blocker critical normal minor trivial)
def test_case_1(self, login_fixture):
"""
1.用例描述
2.用例步骤
3.预期结果
"""
logger.info(login_fixture) # 获取用例前置的信息,比如登录token
assert step_1()
assert step_2() @allure.story("用例分类:2")
def test_case_2(self, login_fixture):
logger.info("测试用例2")
assert step_1()
assert step_3() @allure.epic("冒烟自动化用例")
class TestDemo2: @allure.story("用例分类:3")
def test_case_3(self, login_fixture):
logger.info("测试用例3")
step_1() @allure.story("用例分类:4")
def test_case_4(self, login_fixture):
logger.info("测试用例4")
step_3()

三、allure的命令行参数

pytest执行用例时可以加上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.
--allure-epics=EPICS_SET
Comma-separated list of epic names. Run tests that
have at least one of the specified feature labels.
--allure-features=FEATURES_SET
Comma-separated list of feature names. Run tests that
have at least one of the specified feature labels.
--allure-stories=STORIES_SET
Comma-separated list of story names. Run tests that
have at least one of the specified story labels.
--allure-link-pattern=LINK_TYPE:LINK_PATTERN
Url pattern for link type. Allows short links in test,
like 'issue-1'. Text will be formatted to full url
with python str.format().
# 选择运行你要执行epic的用例
pytest --alluredir ./report/allure --allure-epics=epic对大Story的一个描述性标签 # 选择运行你要执行features的用例
pytest --alluredir ./report/allure --allure-features=模块2 # 选择运行你要执行features的用例
pytest --alluredir ./report/allure --allure-stories="用户故事:1"

四、执行脚本输入报告

运行方式一:

  1. 命令行模式下运行pytest,生产测试结果文件

    pytest demo.py --alluredir ./report/allure

  2. allure程序启动已经生产的文件

    allure serve ./report/allure

运行方式二:

  1. 编写启动方法,运行pytest
pytest.main([allure_demo.py, "--alluredir", "report/result"])
  1. 使用进程,开启allure服务
import subprocess

# 五、allure生成报表,并启动程序
subprocess.call('allure generate report/result/ -o report/html --clean', shell=True)
subprocess.call('allure open -h 127.0.0.1 -p 9999 ./report/html', shell=True)

(两种方法都需要安装allure工具)

报告效果图及注解

【自动化基础】allure描述用例详细讲解及实战的更多相关文章

  1. pytest文档32-allure描述用例详细讲解

    前言 pytest+allure是最完美的结合了,关于allure的使用,本篇做一个总结. allure报告可以很多详细的信息描述测试用例,包括epic.feature.story.title.iss ...

  2. tensorflow(深度学习框架)详细讲解及实战

    还未完全写完,本人会一直持续更新!~ 各大深度学习框架总结和比较 各个开源框架在GitHub上的数据统计,如下表: 主流深度学习框架在各个维度的评分,如下表: Caffe可能是第一个主流的工业级深度学 ...

  3. Vue项目开发,nprogress进度条加载之超详细讲解及实战案例

    Nprogress的默认进度条很细,它的设计灵感主要来源于 谷歌,YouTube 他的安装方式也很简单,你可以有两种使用方式: 直接引入js和css文件 使用npm安装的的方式 直接引入: Npm安装 ...

  4. Nginx基础详细讲解

    Nginx基础详细讲解 链接:https://pan.baidu.com/s/1xB20bnuanh0Avs4kwRpSXQ 提取码:migq 复制这段内容后打开百度网盘手机App,操作更方便哦 1. ...

  5. 第二十三节:Java语言基础-详细讲解函数与数组

    函数 函数在Java中称为方法,在其他语言中可能称为函数,函数,方法就是定义在类中具有特定功能的程序.函数,在Java中可称为方法. 函数的格式: 修饰符 返回值类型 函数名(参数类型 参数1, 参数 ...

  6. 第二十二节:Java语言基础-详细讲解位运算符与流程控制语句

    位运算符(二进制位运算) 运算符 运算 例子 << 左移 3 << 2 = 12 --> 3 * 2 * 2 =12 >> 右移 3 >> 1 = ...

  7. vue-cli 目录结构详细讲解

    https://juejin.im/post/5c3599386fb9a049db7351a8 vue-cli 目录结构详细讲解 目录 结构预览 ├─build // 保存一些webpack的初始化配 ...

  8. C++语言堆栈的详细讲解

    本文主要向大家介绍了C++语言堆栈的详细讲解,通过具体的内容向大家展示,希望对大家学习C++语言有所帮助. 一.预备知识—程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1.栈区 ...

  9. 30 道 Vue 面试题,内含详细讲解(涵盖入门到精通,自测 Vue 掌握程度)

    前言 本文以前端面试官的角度出发,对 Vue 框架中一些重要的特性.框架的原理以问题的形式进行整理汇总,意在帮助作者及读者自测下 Vue 掌握的程度.本文章节结构以从易到难进行组织,建议读者按章节顺序 ...

随机推荐

  1. checkstyle使用介绍

    1.我下载的是checkstyle-5.5-bin.zip:下载地址 http://sourceforge.net/projects/checkstyle/files/ 另一个是checkstyle的 ...

  2. Web集群调度器-Haproxy

    Web集群调度器-Haproxy 目录 Web集群调度器-Haproxy 一.Web集群调度器 1.常用的Web集群调度器 2. Haproxy应用分析 3. Haproxy的主要特性 4. 常用集群 ...

  3. 用rewrite规则实现将所有到a域名的访问rewrite到b域名

    1.临时重定向 1.1使用redirect实现临时重定向 # cat /apps/nginx/conf/nginx.conf ...省略... server { listen 80; server_n ...

  4. c++ Message与Folder 拷贝 析构(没有动态空间的类)

    c++ Message与Folder 拷贝 析构(没有动态空间的类) 1.两个类里边分别保存一个对方的set表,当前类有拷贝或者销毁时需要更新另一个类的set表. 2.两个类都需要访问对方的priva ...

  5. 突然发现,npm里request依赖包已经弃用,怎么办?

    摘要:在npm官网查看了request依赖包的当前状态,果然在2020年就被弃用了. 本文分享自华为云社区<npm里request依赖包已经弃用?致敬并调研替代方案!>,作者: gentl ...

  6. demo_2_27

    #define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>#include <string.h> int count_bit_one ...

  7. Burp suite基本配置介绍

    实验目的 利用Burp Spider功能探测目标网站的目录结构. 实验原理 1)Burp Suite是Web应用程序测试的最佳工具之一,其多种功能可以帮我们执行各种任务.请求的拦截和修改,扫描web应 ...

  8. cpu 时间片消耗表|cpu消耗表

    1秒=1000毫秒(ms)=1,000,000 微秒(μs)=1,000,000,000 纳秒(ns)=1,000,000,000,000 皮秒(ps) 1个CPU时钟周期=时钟频率 2GHz CPU ...

  9. Hive常用函数大全-数值计算

    1 1.取整函数:round(X)(遵循四舍五入) 2 select round(3.1415926) from table --3 3 select round(3.5) from table -- ...

  10. 小白都能看懂的tcp三次握手

    众所周知,TCP在建立连接时需要经过三次握手.许多初学者经常对这个过程感到混乱:SYN是干什么的,怎么一会儿是1一会儿是0?怎么既有大写的ACK又有小写的ack?为什么ACK在第二次握手才开始出现?初 ...