环境


Ubuntu 14.04.3 LTS Desktop

前提


1.在本地能执行测试脚本(pybot yourTestSuit.txt),本文不讲解如何学习使用RF框架

2.已有Gitlab环境,本文不讲解如何搭建Gitlab

jenkins安装


添加仓库:

  1. ~$ wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -

打开文件源:

  1. ~$ gedit /etc/apt/sources.list

添加以下内容:

  1. deb https://pkg.jenkins.io/debian-stable binary/

更新并安装jenkins(下载很慢,有能力请科学上网后执行以下命令)

  1. ~$ sudo apt-get update
  2. ~$ sudo apt-get install jenkins

默认端口8080,打开浏览器输入以下登录jenkins

  1. localhost:8080

Jenkins上执行RobotFramework测试用例


安装RobotFramework Plugin

Manage Jenkins > Manage Plugins > 搜索安装Robot Framework plugin

Jenkins运行测试脚本会出现无法打开浏览器导致fail的情况,因此需要安装XVnc Plugin(跑用例的时候仍然不会打开浏览器,但是测试正常进行)

Manage Jenkins > Manage Plugins > 搜索安装XVnc plugin

  1. $ sudo apt-get install vnc4server
  2. Now start the VNC server once as the jenkins user and give it a password,
  3. otherwise it'll try to ask Jenkins
  4. $ sudo su jenkins
  5. $ vncserver
  6. [enter password: vncserver]

 创建作业(如图)

Enter an item name > Freestyle project > OK

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

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

  1. 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持续集成的更多相关文章

  1. Jenkins Robot framework 持续集成环境搭建

    为什么我们要引入RF?其实最初我们引入RF是为了能够快速的开展自动化验收测试,为敏捷保驾护航.这其中有个重要的工具Jenkins,同时也是应群里朋友们的要求,这次就来介绍一下RF如何快速便捷的结合Je ...

  2. Docker 实战(4)- 结合 Jenkins + Gitlab 完成自动化测试的持续集成实战

    如果你还想从头学起 Docker,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1870863.html Jenkins 关联 Gitla ...

  3. 构建gitlab+Jenkins+harbor+kubernetes的DevOps持续集成持续部署环境

    构建gitlab+Jenkins+harbor+kubernetes的DevOps持续集成持续部署环境 整个环境的结构图. 一.准备工作 gitlab和harbor我是安装在kubernetes集群外 ...

  4. ASP.NET Core + Docker + Jenkins + gogs + CentOS 从零开始搭建持续集成

    为什么不用gitlab? 没有采用gitlab,因为gitlab比较吃配置,至少得2核4G的配置.采用go语言开发的gogs来代替,搭建方便(不到10分钟就能安装完成),资源消耗低,功能也比较强大,也 ...

  5. jenkins+Gitlab+maven+tomcat实现自动集成、打包、部署

    一.前言 首先出于提高自己技术水平和琢磨能做点什么能提高工作效率,上线工作实在无聊.重复(手动编译.打包,传包,重启),于是就想到了jenkins,jenkins持续集成已经不是什么新鲜的话题,网上文 ...

  6. Jenkins+Ant+Git+Jmeter实现持续集成

    个人记录: 基本的配置与Jenkins+Ant+SVN+Jmeter实现持续集成的配置一样,主要在Jenkins的配置上的区别会有所不同 安装的插件: enkins安装好之后,需要为其安装gitlab ...

  7. Devops 开发运维高级篇之Jenkins+Docker+SpringCloud微服务持续集成(上)

    Devops 开发运维高级篇之Jenkins+Docker+SpringCloud微服务持续集成(上) Jenkins+Docker+SpringCloud持续集成流程说明 大致流程说明: 1) 开发 ...

  8. Devops 开发运维高级篇之Jenkins+Docker+SpringCloud微服务持续集成——部署方案优化

    Devops 开发运维高级篇之Jenkins+Docker+SpringCloud微服务持续集成--部署方案优化 之前我们做的方案部署都是只能选择一个微服务部署并只有一台生产服务器,每个微服务只有一个 ...

  9. 使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(二)

    前言     上一篇随笔Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(一)介绍maven和nexus的环境搭建,以及如何使用maven和nexus统一管理库 ...

随机推荐

  1. Mongodb 3.4 + Centos6.5 配置 + mysql.sql转为csv 或 json导入和导出Mongo (64位系统)

    Centos下通过yum安装步骤如下: 声明:相对比那些用源码安装,少了配置和新建log和data目录,这种简单粗暴, ,创建仓库文件, vi /etc/yum.repos.d/mongodb-org ...

  2. Python3.x和Python2.x的区别【转】

    转载自:https://www.cnblogs.com/codingmylife/archive/2010/06/06/1752807.html 1.性能 Py3.0运行 pystone benchm ...

  3. [.Net跨平台]部署DTCMS到Jexus遇到的问题及解决思路---Linux环境搭建

    最近朋友托我帮忙研究如何把一个DTCMS部署到Linux下,经过1天的研究,部署基本成功,可能有些细节还未注意到,现在把心得分享一下.过程比预期的要简单 身为.Net程序员,这个问题的第一步可能就是如 ...

  4. web.config中配置数据库(多数据)连接的两种方式

    这是我的第一篇文章,既然是第一篇了,那就从最基础的只是说起--web.config中配置数据库连接. 网上有很多这方面的资料,但发现并没有一篇从头到位很清楚明了说完的,今天就把我的整理写在这里吧. 在 ...

  5. 西门子flexable创建画面

    一.wincc flexable 创建画面包括以下四点 二.具体操作 1.组态画面模板 1)使用该模板的画面包括该模板的所有组件,一个模板也是一个画面 2)给模板上添加一个文本域如下图,则画面1也会显 ...

  6. bzoj 3528: [Zjoi2014]星系调查

    Description 银河历59451年,在银河系有许许多多已被人类殖民的星系.如果想要在行 星系间往来,大家一般使用连接两个行星系的跳跃星门.  一个跳跃星门可以把 物质在它所连接的两个行星系中互 ...

  7. 【知了堂学习笔记】_String、StringBuffer与StringBuilder的区别

    String Stringbuffer  StringBuilder的区别: 1.string是字符串常量,且长度是不可改变的,Stringbuffer.stringBuilder是字符串变量 2.S ...

  8. 随手记一下,VS2015卡顿问题解决。

    不知道什么开始,vs2015卡顿的很,启动时加载项目很慢,调试是启动慢,停止调试时直接卡死半分钟.其他都还能忍受,最不能忍受的是点击停止调试按钮后十几秒没反应! 网上有解决方案如下几个,我试了,都不行 ...

  9. golang社区

    a development list for Go Programming Language https://groups.google.com/forum/#!forum/golang-dev a ...

  10. vue移动端弹框组件,vue-layer-mobile

    最近做一个移动端项目,弹框写的比较麻烦,查找资料,找到了这个组件,但是说明文档比较少,自己研究了下,把我碰到的错,和详细用法分享给大家!有疑问可以打开组件看一看,这个组件是仿layer-mobile的 ...