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执行用例的更多相关文章

  1. RobotFramework与Jenkins集成后构建成功率高于设置阈值但总是显示失败

    摘要:robot执行后总是失败 1.在配置jenkins的job时,添加构建步骤Execute Windows batch command,输入执行robotframework测试用例命令 2.然后j ...

  2. robotframework之用cmd去执行用例

    1.电脑cmd进入 2.在cmd中输入相应的执行命令即可以正常执行 3.执行完成,会显示当前用例执行情况,以及output/log/report的默认保存路径 接下来详细说一下执行不同用例的具体指令, ...

  3. 关于自动化测试环境的集成(Jenkins+RobotFramework+TestLink+SVN)

    本人主要从事网络安全产品的测试,由于一些产品功能在后期稳定后每个版本的迭代仍需要投入大量的时间和精力去测试,所以近期计划逐步的去了解自动化测试的一些内容来节省和解放一些资源.由于自己并没有什么编码基础 ...

  4. 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: ...

  5. 一个基于集成jenkins的测试平台

    (一)先看测试业务的情况: 有各种各样的任务包括代码构建.部署搭建.单元测试.功能自动化测试(包括许多模块的功能自动化测试,有十几个居多),性能测试.正确性验证:复杂一点的是这些任务在不同的测试阶段中 ...

  6. 持续集成Jenkins+sonarqube部署教程

    1 引言 1.1 文档概要 本文主要介绍jenkins,sonar的安装与集成,基于ant,maven构建.用一个例子介绍jenkins的编译打包部署,代码检查.最后集成jenkins.(现阶段只是简 ...

  7. jenkins执行构建并查看结果

    继完成构建项目配置http://www.cnblogs.com/yajing-zh/p/5111060.html后,则要执行构建. 回到jenkins主页之后,我们看到一个新建的项目显示出来: 点击进 ...

  8. 持续化集成Jenkins的系统配置

    最近在研究selenium2自动化测试,用到持续化集成jenkins.由于之前仅限于使用,而没有真正动手配置过,所以现在学习从零开始,搭建持续化集成,故而有了这篇博客. 先介绍一下项目持续集成测试,这 ...

  9. Postman-CI集成Jenkins

    Postman-简单使用 Postman-进阶使用 Postman-CI集成Jenkins Newman 官方说明:Postman's command-line companion lets you ...

随机推荐

  1. C++之类成员的访问权限详解(一)

    概念解析 众所周知,面向对象编程语言的特征之一就是封装,不同编程语言对于封装提供的实现有所不同,但原理大体上是相同的.C++提供了三种不同程度的访问权限来实现,主要是通过public.private. ...

  2. Multiplication Puzzle POJ - 1651

    解法 区间dp例题,长度从2开始到n结束起点从1到n,中间枚举的时候是看着左端点右端点与中点的乘积 代码 #include <iostream> #include <cstring& ...

  3. mysql 删除恢复

    一.模拟误删除数据表的恢复 1 二进制日志功能启用 vim /etc/my.cnf [mysqld] log-bin 2  完全备份 mysqldump -A -F --master-data=2 - ...

  4. 如何用纯 CSS 创作一个荧光脉冲 loader 特效

    效果预览 在线演示 按下右侧的"点击预览"按钮在当前页面预览,点击链接全屏预览. https://codepen.io/zhang-ou/pen/erRzzR 可交互视频教程 此视 ...

  5. qt 窗体间通信

    利用qt的信号和槽,可以完成窗体间的通信,下面列出父子窗口利用信号和槽的相关代码. parent窗口: //parent.h #ifndef PARENT_H #define PARENT_H #in ...

  6. C#中如何使用正则表达式

    [草稿版本,谨慎阅读] 参考文档:正则表达式30分钟入门教程 如需系统学习正则表达式内容,请移步上述教程. 正则表达式按照指定的规则来匹配字符或字符串.'.' ' \b' ' \d'等等被称为是正则表 ...

  7. Photoshop保存的各种格式详解

    1.PSD(*.PSD) PSD格式是Adobe Photoshop软件自身的格式,这种格式可以存储Photoshop中所有的图层,通道.参考线.注解和颜色模式等信息.在保存图像时,若图像中包含有层, ...

  8. CSS知识点之字体大小属性font-size

    管理文本的大小在 web 设计领域很重要.但是,不应当通过调整文本大小使段落看上去像标题,或者使标题看上去像段落.请始终使用正确的 HTML 标题,比如使用 <h1> - <h6&g ...

  9. grunt 使用比较

    http://www.cnblogs.com/yexiaochai/p/3603389.html 最全的uglify使用DEMO http://www.cnblogs.com/artwl/p/3449 ...

  10. springmvc ajax传值详解