超详细,自动化测试allure测试报告实战(总结)

news2024/12/23 12:17:33

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

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

需要准备的环境:
python;
pytest;
allure-pytest;
allure工具;

1、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()附件报告添加附件

2、allure实战demo

# -*- coding:utf-8 -*-
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()

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"

4、执行脚本-allure生成报表并启动报告

运行方式一:
命令行模式下运行pytest,生产测试结果文件

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

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

allure serve ./report/allure

运行方式二:
编写启动方法,运行pytest

pytest.main([allure_demo.py, "--alluredir", "report/result"])

使用进程,开启allure服务

import subprocess

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工具)

5、报告效果图及注解

E1

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

在阳光照耀的舞台上,奋斗是绽放的华彩;在风雨交加的征途上,拼搏成就无悔的辉煌。坚持不止,勇往直前,用汗水浇灌理想之花,让努力与执着铸就璀璨人生的传世之作!

胜利属于那些不畏艰辛、敢于拼搏的人,只有勇往直前,才能突破自我、追逐梦想。坚持不放弃,奋斗不止步,唯有如此,方能书写属于自己的辉煌篇章,成就无限可能!

奋斗是生命的激情,拼搏是实现梦想的舞台。无论前路如何崎岖,执着的追求和不屈的毅力将开辟出通往成功之路。信念燃烧心中,奋力挥洒汗水,成就自己的辉煌,创造不凡的人生!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Kubernetes运维篇】ingress-nginx实现业务灰度发布详解

文章目录 一、理论:实现灰度发布的几种场景1、场景一:将新版本灰度给部分用户2、场景二:按照比例流程给新版本3、实现灰度发布字段解释 二、实践:1、实验前提环境2、基于Request Header(请求头)进行流量分割3、基于Cookie进行流量…

FAPI15 探针,作为代谢剂进行PETCT检测,反应机理说明

资料编辑|陕西新研博美生物科技有限公司小编MISSwu​ PART1----FAPI-15试剂 英文名称:FAPI-15 CAS号:N/A 分子式:N/A 分子量:N/A 规格标准:1g,5g,10g,可提供mg级以及kg级的产品开发…

docker容器引擎(四)

docker 一、docker compose的理论二、docker-compose工具实验创建apache容器创建LNMP 一、docker compose的理论 docker compose简而言之就是实现单机容器集群编排管理(使用一个模板文件定义多个应用容器的启动参数和依赖关系,并使用docker compose来根…

专项练习-04编程语言-03JAVA-03

1. java 中哪个关键字可以对对象加互斥锁?A transient B synchronized C serialize D static 正确答案:B 官方解析:暂无官方题目解析,去讨论区看看吧! 知识点:Java、Java工程师、20172. 关于异常处理机制的…

93.qt qml-自定义Table优化(新增:水平拖拽/缩放自适应/选择使能/自定义委托)

之前我们更新了90.qt qml-Table表格组件(支持表头表尾固定/自定义颜色/自定义操作按钮/排序)_qml 表格_诺谦的博客-CSDN博客 但是一直没出源码,是因为该demo还存在问题,那就是表头表尾固定下,如果是半透明状态下,会看到表头表尾固定后的内容,所以只能重构代码,不能使用重…

关于阅读《重构的时机和方法》这本书所带来的启发

前言 近期,我阅读了由克里斯蒂安克劳森(Christian Clausen)写的、由郭涛翻译的《重构的时机和方法》这本书,读完这本书的内容你会发现《重构的时机和方法》是一本经典的软件开发书籍,它能够帮助软件开发人员提高代码质…

Java_22_多线程02

多线程 线程通信 线程通信:多个线程因为在同一个进程中,所以互相通信比较容易的。 线程通信的经典模型:生产者与消费者问题。 生产者负责生成商品,消费者负责消费商品。 生产不能过剩,消费不能没有。(即时…

创建一个vite项目,一个命令创建

1. 在一个文件夹下打开cmd命令窗口并输入命令: npm init vuelatest //注意,此命令安装的是vue最新的依赖包,步骤也许跟以下有点点区别,不过问题不大 2. 接着询问你是否需要安装以下这些包,这些都是需要的&#xff0c…

华为OD机试真题 Java 实现【最多获得的短信条数】【2023Q1 100分】,附详细解题思路

目录 专栏导读一、题目描述二、输入描述三、输出描述四、解题思路五、Java算法源码六、效果展示 华为OD机试 2023B卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试(JAVA)真题(A卷B卷)》。 刷的越多&…

Pytorch深度学习------torchvision中dataset数据集的使用(CIFAR10)

文章目录 一、什么是TorchVision二、以torchvision.datasets子模块下的CIFAR10数据集为例1、CIFAR10数据集参数2、代码中使用 一、什么是TorchVision torchvision是pytorch的一个图形库,用来处理图像,主要用来构建计算机视觉模型。 从下面的官网截图可以…

力扣1114.按序打印-----题目解析

题目描述 解析: class Foo {public int a 0;public Foo() {}public void first(Runnable printFirst) throws InterruptedException {// printFirst.run() outputs "first". Do not change or remove this line.printFirst.run();a;}public void second…

【多任务编程-线程通信】

进程/线程通信的方式 某些应用程序中,进程/进程和线程/线程之间不可避免的进行通信,进行消息传递,数据共享等 同一进程的线程之间通信方式包括Windows中常用Event, Message等。 不同进程之间的通信可以利用Event, FileMapping(内存共享), W…

unity进阶--xml的使用学习笔记

文章目录 xml实例解析方法一解析方法二 xml-path创建xml文档 xml实例 解析方法一 解析方法二 xml-path 创建xml文档

测试用例实战

测试用例实战 三角形判断 三角形测试用例设计 测试用例编写 先做正向数据,再做反向数据。 只要有一条边长为0,那就是不符合要求,不需要再进行判断,重复。 四边形 四边形测试用例

Javascript程序异常处理

什么是异常,异常就是我们在编写Javascript程序时出现的一些错误,并会在控制台中抛出这个错误,出现异常其实并不是一件坏事,相对的呢它可以提醒我们开发人员哪里出现了错误,方便我们后续的修改,能让我们的代…

JRebel+XRebel热部署插件激活支持IDEA2023.1

JRebel是一款JVM插件,它使得Java代码修改后不用重启系统,立即生效。IDEA上原生是不支持热部署的,一般更新了 Java 文件后要手动重启 Tomcat 服务器,修改才能生效;所以推荐使用 JRebel 插件进行热部署。 在填入Team UR…

字符串类QString

字符串类QString 构造函数数据操作字符串查找和判断遍历查看字节数类型转换字符串格式 Qt中不仅支持C, C中的字符串类型, 而且还在框架中定义了专属的字符串类型。 Cchar*Cstd::string, char*QtQByteArray, QString QByteArray QString和QByteArray的函数很多都是相似的。。…

Feign远程调用如何携带form url

这是一个需要携带参数在form url上的请求,正常调用方式是这样的 响应: 在Feign中,应该怎么调用呢?? 定义OpenFeignClient接口 FeignClient(value "client-service", url "http://127.0.0.1/api") public interface…

Acwing.897 最长公共子序列(动态规划)

题目 给定两个长度分别为N和M的字符串A和B,求既是A的子序列又是B的子序列的字符串长度最长是多少。 输入格式 第一行包含两个整数N和M。 第二行包含一个长度为N的字符串,表示字符串A。 第三行包含一个长度为M的字符串,表示字符串B。字符串…

RunnerGo相比较JMeter有哪些优势

当谈到性能测试需求时,JMeter和RunnerGo都提供了丰富的功能,包括测试场景设置、执行性能测试和性能测试结果分析。然而,这两工具在结构方面存在一些区别。以下是对它们进行比较的另一种角度: 模块化设计: JMeter采用…