katalon系列十一:Katalon Studio在Jenkins持续集成
以下在WIN10上运行正常。
安装准备:
一、安装Katalon Studio
二、安装Jenkins
三、获取Katalon命令行运行命令:点击工具栏的‘Build CMD’按钮,选择测试集以及其他选项;选好后点‘Generate Command’即可生成命令,注意生成的命令要去掉-noExit和-consoleLog,以便CI日志可以直接显示在作业视图上。我这里生成的例子:
katalon -runMode=console -projectPath="E:\work\code\katalon\research\research.prj" -reportFolder="Reports" -reportFileName="report" -retry=0 -testSuitePath="Test Suites/crf" -executionProfile="default" -browserType="Chrome"

配置Jenkins:
一、进入Jenkins点击左上角的‘新建任务’,输入任务名称,选择第一个‘构建一个自由风格的软件项目’,点确定。
二、
1.构建环境中选中‘Delete workspace before build starts’,官方解释原因为防止长久运行后毁坏项目文件夹;
2.构建中选择‘执行Windows批处理命令’
输入命令:
d:
cd D:\Program Files\Katalon_Studio_Windows_64-5.8.6
katalon -runMode=console -projectPath="E:\work\code\katalon\research\research.prj" -reportFolder="Reports" -reportFileName="report" -retry=0 -testSuitePath="Test Suites/crf" -executionProfile="default" -browserType="Chrome"
copy "E:\work\code\katalon\research\Reports\JUnit_Report.xml" "D:\Program Files (x86)\Jenkins\workspace\katalon\JUnit_Report.xml" /y
copy "D:\szh\katalon\research\Reports\report.html" "D:\Program Files (x86)\Jenkins\workspace\katalon-prdb\report.html" /y
第一行切换到d盘
第二行切换到Katalon安装目录
第三行为准备工作时准备的命令行语句
第四、五行是我集成了JUnit报告插件、HTML报告插件,但因为Jenkins运行后并没有在当前任务空间生成运行报告,所以我手动把报告复制过来(下面会讲到集成JUnit、HTML报告,如果你不需要的话第四、五行可以删掉)
3.集成JUnit报告插件(首先你的Jenkins已经安装了JUnit报告插件)
在‘构建后操作’中选择‘Publish JUnit test result report’
‘测试报告(XML)’一栏输入报告的路径,你可以先按官方的推荐写成这样子:Reports\crf\*\JUnit_Report.xml;其中crf为测试集的名字。但是因为我运行后Jenkins的workspace并没有生成报告,所以在上面第四行命令的时候,我将报告复制到了任务根目录。
运行效果:
exit 0表示运行成功,其他情况:
0: the execution passed with no failed or error test case.
1: the execution has failed test cases.
2: the execution has error test cases.
3: the execution has failed test cases and error test cases.
4: the execution cannot start because of invalid arguments.



再构建项目后,就有HTML报告了,其实这个报告就是Katalon项目中Report目录下的html文件,只不过可以直接在Jenkins打开了,方便一点。不过我用Chrome浏览器打开有问题,用IE浏览器就OK。
后记——Jenkins日志乱码:
Katalon用例中的备注,我是用的中文,在Jenkins日志中,全显示成了乱码,这是因为用例中的编码是UTF-8,而WINDOWS上的Jenkins是GBK。你可以在Jenkins顶级目录点系统管理--系统属性,‘file.encoding’一栏看到Jenkins的编码。
解决方法就是在Windows添加一个环境变量,名称为:JAVA_TOOL_OPTIONS;值为:-Dfile.encoding=UTF-8
如果设置完重启电脑后依然没生效,试试升级一下JDK,或重新安装,我的版本是jdk1.8.0_191
官方文档:https://docs.katalon.com/katalon-studio/docs/jenkins-integration.html#publish-junit-reports
katalon系列十一:Katalon Studio在Jenkins持续集成的更多相关文章
- Jenkins持续集成企业实战系列之Jenkins插件下载及邮件配置-----05
注:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任. 最初接触Jenkins也是由于公司需求,根据公司需求Java代码项目升级的.(公司是 ...
- Jenkins持续集成企业实战系列之Jenkins手动构建-----04
注:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任. 最初接触Jenkins也是由于公司需求,根据公司需求Java代码项目升级的.(公司是 ...
- Jenkins持续集成企业实战系列之Jenkins配置演示-----03
注:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任. 最初接触Jenkins也是由于公司需求,根据公司需求Java代码项目升级的.(公司是 ...
- Jenkins持续集成企业实战系列之Jenkins持续集成简介及安装-----02
1. Jenkins持续集成简介 注:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任. 最初接触Jenkins也是由于公司需求, ...
- Jenkins持续集成企业实战系列之两种网站部署的流程-----01
注:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任. 最初接触Jenkins也是由于公司需求,根据公司需求Java代码项目升级的.(公司是 ...
- .NET持续集成与自动化部署之路第一篇——半天搭建你的Jenkins持续集成与自动化部署系统
.NET持续集成与自动化部署之路第一篇(半天搭建你的Jenkins持续集成与自动化部署系统) 前言 相信每一位程序员都经历过深夜加班上线的痛苦!而作为一个加班上线如家常便饭的码农,更是深感其痛 ...
- Jenkins持续集成
Jenkins持续集成 & .NET 最近受累于测试环境每次发布都很麻烦,而且我们有多个测试环境,因此专门抽时间做了Jenkins的配置和研究. 折腾了两天终于绿灯以后,先来个截图,Blu ...
- Jenkins持续集成学习-Windows环境进行.Net开发1
目录 Jenkins持续集成学习-Windows环境进行.Net开发 目录 前言 目标 使用Jenkins 安装 添加.net环境配置 部署 结语 参考文档 Jenkins持续集成学习-Windows ...
- Jenkins持续集成学习-Windows环境进行.Net开发2
目录 Jenkins持续集成学习-Windows环境进行.Net开发2 目录 前言 目标 使用 .Net Stardard 单元测试 流程 手动执行单元测试 自动执行单元测试 单元测试报告 上传Nug ...
随机推荐
- Java特性之继承的应用
继承是为了复用,复用是为了减少冗余的代码,提高开发效率. 这次我讲继承,仅仅只是讲它在我开发中一个小小的应用,就是关于Controller日志打印.我们通常使用日志,要么是使用slf或者是log4j. ...
- windows下更新npm的命令实现
Set-ExecutionPolicy Unrestricted -Scope CurrentUser -Force npm install -g npm-windows-upgrade npm-wi ...
- python中matplotlib总结
该总结只是为了记录自己学习过程中容易遗忘的问题,权当一个记事本使用. 1:散点图 plt.scatter()函数的原型 scatter(x, y, s=s, c=c, marker=marker, c ...
- Web框架——XWAF的代码结构和运行机制(4)
XWAF是一套基于Servlet和java反射技术的Web应用程序框架,它利用Servlet运行机制在服务器上加载和运行,接管客户端请求,依靠ServletRequest对象获取用户请求信息,使用Se ...
- ABP 开发(一)
rh 最近搞Angular ,使用Abp+Angular建项目,遇到部分问题,记录一下,以备查: 一.Abp官网: https://aspnetboilerplate.com/ 点Get starte ...
- Oracle与MySQL使用区别
与MySQL通过创建不同的数据库来存储表 Oracle提出表空间(tablespace)的概念作为逻辑上的存储区域来存储表, 而不同的表空间由不同的用户来管理 用户可以授予权限或角色 举例: 使用PL ...
- #leetcode刷题之路19-删除链表的倒数第N个节点
给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点.示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1-& ...
- 【整理】MySQL查询优化
优化建议 对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用 ...
- MySQL->复制表[20180509]
MySQL复制表 通常复制表所采用CREATE TABLE .... SELECT 方式将资料复制,但无法将旧表中的索引,约束(除非空以外的)也复制. 完整复制MySQL数据表所需步骤: ...
- jquery 60s倒计时
前端开发中经常用到的发送按钮倒计时,每次都是重写,挺麻烦的,记录一下,以后直接来复制代码 <!DOCTYPE html> <html> <head> <met ...