Jenkins+Gitlab CE+Robot Framework持续集成
环境
Ubuntu 14.04.3 LTS Desktop
前提
1.在本地能执行测试脚本(pybot yourTestSuit.txt),本文不讲解如何学习使用RF框架
2.已有Gitlab环境,本文不讲解如何搭建Gitlab
jenkins安装
添加仓库:
~$ wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
打开文件源:
~$ gedit /etc/apt/sources.list
添加以下内容:
deb https://pkg.jenkins.io/debian-stable binary/
更新并安装jenkins(下载很慢,有能力请科学上网后执行以下命令)
~$ sudo apt-get update
~$ sudo apt-get install jenkins
默认端口8080,打开浏览器输入以下登录jenkins
localhost:8080
Jenkins上执行RobotFramework测试用例
安装RobotFramework Plugin
Manage Jenkins > Manage Plugins > 搜索安装Robot Framework plugin
Jenkins运行测试脚本会出现无法打开浏览器导致fail的情况,因此需要安装XVnc Plugin(跑用例的时候仍然不会打开浏览器,但是测试正常进行)
Manage Jenkins > Manage Plugins > 搜索安装XVnc plugin
$ sudo apt-get install vnc4server
Now start the VNC server once as the jenkins user and give it a password,
otherwise it'll try to ask Jenkins
$ sudo su jenkins
$ vncserver
[enter password: vncserver]
创建作业(如图)
Enter an item name > Freestyle project > OK

Build Environment 中勾选 Run Xvnc during build(如图)

Build中输入shell脚本运行测试用例:(以下代码先在本地运行,测试可用后粘贴)
pybot yourTestSuit.txt

设置输出RF的测试报告
Post-built Actions中,add post-built action > Publish Robot Framework test results


Apply > Save
验证:
Build now > 点击任务名称(如图) > 点击Console Output可查看控制台输出/
用例跑完输出测试报告:

Gitlab代码更新触发Jenkins项目构建
思路: Jenkins生成remote trigger, gitlab 设置webhook, 当仓库代码变更时, 触发构建
安装 Gitlab Plugin
安装 Gitlab Hook Plugin。
Jenkins端设置Remote Trigger

Gitlab端设置Webhook
进入项目,右上角齿轮选择Intergtations(webhook)

URL填自己的IP+/buildByToken/build?job=gitlab-test&token=+自己设置的token值,可以直接在浏览器输入验证:

如果Jenkins项目成功构建,则URL正确:

触发选项选择自己需要的,我这只是测试,故保持默认

测试是否正常工作
点击test

如果成功,则本页面提示蓝色successfully,失败提示红色failed

查看Jenkins项目是否被触发构建

至此,Gitlab代码更新能够触发Jenkins项目构建。
自动化测试持续集成完整实现
设计:
项目1:Gitlab代码更新触发本项目实现自动pull代码至本地
项目2:项目1完成后,本项目运行自动化测试,并输出测试结果与报告,发送至管理员邮箱
待续...
错误处理
Xvnc报错
[Host_Regression_easytest] $ vncserver :62 You will require a password to access your desktops.
getpassword error: Invalid argument
Password:FATAL: Failed to run 'vncserver :62' (exit code 1), blacklisting display #62; consider checking the "Clean up before start" optionjava.io.IOException: Failed to run 'vncserver :62' (exit code 1), blacklisting display #62; consider checking the "Clean up before start" option
at hudson.plugins.xvnc.Xvnc.doSetUp(Xvnc.java:100)
at hudson.plugins.xvnc.Xvnc.doSetUp(Xvnc.java:98)
at hudson.plugins.xvnc.Xvnc.doSetUp(Xvnc.java:98)
at hudson.plugins.xvnc.Xvnc.doSetUp(Xvnc.java:98)
at hudson.plugins.xvnc.Xvnc.setUp(Xvnc.java:73)
at hudson.model.Build$BuildExecution.doRun(Build.java:154)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:499)
at hudson.model.Run.execute(Run.java:1488)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
at hudson.model.ResourceController.execute(ResourceController.java:88)
at hudson.model.Executor.run(Executor.java:236)
解决:
在job执行的所在服务器上(job执行有可能是在master上,有可能在slave上运行),执行如下步骤:
首先运行vncserver命令
然后提示输入密码,你随便输入一个密码
建立好了,再kill掉这个vnc session即可。(例如“vncserver -kill :1”)
Gitlab Webhook 点击Test时提示HTTP 500
解决:
先将URL设置为外网链接,例如baidu.com, 若测试成功,则证明是网络问题。
接下来确定你的网络与Gitlab服务器互通,而非单向连通。由于我在A市办公,Gitlab服务器在B市,我用公司提供的OpenVPN连接可以ping通Gitlab所在网段,而B市同事无法ping通我的ip,从而确定是网络问题。
改用公司提供的PPTP VPN后,问题解决。
待续...
Jenkins+Gitlab CE+Robot Framework持续集成的更多相关文章
- Jenkins Robot framework 持续集成环境搭建
为什么我们要引入RF?其实最初我们引入RF是为了能够快速的开展自动化验收测试,为敏捷保驾护航.这其中有个重要的工具Jenkins,同时也是应群里朋友们的要求,这次就来介绍一下RF如何快速便捷的结合Je ...
- Docker 实战(4)- 结合 Jenkins + Gitlab 完成自动化测试的持续集成实战
如果你还想从头学起 Docker,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1870863.html Jenkins 关联 Gitla ...
- 构建gitlab+Jenkins+harbor+kubernetes的DevOps持续集成持续部署环境
构建gitlab+Jenkins+harbor+kubernetes的DevOps持续集成持续部署环境 整个环境的结构图. 一.准备工作 gitlab和harbor我是安装在kubernetes集群外 ...
- ASP.NET Core + Docker + Jenkins + gogs + CentOS 从零开始搭建持续集成
为什么不用gitlab? 没有采用gitlab,因为gitlab比较吃配置,至少得2核4G的配置.采用go语言开发的gogs来代替,搭建方便(不到10分钟就能安装完成),资源消耗低,功能也比较强大,也 ...
- jenkins+Gitlab+maven+tomcat实现自动集成、打包、部署
一.前言 首先出于提高自己技术水平和琢磨能做点什么能提高工作效率,上线工作实在无聊.重复(手动编译.打包,传包,重启),于是就想到了jenkins,jenkins持续集成已经不是什么新鲜的话题,网上文 ...
- Jenkins+Ant+Git+Jmeter实现持续集成
个人记录: 基本的配置与Jenkins+Ant+SVN+Jmeter实现持续集成的配置一样,主要在Jenkins的配置上的区别会有所不同 安装的插件: enkins安装好之后,需要为其安装gitlab ...
- Devops 开发运维高级篇之Jenkins+Docker+SpringCloud微服务持续集成(上)
Devops 开发运维高级篇之Jenkins+Docker+SpringCloud微服务持续集成(上) Jenkins+Docker+SpringCloud持续集成流程说明 大致流程说明: 1) 开发 ...
- Devops 开发运维高级篇之Jenkins+Docker+SpringCloud微服务持续集成——部署方案优化
Devops 开发运维高级篇之Jenkins+Docker+SpringCloud微服务持续集成--部署方案优化 之前我们做的方案部署都是只能选择一个微服务部署并只有一台生产服务器,每个微服务只有一个 ...
- 使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(二)
前言 上一篇随笔Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(一)介绍maven和nexus的环境搭建,以及如何使用maven和nexus统一管理库 ...
随机推荐
- springboot+多数据源配置
作者:纯洁的微笑 出处:http://www.ityouknow.com/ 起多数据源,一般都来解决那些问题呢,主从模式或者业务比较复杂需要连接不同的分库来支持业务.我们项目是后者的模式,网上找了很多 ...
- mongodb副本集配置
需要用到mongodb的时候单个实例肯定是不行的,挂了怎么办,那然后呢,跟mysql一样搞主从备份吗,是可以的mongodb这么弄,不过官网已经不推荐了这么干了,推荐使用副本集的模式,然后数据再大一点 ...
- 使用node的fs读取文件
啊啊啊啊啊啊啊啊啊啊啊啊啊啊,被node的fs坑了一下午,我又爬上来了,要坚强的笑着活下去,嗯,没毛病老铁. let http = require('http'); let fs = require( ...
- android操作系统在itop4412开发板上的烧写
ITOP4412启动模式: 1.EMMC启动模式:拨码开关1-3为011 2.SD卡启动模式:拨码开关1-3为100uboot:初始化内存控制器,访问存储器,把操作系统内核从存储器读取出来放到内存中, ...
- 2.Nginx日常维护技巧
Nginx日常维护技巧 Nginx配置正确性检查 nginx提供了配置文件调试功能,可以快速定义配置文件存在的问题.执行如下命令检测配置文件的正确性: [root@localhost 桌面]# whi ...
- VS2010安装OpenGL
以下涉及到的所有资源都在这里: 链接:https://pan.baidu.com/s/1eSctT5K 密码:174s *我的VS2010的安装位置:D:\Program Files (x86)\M ...
- Javascript高级程序设计笔记 <第五章> 引用类型
一.object类型 创建object实例的方式有两种: //第一种使用new操作符跟构造函数 var person= new Object(); person.name="小王" ...
- JavaScript实现ZLOGO: 用语法树实现多层循环
原址: https://zhuanlan.zhihu.com/p/32571516 照例先上演示弱效果图. 演示地址照旧: 代码如下: 开始 循环4次 循环4次 前进50 左转90度 到此为止 右转9 ...
- 二:mysql安装配置、主从复制配置详解
作者:NiceCui 本文谢绝转载,如需转载需征得作者本人同意,谢谢. 本文链接:http://www.cnblogs.com/NiceCui/p/8213723.html 邮箱:moyi@moyib ...
- 鸟哥的linux私房菜学习-(二)VMware虚拟机及linux系统安装过程
一.安装虚拟机 1.虚拟机常用版本及注册码地址:https://pan.baidu.com/s/1dFnkBrN#list/path=%2FSoftware%20Big%2FVMware%20Work ...
