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. Openjudge 1.13-23:区间内的真素数

    总时间限制:  1000ms 内存限制:  65536kB 描述 找出正整数 M 和 N 之间(N 不小于 M)的所有真素数. 真素数的定义:如果一个正整数 P 为素数,且其反序也为素数,那么 P 就 ...

  2. 卷积网络中的通道(Channel)和特征图

    转载自:https://www.jianshu.com/p/bf8749e15566 今天介绍卷积网络中一个很重要的概念,通道(Channel),也有叫特征图(feature map)的. 首先,之前 ...

  3. keras中的shape/input_shape

    在keras中,数据是以张量的形式表示的,张量的形状称之为shape,表示从最外层向量逐步到达最底层向量的降维解包过程.“维”的也叫“阶”,形状指的是维度数和每维的大小.比如,一个一阶的张量[1,2, ...

  4. XML解析(一) DOM解析

    XML解析技术主要有三种: (1)DOM(Document Object Model)文档对象模型:是 W3C 组织推荐的解析XML 的一种方式,即官方的XML解析技术. (2)SAX(Simple ...

  5. Respond.js-----20150415

    Respond.js让IE6-8支持CSS3 Media Query. Bootstrap里面就引入了这个js文件,从名字看出来是自适应的兼容.打开IE看了一下,效果挺好的,自适应的效果挺好的.Res ...

  6. 121. Best Time to Buy and Sell Stock@python

    Say you have an array for which the ith element is the price of a given stock on day i. If you were ...

  7. 简单的Redis数据迁移

    dump迁移 1.安装redis-dump工具 sudo apt-get install ruby rubygems ruby-devel -y gem sources --add http://ge ...

  8. 【实用工具】Teleport Pro爬取整个网站镜像到本地

    1. 使用Teleport Pro可以完全或部分下载一个网站上的内容,在硬盘上创建一个与原网站完全相同的镜象,使用户能够离线浏览 Teleport Pro的安装以及基本使用 在菜单栏Project下得 ...

  9. centos7中将python2.7.5版本升级到3.x版本

    一.安装gcc源码编译器 yum -y install gcc gcc-c++ pcre-devel zlib-devel openssl-devel 二.下载python软件包 wget https ...

  10. linux定时任务执行php任务

    首先用命令检查服务是否在运行 systemctl status crond.service 如果服务器上没有装有crontab ,则可以执行 yum install vixie-cron yum in ...