当前位置: 首页 > 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; 使用…...

eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)

说明&#xff1a; 想象一下&#xff0c;你正在用eNSP搭建一个虚拟的网络世界&#xff0c;里面有虚拟的路由器、交换机、电脑&#xff08;PC&#xff09;等等。这些设备都在你的电脑里面“运行”&#xff0c;它们之间可以互相通信&#xff0c;就像一个封闭的小王国。 但是&#…...

在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能

下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能&#xff0c;包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...

土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等

&#x1f50d; 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术&#xff0c;可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势&#xff0c;还能有效评价重大生态工程…...

DingDing机器人群消息推送

文章目录 1 新建机器人2 API文档说明3 代码编写 1 新建机器人 点击群设置 下滑到群管理的机器人&#xff0c;点击进入 添加机器人 选择自定义Webhook服务 点击添加 设置安全设置&#xff0c;详见说明文档 成功后&#xff0c;记录Webhook 2 API文档说明 点击设置说明 查看自…...

第7篇:中间件全链路监控与 SQL 性能分析实践

7.1 章节导读 在构建数据库中间件的过程中&#xff0c;可观测性 和 性能分析 是保障系统稳定性与可维护性的核心能力。 特别是在复杂分布式场景中&#xff0c;必须做到&#xff1a; &#x1f50d; 追踪每一条 SQL 的生命周期&#xff08;从入口到数据库执行&#xff09;&#…...

wpf在image控件上快速显示内存图像

wpf在image控件上快速显示内存图像https://www.cnblogs.com/haodafeng/p/10431387.html 如果你在寻找能够快速在image控件刷新大图像&#xff08;比如分辨率3000*3000的图像&#xff09;的办法&#xff0c;尤其是想把内存中的裸数据&#xff08;只有图像的数据&#xff0c;不包…...

LCTF液晶可调谐滤波器在多光谱相机捕捉无人机目标检测中的作用

中达瑞和自2005年成立以来&#xff0c;一直在光谱成像领域深度钻研和发展&#xff0c;始终致力于研发高性能、高可靠性的光谱成像相机&#xff0c;为科研院校提供更优的产品和服务。在《低空背景下无人机目标的光谱特征研究及目标检测应用》这篇论文中提到中达瑞和 LCTF 作为多…...

十九、【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建

【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建 前言准备工作第一部分:回顾 Django 内置的 `User` 模型第二部分:设计并创建 `Role` 和 `UserProfile` 模型第三部分:创建 Serializers第四部分:创建 ViewSets第五部分:注册 API 路由第六部分:后端初步测…...

【HarmonyOS 5】鸿蒙中Stage模型与FA模型详解

一、前言 在HarmonyOS 5的应用开发模型中&#xff0c;featureAbility是旧版FA模型&#xff08;Feature Ability&#xff09;的用法&#xff0c;Stage模型已采用全新的应用架构&#xff0c;推荐使用组件化的上下文获取方式&#xff0c;而非依赖featureAbility。 FA大概是API7之…...

【把数组变成一棵树】有序数组秒变平衡BST,原来可以这么优雅!

【把数组变成一棵树】有序数组秒变平衡BST,原来可以这么优雅! 🌱 前言:一棵树的浪漫,从数组开始说起 程序员的世界里,数组是最常见的基本结构之一,几乎每种语言、每种算法都少不了它。可你有没有想过,一组看似“线性排列”的有序数组,竟然可以**“长”成一棵平衡的二…...