利用 jenkins 关联 Job 方式完善 RobotFramework 测试 Setup 以及 Teardown 后操作

目录

1.前言

2.Jekins 关联 Job 方式


1.前言

Jenkins是一个流行的持续集成和交付工具,它可以帮助自动化构建、测试和部署软件。与Robot Framework结合使用,可以实现更高效的测试工作流程。

在Robot Framework中,Setup和Teardown是测试用例中的两个重要部分。Setup用于准备测试环境和数据,而Teardown用于清理测试环境和数据。通过与Jenkins的关联,可以在测试执行前后执行一些额外的操作,以进一步完善测试流程。

一种常见的做法是使用Jenkins的"Pre-build"和"Post-build"操作来关联Robot Framework的Setup和Teardown。在"Pre-build"操作中,可以执行一些准备工作,例如启动应用程序、配置测试环境等。在"Post-build"操作中,可以执行一些清理工作,例如关闭应用程序、清理测试数据等。

2.Jekins 关联 Job 方式

这个都说到烂了,就不再多说了,就说我遇到的问题,我这里自动化测试其实有几个过程,其实是走持续集成的方法 (可能只是看起来而已),就是从收到开发代码 build 成功的 hook 开始,触发测试环境获取新的安装包部署,检查部署是否成功,执行自动化测试,输出测试报告发送邮件或其他通知方式,过程大概是这样

(1) 说明一下那个测试通知和邮件报告的,因为有一个通知方式是直接接入到我们项目的(通讯工具),所以这里就补充了一下,说到这里有人会想到,自动化测试这一块可以直接放到 RobotFramework(以下简称 RF),但更新测试环境和发送通知和邮件测试报告这些模块如果直接放到 RF 的 Setup 和 Teardown 显然会有些鸡肋,毕竟想让自动化测试的执行过程更加独立,而且更好地控制整个流程,一开始我也想不到什么好方法,后面某天突然脑袋一闪想起 Jenkins 是有关联 Job 的功能,一切解决了,后面就开始我上图的设计了

(2) Jenkins 的 Job 可以如下图这么分

a、第一执行的 Job 是更新测试版本的 Job,这个 Job 是通过收到开发代码 build 成功的通知之后自动触发的,具体怎么触发用过 jenkins 的小伙伴都应该知道,就不多说了,获取了新包之后就会更新部署测试环境,在此之前测试环境会清理一遍环境,更新完成之后检查是否更新版本成功,目前我自己设置的检查点可能还有点简单,看新包是否有成功部署到测试环境,前端方面看是否能正常打开页面登录,后端方面调登录接口是否能正常登录返回正确数据,都通过的话,更新就算成功了,更新测试版本的 Job 构建为 stable 后就会触发执行自动化用例,如果更新失败就会发送更新失败的通知到相应负责人(一般就是我了=。=),然后就去检查测试环境情况,把环境等问题都弄 ok 了,再手工触发一下,所以要执行自动化测试的前提是测试环境新版本可以用啊,都不能用还怎么测呢

b、执行完自动化测试用例后,如果出现非 Stable 的情况,就会触发失败用例重跑的 Job,至于 RF 的失败用例重跑的方法,之前也有很多人问,在这里就说一下,在本地操作是这样的

要结合 Jenkins 的话只要能拿到对应的 output.xml 就能做到了,这里就不多说了,自己摸索试试,然后就可以将失败的用例重跑,一般也就重跑一次,都完成之后就触发发送测试完成通知的 Job,一般是执行用例的 JOB 为 Stable 或重跑用例的 JOB 完成后关联自动触发,主要是邮件测试报告和消息通知,说到邮件测试报告,RF 的测试报告有个坑就是报告源码里有 JS,邮件都不会支持 JS 的话,除非你想来 XSS,所以只能用别的方法了,说到这里先展示一下我自己做的邮件测试报告

  • 测试通过(第一期)

  • 测试失败的(今天优化了一下)

这个测试报告分 4 个模板,版本信息,测试基用例统计,跳转链接和失败的测试用例展示,版本信息是直接去测试环境取的,测试用例统计是通过调 jenkins 的 api 获得的,怎么获得,来到页面点一下这个你就明白了

在点点就会看到

这样子测试用例统计就能做了,然后第三模块就是那几个跳转到 jenkins 看测试报告和测试日志,最后的失败测试用例的获取是通过 python 爬虫实现的,就是把 job/3/robot 下 fail test 那里爬下来,自己作一下优化展示就好,就这样,邮件的一个比较基本的测试报告也完成了,整个自动化测试的过程大概就是这样子,现在在我们项目中每天都会跑一次来过每个 dev 版本的核心功能,这样一来把自动化测试过程的 Setup 和 Teardown 都很好地分离开来,也方便以后地扩展和维护

  作为一位过来人也是希望大家少走一些弯路

在这里我给大家分享一些自动化测试前进之路的必须品,希望能对你带来帮助。

(软件测试相关资料,自动化测试相关资料,技术问题答疑等等)

相信能使你更好的进步!

点击下方小卡片

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

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

相关文章

Kafka 深度剖析

1、应用场景 1.1 kafka场景 Kafka最初是由LinkedIn公司采用Scala语言开发,基于ZooKeeper,现在已经捐献给了Apache基金会。目前Kafka已经定位为一个分布式流式处理平台,它以 高吞吐、可持久化、可水平扩展、支持流处理等多种特性而被广泛应用…

JavaSwing+MySQL的飞机订票系统(内含oracle版本)

点击以下链接获取源码: https://download.csdn.net/download/qq_64505944/88055544 JDK1.8 MySQL5.7 功能:接收客户端发来的数据、处理客户端发来的数据、发送数据包到客户端;客户端:查询所有航班的信息、查看自己所定的票、订票…

java学习路程之篇二、知识点、配置JAVA_HOME、跨平台、JVM、JRE、JDK

文章目录 1、Java背景介绍2、Java跨平台性3、JDK的下载和安装4、第一个Java程序5、HelloWorld案例详解6、JVM、JRE和JDK7、配置JAVA_HOME 1、Java背景介绍 2、Java跨平台性 3、JDK的下载和安装 4、第一个Java程序 5、HelloWorld案例详解 6、JVM、JRE和JDK 7、配置JAVA_HOME

Bash 第十行

195 第十行 给定一个文本文件 file.txt,请只打印这个文件中的第十行。 示例: 假设 file.txt 有如下内容: Line 1 Line 2 Line 3 Line 4 Line 5 Line 6 Line 7 Line 8 Line 9 Line 10 你的脚本应当显示第十行: Line 10 来源:…

详解使用JAVA将Julian date(儒略日)日期转换为年月日

一、什么是Julian date 朱莉安日历和普通日历显示是不一样的我就举例演示一下 正常的日历显示 朱莉安的日历显示 174表示的是从2016年1月1日开始到今天已有174天了 普通日历是按月计数,朱莉安日历是按年计数 二、用java将julian日期转换为年月日 将2023199朱莉安…

【数据结构】24王道考研笔记——图

六、图 目录 六、图定义及基本术语图的定义有向图以及无向图简单图以及多重图度顶点-顶点间关系连通图、强连通图子图连通分量强连通分量生成树生成森林边的权、带权网/图特殊形态的图 图的存储及基本操作邻接矩阵邻接表法十字链表邻接多重表分析对比图的基本操作 图的遍历广度…

pytorch实现线性回归

转大佬笔记 代码: # -*- coding: utf-8 -*- # Time : 2023-07-14 14:57 # Author : yuer # FileName: exercise05.py # Software: PyCharm import matplotlib.pyplot as plt import torch# x,y是3行1列的矩阵,所以在[]中要分为3个[] x_data torch.…

系统学习Linux-SSH远程服务(二)

概念 安全外壳协议,提供安全可靠的远程连接 特点 ssh是工作在传输层和应用层的协议 ssh提供了一组管理命令 ssh 远程登陆 scp 远程拷贝 sftp 远程上传下载 ssh-copy-id ssh keygen 生成 提供了多种身份验证机制 身份验证机制 密码验证 需要提供密码 密…

Django实现接口自动化平台(十二)自定义函数模块DebugTalks 序列化器及视图【持续更新中】

上一章: Django实现接口自动化平台(十一)项目模块Projects序列化器及视图【持续更新中】_做测试的喵酱的博客-CSDN博客 本章是项目的一个分解,查看本章内容时,要结合整体项目代码来看: python django vue…

Python SMTP发送邮件

如何使用Python发送QQ邮件?如何发送带附件的邮件?这篇文章将详细说明 目录 一、发送邮件 二、发送HTML格式的邮件 三、在HTML中添加图片 四、发送带附件的邮件 五、最终整合版 六、配置指引 一、发送邮件 import smtplib from email.mime.text im…

【UE4 塔防游戏系列】09-防御塔升级、击杀敌人增加金钱

目录 效果 步骤 一、控件蓝图文本控件内容绑定金钱数 二、防御塔改造 三、击杀敌人增加金钱 四、防御塔升级功能 效果 步骤 一、控件蓝图文本控件内容绑定金钱数 1. 打开“TaFangGameMode”,新增一个变量命名为“PlayerMoney”,默认值设为2…

【Maven三】——maven生命周期和插件

系列文章目录 Maven之POM介绍 maven命令上传jar包到nexus 【Maven二】——maven仓库 maven生命周期和插件 系列文章目录前言一、什么是生命周期&why1.三套生命周期2.clean生命周期3.default生命周期4.site生命周期5.命令行与生命周期 二、插件目标三、插件绑定1.内置绑定2…

软通动力与华秋达成生态共创合作,共同推动物联网硬件创新

7月11日,在2023慕尼黑上海电子展现场,软通动力信息技术(集团)股份有限公司(以下简称“软通动力”)与深圳华秋电子有限公司(以下简称“华秋”)签署了生态共创战略合作协议,共同推动物联网硬件生态繁荣发展。当前双方主要基于软通动力的产品及解…

GO语言GMP模型

目录 程序入口 协程主动让出: 被动让出: schedule 监控线程 程序入口 在执行一系列检查和初始化(创建多少个P,与M0关联)后,进入runtime.main,创建main goroutine,执行mian.mian。 一开始GO语言的调度只有M和G。每个M…

基于Selenium+Python的web自动化测试框架

一、什么是Selenium? Selenium是一个基于浏览器的自动化测试工具,它提供了一种跨平台、跨浏览器的端到端的web自动化解决方案。Selenium主要包括三部分:Selenium IDE、Selenium WebDriver 和Selenium Grid。 Selenium IDE:Firef…

Linux下Nginx升级

nginx版本升级不会覆盖配置文件,但以防万一升级前请先备份配置文件或者配置文件夹 默认配置文件地址:/usr/local/nginx/conf/nginx.conf 1.下载 wget -c http://nginx.org/download/nginx-1.24.0.tar.gz 2.解压 tar -xvf nginx-1.24.0.tar.gz 3.nginx…

Mac的docker安装redis

Mac的docker安装redis 1、docker search redis NAME DESCRIPTION STARS OFFICIAL AUTOMATED redis Redis is an open source key-value store that… 12205 …

git如何撤销commit(未push)

文章目录 前言undo commitreset current branch to here Undo Commit,Revert Commit,Drop Commit的区别 是否删除对代码的修改是否删除Commit记录是否会新增Commit记录Undo Commit不会未Push会,已Push不会不会Revert Commit会不会会Drop Com…

PHP与Golang对战:两种语言的比较与应用场景探讨

引言 在软件开发领域,选择一种合适的编程语言对于项目的成功至关重要。而在今天的文中,我们将探讨两个备受争议的编程语言——PHP与Golang之间的对战。通过比较它们的优势和应用场景,帮助开发者更好地了解如何选择适合自己项目的语言。 PHP的…

青翼科技自主研发4路AD子卡FMC137

FMC137是一款基于VITA57.4标准规范的JESD204B接口FMC子卡模块,该模块可以实现4路14-bit、2GSPS/2.6GSPS/3GSPS ADC采集功能。该板卡ADC器件采用ADI公司的AD9208芯片,,与ADI公司的AD9689可以实现PIN脚兼容。该ADC与FPGA的主机接口通过16通道的…