Robotframework集成jenkins执行用例
Robotframework+jenkins配置
假设我们完成了一个模块的用例设计,可是想晚上9点或凌晨运行,这时候该怎么实现呢?jenkins可以很好解决我们的疑难。
Jenkins安装
这里简单说下安装,建议下载war包在tomacat中启动或是直接在cmd中使用命令启动jenkins(如果已经使用.msi安装成windows服务了,下面会提到解决方法)。
配置
- 基本信息
在jenkins主页中,新建 一个自由风格的项目,配置项目的名称等基本信息如图

因为这里没有使用svn或git,文件直接保存在本地,所以没有使用源码管理,如果使用了源码管理的可以根据实际情况配置源码管理的配置信息。
- 构建触发器
这里选择使用Build periodically,进行定时构建,如图

这里设置的是每天凌晨2点进行构建。
这里注意选择的是build Periodically,选择的是定时构建,不管代码是否有更新;而另外一个构建方式Poll SCM,则是svn或git代码有更新才会再制定的时间内进行构建
- 构建
接下来就是构建过程,这里是windows环境,所以使用的是Execute Windows batch command
使用命令执行要运行的用例如pybot.bat -d F:\outputdir F:\test\cswx\,这里-d是将执行结果保存在F:\outputdir目录下,而F:\test\cswx\是需要执行用例的文件夹

- 构建后操作
这里提前需要安装一个插件Public Robot Framework test result

如果构建的时候,使用的是默认的输出目录,那么这里的Directory of Robot output 默认为空。
- 添加接收邮箱

- 执行结果
构建之后查看结果如图




以Android为例,iOS的启动方式和控件查找略作改动即可。
resource.txt
*** Settings ***
Library AppiumLibrary
*** Variables ***
{REMOTE_URL} http://0.0.0.0:4800/wd/hub
*** Keywords ***
TestStart
[Documentation] start application
Open Application {REMOTE_URL} platformName=Android platformVersion=5.0.0 deviceName=192.168.56.101:5555 app={CURDIR}/snowball-dev.apk automationName=appium appPackage=com.xxx.xxxx appWaitActivity=.view.UnloginHomePageActivity
mobile login
[Arguments] {user_name} {password}
Input Text id=com.xxx.xxxx:id/phone_number_input {user_name}
Input Text id=com.xxx.xxxx:id/password_input {password}
Click Element id=com.xxx.xxxx:id/login
Capture Page Screenshot
use with login
Click Element identifier=登录
Wait Until Page Contains 注册
test.tx
*** Settings ***
Resource login_resource.txt
Test Setup TestStart
Test Teardown Close Application
*** Test Cases ***
手机号登录/退出登录成功
[Documentation] 手机号登录成功,再退出登录
[Tags] login
use with login
mobile login xxxxxx xxxxx
Page Should Contain Element identifier=xxx
Page Should Contain Element identifier=xxx
logout
匿名使用再用手机号登录
[Documentation] 匿名使用后,再用手机号登录
[Tags] login
use without login
Page Should Contain Element identifier=xxx
Page Should Contain Element identifier=xxx
Click Element identifier=xxxx
Click Element identifier=xxxx
Click Element identifier=xxxxx
mobile login xxxx xxxx
Click Element identifier=xxxxx
Page Should Contain Text text=xxxx
logout
jenkins邮件报告
使用email-ext plugin,可以将robotframework的结果集成到邮件报告里。
jelly邮件模板如下:
<!-- Robotframework TEMPLATE -->
<j:set var="robotAction" value="${it.getAction('hudson.plugins.robot.RobotBuildAction')}" />
<j:if test="${robotAction!=null}">
<div class="content">
<j:set var="robotResult" value="${robotAction.result}" />
<j:if test="${robotResult!=null}">
<a href="rooturlrooturl{build.url}robot">
<h1>UI Test Results</h1>
</a>
<img src="${rooturl}static/72341926/plugin/robot/robot.png" />
<a href="rooturlrooturl{build.url}robot/report/report.html#totals?all"><tt>Robot Test Results</tt></a>
<table class="border">
<tr>
<th class="border">Name</th>
<th class="border">Suite</th>
<th class="border">Status</th>
<th class="border">Duration</th>
</tr>
<j:forEach var="suiteResult" items="${robotResult.getAllSuites()}">
<j:forEach var="caseResult" items="${suiteResult.getCaseResults()}">
<tr>
<td class="border">${caseResult.getName()}</td>
<td class="border">${suiteResult.getName()}</td>
<j:if test="${caseResult.isPassed()}">
<td class="border test_passed">Pass</td>
</j:if>
<j:if test="${!caseResult.isPassed()}">
<td class="border test_failed">Fail</td>
</j:if>
<td class="border test_duration">${caseResult.getDuration()/1000}s</td>
</tr>
</j:forEach>
</j:forEach>
</table>
</j:if>
</div>
</j:if>
展示结果如图

Robotframework集成jenkins执行用例的更多相关文章
- RobotFramework与Jenkins集成后构建成功率高于设置阈值但总是显示失败
摘要:robot执行后总是失败 1.在配置jenkins的job时,添加构建步骤Execute Windows batch command,输入执行robotframework测试用例命令 2.然后j ...
- robotframework之用cmd去执行用例
1.电脑cmd进入 2.在cmd中输入相应的执行命令即可以正常执行 3.执行完成,会显示当前用例执行情况,以及output/log/report的默认保存路径 接下来详细说一下执行不同用例的具体指令, ...
- 关于自动化测试环境的集成(Jenkins+RobotFramework+TestLink+SVN)
本人主要从事网络安全产品的测试,由于一些产品功能在后期稳定后每个版本的迭代仍需要投入大量的时间和精力去测试,所以近期计划逐步的去了解自动化测试的一些内容来节省和解放一些资源.由于自己并没有什么编码基础 ...
- robotframework执行用例时,报错selenium.common.exceptions.WebDriverException: Message: unknown error: cannot get automation extension from unknown error: page could not be found: chrome-extension://aapnijgdinl
在用robotframework编写移动端测试用例(用chrome浏览器模拟手机浏览器),执行用例时, 报错selenium.common.exceptions.WebDriverException: ...
- 一个基于集成jenkins的测试平台
(一)先看测试业务的情况: 有各种各样的任务包括代码构建.部署搭建.单元测试.功能自动化测试(包括许多模块的功能自动化测试,有十几个居多),性能测试.正确性验证:复杂一点的是这些任务在不同的测试阶段中 ...
- 持续集成Jenkins+sonarqube部署教程
1 引言 1.1 文档概要 本文主要介绍jenkins,sonar的安装与集成,基于ant,maven构建.用一个例子介绍jenkins的编译打包部署,代码检查.最后集成jenkins.(现阶段只是简 ...
- jenkins执行构建并查看结果
继完成构建项目配置http://www.cnblogs.com/yajing-zh/p/5111060.html后,则要执行构建. 回到jenkins主页之后,我们看到一个新建的项目显示出来: 点击进 ...
- 持续化集成Jenkins的系统配置
最近在研究selenium2自动化测试,用到持续化集成jenkins.由于之前仅限于使用,而没有真正动手配置过,所以现在学习从零开始,搭建持续化集成,故而有了这篇博客. 先介绍一下项目持续集成测试,这 ...
- Postman-CI集成Jenkins
Postman-简单使用 Postman-进阶使用 Postman-CI集成Jenkins Newman 官方说明:Postman's command-line companion lets you ...
随机推荐
- 开源代码生成器,基于mybatis-generator扩展,结合freemarker
git源码地址:https://github.com/JonSnow592622272/free-generator-code 码云gitee源码地址:https://gitee.com/a59262 ...
- JSP页面通过c:forEach标签循环遍历List集合
c:forEach>标签有如下属性: 属性 描述 是否必要 默认值items 要被循环的信息 否 无begin 开始的元素(0=第一个元素,1=第二个元素) 否 0end 最后一个元素(0=第一 ...
- Java 编程下 Eclipse/myeclipse 如何设置单行代码显示的最大宽度
http://www.cnblogs.com/sunzn/archive/2013/03/30/2990191.html 或 http://zhidao.baidu.com/link?url=67uy ...
- HTTP请求头的具体含意
为你详细解读HTTP请求头的具体含意 | 浏览:5763 | 更新:2012-03-16 16:41 当我们打开一个网页时,浏览器要向网站服务器发送一个HTTP请求头,然后网站服务器根据HTTP请求头 ...
- 【2018 CCPC网络赛】1003 - 费马小定理
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=6440 这题主要是理解题意: 题意:定义一个加法和乘法,使得 (m+n)p = mp+np; 其中给定 ...
- 厚溥教育1718部数据库连接作业答案,分装一个操作数据库而无需写SQL语句的函数
<?php header("Content-type:text/html;charset=utf8"); //PHP操作数据库的函数 function phpsql($dbc ...
- python_正则_re模块
正则表达式元字符: 字符匹配 : . :除换行符以外的任意单个字符 [] :指定范围内字符 [^] :指定范围外字符 次数匹配: * :任意次,0,1,多次 .* :任意字符 任意次 ? :至多1次或 ...
- pwnable flag之write up
Papa brought me a packed present! let's open it. Download : http://pwnable.kr/bin/flag This is rever ...
- 南宁2017ICPC总结
南宁2017ICPC总结 第二次到南宁,高铁三个半小时好像没什么感觉了,广西的天气真的是又湿又冷,而且交通也及其不方面,所以对广西的印象也不是很好.这次承 ...
- PS学习笔记(03)
ui到底是什么? 很多同学不知道ui是什么,以为画个ICON图标就是做ui了,导致很多人都忙着画各种各样的图标.这样很容易让那些新人们走错路,最后我想说的是icon不是全部,不要沉迷其中,要学的还有很 ...