当前位置: 首页 > news >正文

Robot Framework+Jenkins持续集成UI自动化项目

使用Robot Framework框架可进行Web端和APP端的UI自动化测试,为方便定时执行,可将Robot Framework的自动化项目持续集成至Jenkins平台,具体的操作步骤如下:

安装Jenkins的步骤如下:

手把手教小白安装Jenkins_程序员馨馨的博客-CSDN博客

一)安装插件Robot Framework

安装方法为:点击系统管理(Configure System)->插件管理(Manage Jenkins),选择可选插件,搜索需要的插件后直接安装即可,安装后会重启Jenkins

二)配置Slave

启动Jenkin服务的这台机器在Jenkins中被称为Master,而其他连到Master上的机器(物理机或虚拟机)被称为Slave,Master/Slave相当于 Server 和 Agent 的概念。

Master 提供web接口让用户来管理 Job 和 Slave,Job 可以运行在Master本机或者被分配到Slave上运行。一个Master可以关联多个Slave用来为不同的Job或相同的Job的不同配置来服务。



1、新建节点

进入系统管理->管理节点页面点击左侧的新建节点,输入节点名称,并选择固定代理(Dumb Slave),如果已经添加过节点了,也可以选择复制现有节点

2、配置从节点

点击OK后进入有节点设置页面,此页面上有一些配置项,概要说明如下

3、设置端口

通过Java Web Start链接节点,适用于所有支持Java程序的系统,但是一般来说Windows子节点都是使用Java Web Start方式来进行。使用这种方式需要配置代理端口。

方法:系统管理->全局安全配置->代理设置端口并勾选代理协议



4、启动Slave

在Slave列表页可以看到,如果Slave图标上有一个红色的叉号,这代表当前此Slave处于offline状态。

可通过界面启动,也可通过命令行启动,本次演示通过命令行启动的方式,下载agent.jar文件,cmd进入到这个文件夹,输入命令行即可启动

三)配置Job

在Jenkins首页的左侧菜单栏,点击新建任务,输入一个任务名称,并选择“构建一个自由风格的软件项目”,点击确定进入配置Job页面。

配置Job页面分为六个部分,分别为General,源码管理,构建触发器,构建环境,构建,构建后操作:

1、源码管理

默认就好,构建触发器可设置定时任务,根据自己的需求设置即可

定时构建:

进入项目配置页面,【构建触发器】中勾选“Build periodically”,可以点击蓝色背景的小问号查看帮助,里面有示例。

 具体划分了5个字段,从前到后表示分时天月周,比如以下规则。

 H/5 * * * *表示每5分钟构建一次

 H 20 * * * 表示每天20点构建一次

 H H/2 * * * 表示每两小时构建一次

 H(0-29)/10 * * * *表示每小时的前29分钟内每10分钟执行一次

2、构建中“增加构建步骤”

选择【Execute Windows batch command】,填写执行命令,路径请根据实际环境进行修改,若执行用例只选择到目录,则执行当前目录下所有的测试用例,要执行的用例可选择到具体的测试套件,比如:"pybot.bat

D:\robot\kakasuit.robot",构建后操作,设置发布测试结果

3、构建Job

配置完成后,点击Build Now,可以进行项目构建执行,构建历史会出现正在构建的项目,蓝色构建成功,红色失败。

4、RF测试报告打不开的解决方法

https://www.cnblogs.com/hyj691001/p/12034700.html

在jenkins中执行Groovy脚本执行:(系统管理(Manage Jenkins)-脚本命令行(Script Console),执行如下脚本)

System.setProperty("hudson.model.DirectoryBrowserSupport.CSP","sandbox allow-scripts; default-src 'none'; img-src 'self' data: ; style-src 'self' 'unsafe-inline' data: ; script-src 'self' 'unsafe-inline' 'unsafe-eval' ;")


四)Jenkins邮件通知

1、系统管理员邮件地址配置

进入系统配置页面,首页选择“Configure System”,找到【Jenkins Locaction】项填入“Jenkins URL”和“系统管理员邮件地址”,邮件由系统管理员负责发送。

2、安装插件Email Extension Template(邮件模板)

3、系统邮箱信息配置

入系统配置页面,首页选择“Configure

System”,找到【Extenzmail

Notification】项,填写SMTP服务及端口(以QQ邮箱为例),Cerdentials中点击添加按钮进入添加凭据页面,类型需选择"Username

with Password",然后填写邮箱账号和授权码即可。

4、填写默认邮件接收人,邮件内容等信息

在【Extended E-mail Notification】下配置默认邮件接收人、默认邮件主题、默认邮件内容,并选择触发邮件条件。

5、系统邮箱信息配置

找到【邮件通知】项,配置邮箱服务器、后缀、端口及邮箱账号和授权码,授权码请在登录邮箱配置,登录邮箱是配置的系统管理员邮箱,然后配置邮件接收人地址,可勾选“通过发送测试邮件测试配置”验证邮件配置时候正确,然后点击应用保存,完成系统配置。

6、对单个Job配置邮件内容

进入项目配置页面,找到【增加构建后操作步骤】,选择【Editable Email Notification】,配置项不进行任何修改直接应用保存,接收到的就是默认的邮件格式,修改消息类型为HTML,将模板内容粘贴到Default

Content中接收到的邮件就是模板样式。

Default

Content:

<!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>

 </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>

</html>

7、对单个Job配置指定的收件人

接6,【Editable Email Notification】,配置项下方点击"Advanced

setting",会展开邮件触发器对应的场景列表,点击对应的高级按钮,可分别对邮件发送人员进行单独配置。

8、查看QQ邮件效果

 PS:全网同名,转载注明出处

相关文章:

Robot Framework+Jenkins持续集成UI自动化项目

使用Robot Framework框架可进行Web端和APP端的UI自动化测试&#xff0c;为方便定时执行&#xff0c;可将Robot Framework的自动化项目持续集成至Jenkins平台&#xff0c;具体的操作步骤如下&#xff1a; 安装Jenkins的步骤如下&#xff1a; 手把手教小白安装Jenkins_程序员馨馨…...

【ROS】ROS1编程速览

1、简述 很多项目已经转向ROS2&#xff0c;本人作为ROS小白从ROS1开始学起&#xff0c;但是不会深入学习ROS1&#xff0c;只一带而过。 下面只了解一些ROS1中的概念和基本编程接口。 ROS1中有两种通信模式&#xff1a;话题模式和服务模式&#xff0c;区别如下 2、话题模式 …...

探索智能化:TOOM解析未来稿件校验系统的技术进展与应用展望

在信息时代&#xff0c;随着大数据、人工智能和自然语言处理等技术的快速发展&#xff0c;稿件校验系统正朝着智能化的方向迈进。智能化的稿件校验系统能够更准确、高效地检测虚假信息、抄袭行为以及提升文章质量。本文将探讨智能化稿件校验系统的技术进展与应用展望&#xff0…...

Java程序员从青铜到王者,不同段位的薪资和技能变化

想要薪资高&#xff0c;段位就得跟上&#xff0c;对于Java程序员来说&#xff0c;从青铜到王者&#xff0c;需要经历多个阶段&#xff0c;每个阶段需要掌握的技能都不一样。 今天&#xff0c;我们一起来看看每个段位都有什么特点、需要具备哪些“大杀”技能&#xff0c;也看看…...

tinyWebServer 学习笔记——二、HTTP 连接处理

文章目录 一、基础知识1. epoll2. 再谈 I/O 复用3. 触发模式和 EPOLLONESHOT4. HTTP 报文5. HTTP 状态码6. 有限状态机7. 主从状态机8. HTTP_CODE9. HTTP 处理流程 二、代码解析1. HTTP 类2. 读取客户数据2. epoll 事件相关3. 接收 HTTP 请求4. HTTP 报文解析5. HTTP 请求响应 …...

深入浅析Linux Perf 性能分析工具及火焰图

Perf Event 子系统 Perf 是内置于 Linux 内核源码树中的性能剖析&#xff08;profiling&#xff09;工具。它基于事件采样的原理&#xff0c;以性能事件为基础&#xff0c;支持针对处理器相关性能指标与操作系统相关性能指标的性能剖析。可用于性能瓶颈的查找与热点代码的定位…...

java关键术语

java具有11个关键的术语,这些术语是从java的设计者所编写的白皮书中摘取,这些术语分别为:简单性、面向对象、分布式、健壮性、安全性、体系结构中立、可移植性、解释型、高性能、多线程、多态性。以下开始我们将逐一解说这些术语。 一、简单性 Java是C++语法的纯净版本,剔…...

1. 两数之和【简单】

题目 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是&#xff0c;数组中同一个元素在答案里不能重复出现。 你可以按任意顺…...

《编码——隐匿在计算机软硬件背后的语言》精炼——第17章(自动操作)

夫道成于学而藏于书&#xff0c;学进于振而废于穷。 文章目录 完善加法器加入代码的加法器扩大加数范围自由调用地址的加法器合并代码RAM和数据RAMJump指令硬件实现条件Jump指令零转移的硬件实现条件Jump指令的例子 总结 完善加法器 我们在第14章介绍了一个可以进行连加的加法…...

用Colab免费部署AI绘画云平台Stable Diffusion webUI

Google Colab 版的 Stable Diffusion WebUI 1.4 webui github 地址&#xff1a;https://github.com/sd-webui/stable-diffusion-webui 平台搭建 今天就来交大家如果来搭建和使用这个云平台。 第一步: 打开链接 https://colab.research.google.com/github/altryne/sd-webu…...

R.I.P,又一位程序员巨佬——左耳朵耗子陨落

震惊&#xff01;谣言吧&#xff01;求辟谣&#xff01;默哀&#xff01; 左耳朵耗子&#xff0c;在程序员这个群体里应该属于 GOAT 的存在了&#xff0c;虽然每个人心目中都有自己的 GOAT&#xff0c;但耗子叔的影响力可以说是有目共睹。 我也是在技术群刷到这张图片的&#…...

捷威信keithley吉时利2410数字源表 销售回收KEITHLEY2470新款源表

吉时利Keithley 2410 /2470高压源表/数字源表 产品概览 Keithley 2410 高压源表专为需要紧密耦合源和测量的测试应用而设计。Keithly 2410 提供精密电压和电流源以及测量功能。它既是高度稳定的直流电源&#xff0c;又是真正的仪器级 5-1/2 数字万用表。电源特性包括低噪声、…...

第二十九回:如何给ListView添加分隔线

文章目录 概念介绍添加方法使用属性装饰器 示例代码经验总结&#xff1a; 我们在上一章回中介绍了多种创建ListView的方式,本章回中将介绍" 如何给ListView添加分隔线".闲话休提&#xff0c;让我们一起Talk Flutter吧。 概念介绍 我们在这里说的分隔线也叫Divider,…...

用友 LRP计划维护视图

select planlotnumber 计划单号, demandId 自动编号, PartId 物料Id , sotype 单据类型(1:销售/2:预测), sodid 销售订单明细Id , socode 销售订单单号 , soseq 销售订单行号, PlanCode 计划单号 , DueDate 完工日期 , StartDate 开工日期 , UnitCode 主计量单位, C…...

数组--part 5--螺旋矩阵(力扣59/54)(剑指offer 29)

文章目录 基本算法思想leetcode 59 螺旋矩阵 IIleetcode 54 螺旋矩阵剑指Offer 29 顺时针打印矩阵 基本算法思想 建议先去把题目看了&#xff0c;再来思考相关的代码。 错误的想法&#xff1a;实际上这种题型并不存在算法&#xff0c;只涉及到模拟&#xff0c;但是模拟难度并…...

加密解密软件VMProtect入门使用教程(九)许可制度之许可系统功能

VMProtect是新一代软件保护实用程序。VMProtect支持德尔菲、Borland C Builder、Visual C/C、Visual Basic&#xff08;本机&#xff09;、Virtual Pascal和XCode编译器。 同时&#xff0c;VMProtect有一个内置的反汇编程序&#xff0c;可以与Windows和Mac OS X可执行文件一起…...

MySQL基础-事务详解

本文主要介绍MySQL事务 文章目录 前言事务定义事务四大特性&#xff08;ACID&#xff09; 事务操作事务并发问题事务隔离级别 前言 参考链接&#xff1a; 链接1链接2 事务定义 事务是一组操作的集合&#xff0c;他是一个不可分割的工作单位&#xff0c;事务会把所有的操作作…...

python 读写csv文件方法

csv是一种结构化文件&#xff0c;可以将文本转化成矩阵的形式&#xff0c;方便程序读取和处理。下面来介绍一下使用 python读写 csv文件的方法&#xff1a; 1.首先需要使用 pip安装 python包&#xff0c;然后将 csv文件解压到一个文件夹下 2.使用 pip安装 python包&#xff0c;…...

命令行更新Windows

命令行更新Windows powershell命令行更新安装 Windows Update module for Windows Powershell连接到 Windows Update 服务器并下载更新安装下载好的 Windows Update 更新 cmd执行Windows update更新检查更新下载 Windows Update 更新安装更新安装更新后重新启动设备 win10以下版…...

lwIP 多线程注意事项

关于 lwIP 多线程的总结&#xff1a; lwIP 内核不是线程安全的。如果在多线程环境中使用 lwIP&#xff0c;必须使用高层次的 Sequential 或 socket API。使用 raw API 时&#xff0c;需要自己保护好应用程序和协议栈核心代码。在无操作系统环境中使用 raw API&#xff1a; 使用…...

Docker 离线安装指南

参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性&#xff0c;不同版本的Docker对内核版本有不同要求。例如&#xff0c;Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本&#xff0c;Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...

k8s从入门到放弃之Ingress七层负载

k8s从入门到放弃之Ingress七层负载 在Kubernetes&#xff08;简称K8s&#xff09;中&#xff0c;Ingress是一个API对象&#xff0c;它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress&#xff0c;你可…...

Admin.Net中的消息通信SignalR解释

定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...

渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止

<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet&#xff1a; https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...

网络编程(UDP编程)

思维导图 UDP基础编程&#xff08;单播&#xff09; 1.流程图 服务器&#xff1a;短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...

全志A40i android7.1 调试信息打印串口由uart0改为uart3

一&#xff0c;概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本&#xff1a;2014.07&#xff1b; Kernel版本&#xff1a;Linux-3.10&#xff1b; 二&#xff0c;Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01)&#xff0c;并让boo…...

关键领域软件测试的突围之路:如何破解安全与效率的平衡难题

在数字化浪潮席卷全球的今天&#xff0c;软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件&#xff0c;这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下&#xff0c;实现高效测试与快速迭代&#xff1f;这一命题正考验着…...

PostgreSQL——环境搭建

一、Linux # 安装 PostgreSQL 15 仓库 sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpm# 安装之前先确认是否已经存在PostgreSQL rpm -qa | grep postgres# 如果存在&#xff0…...

【Linux系统】Linux环境变量:系统配置的隐形指挥官

。# Linux系列 文章目录 前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变量的生命周期 四、环境变量的组织方式五、C语言对环境变量的操作5.1 设置环境变量&#xff1a;setenv5.2 删除环境变量:unsetenv5.3 遍历所有环境…...

WebRTC从入门到实践 - 零基础教程

WebRTC从入门到实践 - 零基础教程 目录 WebRTC简介 基础概念 工作原理 开发环境搭建 基础实践 三个实战案例 常见问题解答 1. WebRTC简介 1.1 什么是WebRTC&#xff1f; WebRTC&#xff08;Web Real-Time Communication&#xff09;是一个支持网页浏览器进行实时语音…...