http://blog.sina.com.cn/s/blog_68f262210102vx8o.html

第七章 测试用例接入jenkins自动运行

------Web自动化测试之Webdriver+TestNG--从零到熟练(系列)

自动化测试用例的最终目的就是无人值守的自动化回归测试,不管是用什么语言,什么框架编写的测试用例,如果想达到这个效果,都需要借助于Jenkins或是Hudson。根据业界的习惯,我们还是使用Jenkins。在本人的各个自动化测试教程中,已经多次介绍到了Jenkins的使用,网上也有很多相应的教程,在此就不在累述,我们只讲解如何将TestNG编写的测试用例接入到Jenkins中。

7.1 Jenkins配置

Jenkins提供了非常人性化的配置,根据不同的需要,我们可以安装相应的插件,配置不同的功能以达到我们的需要。

本方案建议安装的六个插件分别是“Extended Choice Parameter plugin”,“EnvInject Plugin”,“Build User Vars Plugin”,“Build Name Setter Plugin”,“HTML Publisher Plugin”和“Email-ext plugin”。

安装插件的方法十分简单,按如下步骤进行即可:

(1)在打开的jenkins页面上,找到“Manage Plugins”链接,如图7.1.1所示,然后单击这个链接。

7.1.1 查找Manage Plugins链接

(2)在打开的页面中,找到要添加的插件,勾选所需要的目标插件,点击页面下方的相应安装按钮即可。如图7.1.2所示:

图7.1.2勾选所需要的目标插件

7.2 将TestNG接入到Jenkins

经过我们的努力,我们已完成了对被测试对象的代码覆盖,单个用例以及用例集都调试通过了。现在我们就将代码接入到Jenkins中,然后再做相应的配置,实现按我们的需要进行回归测试。

(1)上传自动化测试代码到SVN或是Git。要对自动化测试代码进行管理,上传到代码管理工具中,如上传到Git:git@gitlab.corp.ncfgroup.com:zhongchou/zcapitest.git.

同时在Jenkins配置的机器上安装jdk,testng等必需的软件。

(2)打开Jenkins,创建Job。打开Jenkins网站,创建Job如:Zhongchou-AutoTest-OnlineEnv,并对项目描述,丢弃旧的构建和启用项目安全进行相应的配置,如图7.2.1所示:


图7.2.1 Jenkins描述等配置

(3)源码管理和构建触发器。在源码管理中我们选择Git,并将上面的Git地址填写进去。并且在构建触发器的时候,我们设置成定时执行。详细说明见:http://blog.sina.com.cn/s/blog_68f262210102vmlx.html,具体配置如图7.2.2所示:


7.2.2 配置源码和构建触发器

(4)填写构建命令。构建命令是我们执行自动化测试用例的命令行,如果没有此命令行,则Jenkins就不知道如何执行自动化测试,所以TestNG对应的命令行运行如:

Set CLASSPATH=libs\testng.jar;libs\autoTests.jar

Java org.testng.TestNG –testname testng.xml –d test-output\%BUILD_ID%

-testname 接受以逗号隔开的 test name 列表,脚本运行时 suite xml 中只有-testname 选项列表里指定了的 test 才会被执行。

-d 指定 TestNG 默认 report 生成的路径。因为不同用户可能存在并行执行的请求,为了防止冲突,每一个请求的 report 会生成在以环境变量 BUILD_ID 命名的目录下,BUILD_ID 可以唯一标示不同的请求。

将命令填写到Jenkins配置页—>构建à“Execute shell”à“Command”框中。

(5)脚本执行完毕之后,接下来就需要归档生成的测试报告。这里采用了插件“HTML Publisher Plugin”新增的配置选项。首先在“Add post-build action”中选择“Publish HTML reports”,指定每一个请求所生成的 HTML 报告的路径和文件名, 勾选“Keep past HTML reports”, 这样就可以在历史记录的快捷菜单中轻松的查询过往请求的执行报告了。


图7.2.3 添加报告项


图7.2.3报告路径和配置



图7.2.4 查看测试报告

 (6)失败邮件通知。如果测试用例执行失败了,我们希望邮件通知相关人员,这里就可以单击“构建后操作”->“E-mail Notification”,然后在Recipients后填写要接收邮件的邮箱地址。同时选择“每次不稳定的构建都发送邮件通知”即可。

(7)保存配置。单击保存后,就将测试用例接入到了,Jenkins中,并且每个小时会自动执行一次。

(8)手工执行。在Jenkins页面上,打开刚刚创建的Job Zhongchou-AutoTest-OnlineEnv,单击页面左侧的“立即构建”,即可马上执行自动化测试用例。如图7.2.5所示:

图7.2.5 立即构建自动化测试用例

(9)查看构建结果。单击Job左侧“Build History”要查看的构建的任务,在打开的页面左侧单击“控制台输出”,既可在右侧打开控制台输出,查看测试用例执行的结果。

此时我们的执行结果还不太好看,因为没有使用testng-results.xsl对结果进行美化,所以在上面的命令行最后添加上:ant build.xml。保存后,再次运行,就可以对TestNG产生的报告进行美化,形成第六章我们展示的报告样式。

7.3 本章小结

在本章我们讲解了如何对Jenkins进行配置,使其能满足TestNG的需要,而后分步介绍了如何将我们的webdriver+TestNG编写的代码添加到Jenkins中,从而实现自动执行或是手工执行。如果测试用例出现了问题,则会给相关人员发送邮件通知。还可以借助于第三方接口实现短信通知,我们在其他几个自动化测试用例中已经讲解过,而且第三方发短信接口也不是每个公司都有的,所以不太通用。在此就不多做介绍了,有需要的可以参考本人的其他相关博文。

jenkins执行自动化用例(详细、有用、mark 优先级高高高)的更多相关文章

  1. pytest文档30-功能用例与自动化用例完美对接(allure)

    前言 做自动化做久了,经常会思考一个问题,到底别人是怎么做的自动化,跟自己的有啥不一样,看过不少书和资料,都是停留在demo的层面. 真正把自动化做的好的大牛又不屑于分享自己的劳动成果,所以大部分情况 ...

  2. 【Golang】基于录制,自动生成go test接口自动化用例

    背景 之前写过一篇博客,介绍怎么用Python通过解析抓包数据,完成自动化用例的编写.最近这段时间在使用go test,所以就在想能不能也使用代码来生成自动化用例,快速提升测试用例覆盖率.说干就干. ...

  3. 纯python自研接口自动化脚本更新版本,让小白也能实现0到1万+的接口自动化用例

    查看完整文章点击原文链接:纯python自研接口自动化脚本更新版本,让小白也能实现0到1万+的接口自动化用例 你是否还在用postman\jmeter做接口自动化吗?用python的开源框架[unit ...

  4. python+pytest接口自动化(12)-自动化用例编写思路 (使用pytest编写一个测试脚本)

    经过之前的学习铺垫,我们尝试着利用pytest框架编写一条接口自动化测试用例,来厘清接口自动化用例编写的思路. 我们在百度搜索天气查询,会出现如下图所示结果: 接下来,我们以该天气查询接口为例,编写接 ...

  5. python+requests+yaml实现接口自动化用例

    前言:最近也思考了一下怎么做接口自动化,以下内容属于自己目前阶段所学习到的内容,也逐渐投入自己实际工作中,把最近的学习新得跟大家分享下,话不多说,切入正题. 对接口自动化测试用例的思考:接口测试大多测 ...

  6. Android UI自动化用例设计技巧

    一.封装方法 1.编程如何越来越快: 首先,需要经验丰富,知识面广. 其次,每一个熟练编程的人员,都会有自己的一个库,解决各种问题.各种通用的方法函数. 同理,自动化脚本也是编程,测试用例则为需求,U ...

  7. 命令行运行Android Robotium自动化用例或单元测试用例

    本文目录 1.运行所有的测试用例 2.运行单个测试类或某个TestSuite 3.运行某个测试类里面的某个测试方法 4.运行两个不同的测试类或类中的方法 命令行运行Android Robotium自动 ...

  8. 【UI】自动化用例设计技巧

    需要封装的方法: 公共的操作方法 经常使用的步骤:超过两次以上 经常使用的组件:输入框.文本框.列表 经常操作的布局:多个组件组成通用的布局 经常操作的页面:ui页面由一个一个单独Activity组成 ...

  9. 【Robot Framework 项目实战 03】使用脚本自动生成统一格式的RF自动化用例

    背景 虽然大家都已经使用了统一的关键字,但是在检查了一些测试用例之后,还是发现因为大家对RF的熟悉程度不一导致的测试用例颗粒度差异很大的情况:而且在手动方式转化测试用例过程中,有不少工作是完全重复的且 ...

随机推荐

  1. 增加和减少mongodb复制集中的节点

    MongoDB Replica Sets不仅提供高可用性的解决方案,同时也提供负载均衡的解决方案,增减 Replica Sets节点在实际应用中非常普通.例如,当应用的读压力暴增时,3台节点的环境已不 ...

  2. scrollviews page分页实现方式

    代码 buttonX = 0; buttonW = 50; buttonH = 20; margin = (self.view.width - 5 * buttonW) / 6; CGFloat ym ...

  3. C++数据文件存储与加载(利用opencv)

    首先请先确认已经安装好了opencv3及以上版本. #include <opencv2/opencv.hpp>#include <iostream>#include <s ...

  4. Socket通讯简易学习

    Socket打开通信通道,告诉本地机器,愿意在该通道上接受客户请求——监听,等待客户请求——接受请求,创建专用链接进行读写——处理完毕,关闭专用链接——关闭通信通道(当然其中监听到关闭专用链接可以重复 ...

  5. RLock(递归锁)

    import threading, time def run1(): print("grab the first part data") lock.acquire()#进入大门后的 ...

  6. 如何移除 Navicat Premium for Mac 的所有文件

    作者:郭文峰链接:http://www.zhihu.com/question/24210959/answer/34579422来源:知乎著作权归作者所有,转载请联系作者获得授权. 数据库连接信息存放在 ...

  7. NSLayoutConstraint.constraintsWithVisualFormat详解,以及AlignAllCenterY

    NSLayoutConstraint.constraintsWithVisualFormat详解,以及AlignAllCenterY 转载2015-07-08 18:02:02 鉴于苹果官方文档的解释 ...

  8. 洛谷P1000 超级玛丽游戏

    这道题很简单,就是原样输出,只不过写起来有点恶心!!! code: #include<stdio.h> int main() { printf( " ********\n&quo ...

  9. Kali入门配置使用(一)

    一.Kali简介 1.1.相关连接 Kali百度百科:https://baike.baidu.com/item/Kali%20linux/8305689?fr=aladdin Kali wiki:ht ...

  10. 5.电影搜索之 自动填充,也叫autocomplete、搜索建议!

    什么叫自动填充,用过百度的应该都知道!当你输入关键词之后,会有一个下拉的候选列表,都是与你输入的内容相关的,这个就是自动填充的搜索建议.一般的搜索引擎或者站内搜索都会有这个功能. 今天分享下这个功能的 ...