【Pytest实战】Pytest+Allure+Jenkins自动化测试框架搭建

news2024/9/21 12:37:44

😄作者简介:
小曾同学.com,一个致力于测试开发的博主⛽️,主要职责:测试开发、CI/CD
如果文章知识点有错误的地方,还请大家指正,让我们一起学习,一起进步。😊
座右铭:不想当开发的测试,不是一个好测试✌️。
如果感觉博主的文章还不错的话,还请点赞、收藏哦!👍

之前分享过 Pytest 基础知识,可参考Pytest 实战专栏,今天手把手教大家如何借助Pytest与Jenkins做持续集成,具体步骤如下:

  1. 安装Allure插件
    在Jenkins中安装 Allure 插件,如果你没有Jenkins的话,可自行安装,具体的安装步骤也可以参考小编的Jenkins实战专栏。
    在这里插入图片描述
    如果你在安装插件过程中出现安装失败的问题,可以通过换下载镜像来解决。如果你遇到Jenkins忘记密码,或者Jenkins打开失败问题,可以参考Jenkins疑难杂症问题。

  2. Allure 配置
    在Manage Jenkins—> Global Tool Configuration—> Allure Commandline中选择对应的 allure 对应的版本,选择自动安装,我安装的是allure v2.13.2版本,Allure的名字可以根据版本号进行命令,这样便于区分。
    在这里插入图片描述

  3. 创建Jenkins job
    Post-build Actions 模块,选择Allure Report配置
    在这里插入图片描述
    其中,主要配置测试报告所在路径,可以参考下面图中的写法。
    在这里插入图片描述

  4. build Steps
    当从github拉取代码之后,该如何运行?我们通过脚本运行,在build Step中,选择shell 脚本,输入以下内容。

    rm -rf allure-results || true
    /usr/local/bin/pytest -sv testcase01 --alluredir=./allure-results
    

    rm -rf allure-results || true先判断allure-result文件是否存在,如果存在则删除,如果不存在,则继续执行脚本。

  5. 运行 job
    当运行job之后,会看到主页中有Allure Report,点击 Allure Report之后,会跳转到Allure主页,即可看到测试报告详情。
    在这里插入图片描述
    在这里插入图片描述

  6. Jenkins自动发送测试报告。
    Editable Email Notification中 编写所要发送的信息,如何填写和参考下图,如果你在Jenkins中找不到这个插件的话,则需要先安装Email相关的插件,之后再配置中进行配置,即可使用。
    在这里插入图片描述
    在这里插入图片描述
    具体通知中要输入哪些信息,代码也贴了,有需要的话,可以自行拿去。

    <!DOCTYPE html>    
    <html>    
    <head>    
    <meta charset="UTF-8">    
    <title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志</title>    
    </head>    
        
    <body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4"    
        offset="0">    
        <table width="95%" cellpadding="0" cellspacing="0"  style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">    
            <tr>    
                本邮件由系统自动发出,无需回复!<br/>            
                各位同事,大家好,以下为${PROJECT_NAME }项目构建信息</br> 
                <td><font color="#CC0000">构建结果 - ${BUILD_STATUS}</font></td>   
            </tr>    
            <tr>    
                <td><br />    
                <b><font color="#0B610B">构建信息</font></b>    
                <hr size="2" width="100%" align="center" /></td>    
            </tr>    
            <tr>    
                <td>    
                    <ul>    
                        <li>项目名称 : ${PROJECT_NAME}</li>    
                        <li>构建编号 : 第${BUILD_NUMBER}次构建</li>    
                        <li>触发原因: ${CAUSE}</li>    
                        <li>构建状态: ${BUILD_STATUS}</li>    
                        <li>构建日志: <a href="${BUILD_URL}console">${BUILD_URL}console</a></li>    
                        <li>构建  Url : <a href="${BUILD_URL}">${BUILD_URL}</a></li>    
                        <li>工作目录 : <a href="${PROJECT_URL}ws">${PROJECT_URL}ws</a></li>    
                        <li>项目  Url : <a href="${PROJECT_URL}">${PROJECT_URL}</a></li>    
                         <li>测试报告: <a href="${PROJECT_URL}allure">${PROJECT_URL}allure</a></li> 
                    </ul>    
    
    <h4><font color="#0B610B">失败用例</font></h4>
    <hr size="2" width="100%" />
    $FAILED_TESTS<br/>
    
    <h4><font color="#0B610B">最近提交(#$SVN_REVISION)</font></h4>
    <hr size="2" width="100%" />
    <ul>
    ${CHANGES_SINCE_LAST_SUCCESS, reverse=true, format="%c", changesFormat="<li>%d [%a] %m</li>"}
    </ul>
    详细提交: <a href="${PROJECT_URL}changes">${PROJECT_URL}changes</a><br/>
    
                </td>    
            </tr>    
        </table>    
    </body>
    

    邮件通知如下

    在这里插入图片描述

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

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

相关文章

从零开始理解Linux中断架构(5)--EL跃迁与Linux用户/内核态

ARM64系统Reset时,PE进入最高的异常级别运行状态 1)Reset后最高异常级别可以选用任何一种运行状态 2)cold reset由输入信号配置,warm reset由RMR_ELx.AA64配置 1)内核态EL1迁移到EL0t 上一节我们提到需要仔细理解的图吗?eret这条特殊的异常返回指令。 我们期望…

《机器学习公式推导与代码实现》chapter14-CatBoost

《机器学习公式推导与代码实现》学习笔记&#xff0c;记录一下自己的学习过程&#xff0c;详细的内容请大家购买作者的书籍查阅。 CatBoost CatBoost是俄罗斯搜索引擎巨头Yandex于2017年开源的一款GBDT计算框架&#xff0c;因能够高效处理数据中的类别特征而取名为CatBoost(C…

一时兴起之matlab学习记录

是学习记录&#xff0c;会有错误的地方 安装的话看其他文章把 小操作 查看历史命令 在输入命令的地方&#xff0c;按下↑的方向键即可 变量 对大小写敏感若想以指定的类型存储就是 类型名(值),如 int16(4)&#xff0c;这个也可以强转变量名字有限制&#xff0c;键入namele…

10分钟搭建Stable Diffusion

前言 人工智能生成内容&#xff08;Artificial Intelligence Generated Content&#xff0c;简称 AIGC&#xff09;是当下最火的概念之一。AIGC 被认为是继专业生成内容&#xff08;Professional Generated Content, PGC&#xff09;和用户生成内容&#xff08;User Generated…

【MySQL】数据库基础 ③

上一章&#xff1a; 【MySQL】数据库基础 ② ✍临时表 说明&#xff1a; MySQL 临时表在我们需要保存一些临时数据时是非常有用的。临时表只在当前连接可见&#xff0c;…

局域网实验报告

计算机网络综合实训 实训报告一 所在院系 计算机与信息工程学院 学科专业名称 计算机科学与技术 导师及职称 柯宗武 教授 提交时间 2023.3.10 网络层实验报告 &#xff08;湖北师范大学计算机与信息工程学院 中国 黄石 435002&#xff09; 1 集线器与交换机的对比实验 1.1 背…

【Python】自动化构建项目结构样式

引言 在使用Python或者其它编程语言的项目时候&#xff0c;编写README.md 往往是不可或缺的&#xff1b; 而在README.md 中&#xff0c;关于项目结构的样式展示&#xff0c;这个是可选的。不展示也无伤大雅&#xff0c;但有展示的话&#xff0c;有以下优点&#xff1a; 提供…

第九章 总结及作业(4)【编译原理】

第九章 总结及作业&#xff08;4&#xff09;【编译原理】 前言推荐第九章 运行时存储空间组织9.1 目标程序运行时的活动9.1.1过程的活动9.1.2参数传递 9.2 运行时存储器的划分9.2.1运行时存储器的划分9.2.2 活动记录9.2.3 存储分配策咯 9.3 静态存储分配9.3.1数据区*9.3.2公用…

基于深度学习的人脸检测技术

用到环境 1、pycharm community edition 2022.3.2 2、Python 3.10 整篇内容都已上传至我的csdn资源中&#xff0c;想用的请移步。 流程 多任务级联卷积神经网络(Multi-task Cascaded Convolutional Networks, MTCNN)算法进行人脸检测 普通人脸检测 单人人脸检测 图1 单人人…

我最喜欢的编程语言是python,以及我的见解!!

这里写目录标题 我最喜欢的编程语言&#xff1a;1、我个人认为编程语言优劣的评选标准2、我对不同编程语言的优点与缺点的拙见**1. Java****2. Python****3. JavaScript****4. C语言&#xff1a;****5. C语言&#xff1a;** 3、对python编程语言未来发展的猜测和未来趋势 我最喜…

Vicuna-13B使用云服务器部署

Vicuna概述 Vicuna由一群主要来自加州大学伯克利分校的研究人员推出&#xff0c;仍然是熟悉的配方、熟悉的味道。Vicuna同样是基于Meta开源的LLaMA大模型微调而来&#xff0c;它的训练数据是来自ShareGPT上的7万多条数据&#xff08;ShareGPT一个分享ChatGPT对话的谷歌插件&am…

kerberos配置dolphinscheduler

kerberos配置dolphinscheduler 一、添加dolphin 用戶1.所有節點上執行如下命令&#xff1a; 二、DolphinScheduler集群模式部署1.集群规划2.前置准备工作3.解压DolphinScheduler安装包4. 创建元数据库及用户5. 配置一键部署脚本6 初始化数据库7.修改common配置文件8. 一键部署D…

华为、思科和瞻博网络三个厂商如何配置基本ACL和高级ACL?

今天给大家带来基本ACL和高级ACL的配置&#xff0c;主要会介绍三个厂商的配置&#xff1a; 其他厂商也可以参考&#xff0c;比如华三的可以参考华为的&#xff0c;锐捷的参考思科的。 1. 基本ACL配置 基本ACL&#xff08;Access Control List&#xff09;是一种简单的网络安全…

【Java高级语法】(十二)可变参数:Java中的“可变之美“,做好这些细节,你的程序强大又灵活~

Java高级语法详解之可变参数 &#x1f539; 前言1️⃣ 概念2️⃣ 优势和缺点3️⃣ 特征和应用场景3.1 特征3.2 应用场景 4️⃣ 使用和原理5️⃣ 使用技巧5.1 可变参数结合泛型5.2 使用元组或列表进行参数传递5.3 使用默认值5.4 缓存计算结果 6️⃣ 实战&#xff1a;构建动态日志…

【Vue3+Ts project】认识 Websocket 以及 socket.io 库

目录 Websocket socket.io Socket.iO 事件名总结&#xff1a; Socket.IO 方法总结 Websocket 作用&#xff1a; WebSocket 仍然提供实时的双向通信功能&#xff0c;使用Vue3 应用程序能够与服务器进行实时数据交换降低延迟和网络开销&#xff1a;相比传统的HTTP请求-响…

scratch lenet(7): C语言计算可学习参数数量和连接数量

scratch lenet(7): C语言计算可学习参数数量和连接数量 1. 目的 按照 LeNet-5 对应的原版论文 LeCun-98.pdf 的网络结构&#xff0c;算出符合原文数据的“网络每层可学习参数数量、连接数量”。 网络上很多人的 LeNet-5 实现仅仅是 “copy” 现有的别人的项目&#xff0c; 缺…

求2的N次幂(C++)解决高精度运算

​&#x1f47b;内容专栏&#xff1a;《C/C专栏》 &#x1f428;本文概括&#xff1a; 计算高精度的2的N次方数字。 &#x1f43c;本文作者&#xff1a;花 碟 &#x1f438;发布时间&#xff1a;2023.6.22 文章目录 ​前言求2的N次方&#xff0c;N ≤ 10000实现思路&#xff1a…

SpringBoot 如何使用 @PathVariable 进行数据校验

SpringBoot 如何使用 PathVariable 进行数据校验 在 SpringBoot 项目中&#xff0c;我们经常需要从 URL 中获取参数并进行相关的数据校验。而 PathVariable 注解就是一种非常方便的方式&#xff0c;可以让我们在方法参数中直接获取 URL 中的参数&#xff0c;并进行数据校验。本…

基于python开发实现数学中各种经典曲线的可视化

今天正好有点时间就想着把之前零星时间里面做的一点小东西整合一下梳理出来&#xff0c;本文的核心目的就是想要基于python来开发实现各种有趣的数学曲线的可视化展示。 笛卡尔心形线 笛卡尔心形线是一种二维平面曲线&#xff0c;由法国数学家笛卡尔在17世纪提出。它得名于其…

基于springboot+Redis的前后端分离项目(三)-【黑马点评】

&#x1f381;&#x1f381;资源文件分享 链接&#xff1a;https://pan.baidu.com/s/1189u6u4icQYHg_9_7ovWmA?pwdeh11 提取码&#xff1a;eh11 优惠券秒杀 优惠券秒杀1 -全局唯一ID2 -Redis实现全局唯一Id3 添加优惠卷4 实现秒杀下单5 库存超卖问题分析6 优惠券秒杀-一人一单…