jenkins执行自动化用例(详细、有用、mark 优先级高高高)
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 优先级高高高)的更多相关文章
- pytest文档30-功能用例与自动化用例完美对接(allure)
前言 做自动化做久了,经常会思考一个问题,到底别人是怎么做的自动化,跟自己的有啥不一样,看过不少书和资料,都是停留在demo的层面. 真正把自动化做的好的大牛又不屑于分享自己的劳动成果,所以大部分情况 ...
- 【Golang】基于录制,自动生成go test接口自动化用例
背景 之前写过一篇博客,介绍怎么用Python通过解析抓包数据,完成自动化用例的编写.最近这段时间在使用go test,所以就在想能不能也使用代码来生成自动化用例,快速提升测试用例覆盖率.说干就干. ...
- 纯python自研接口自动化脚本更新版本,让小白也能实现0到1万+的接口自动化用例
查看完整文章点击原文链接:纯python自研接口自动化脚本更新版本,让小白也能实现0到1万+的接口自动化用例 你是否还在用postman\jmeter做接口自动化吗?用python的开源框架[unit ...
- python+pytest接口自动化(12)-自动化用例编写思路 (使用pytest编写一个测试脚本)
经过之前的学习铺垫,我们尝试着利用pytest框架编写一条接口自动化测试用例,来厘清接口自动化用例编写的思路. 我们在百度搜索天气查询,会出现如下图所示结果: 接下来,我们以该天气查询接口为例,编写接 ...
- python+requests+yaml实现接口自动化用例
前言:最近也思考了一下怎么做接口自动化,以下内容属于自己目前阶段所学习到的内容,也逐渐投入自己实际工作中,把最近的学习新得跟大家分享下,话不多说,切入正题. 对接口自动化测试用例的思考:接口测试大多测 ...
- Android UI自动化用例设计技巧
一.封装方法 1.编程如何越来越快: 首先,需要经验丰富,知识面广. 其次,每一个熟练编程的人员,都会有自己的一个库,解决各种问题.各种通用的方法函数. 同理,自动化脚本也是编程,测试用例则为需求,U ...
- 命令行运行Android Robotium自动化用例或单元测试用例
本文目录 1.运行所有的测试用例 2.运行单个测试类或某个TestSuite 3.运行某个测试类里面的某个测试方法 4.运行两个不同的测试类或类中的方法 命令行运行Android Robotium自动 ...
- 【UI】自动化用例设计技巧
需要封装的方法: 公共的操作方法 经常使用的步骤:超过两次以上 经常使用的组件:输入框.文本框.列表 经常操作的布局:多个组件组成通用的布局 经常操作的页面:ui页面由一个一个单独Activity组成 ...
- 【Robot Framework 项目实战 03】使用脚本自动生成统一格式的RF自动化用例
背景 虽然大家都已经使用了统一的关键字,但是在检查了一些测试用例之后,还是发现因为大家对RF的熟悉程度不一导致的测试用例颗粒度差异很大的情况:而且在手动方式转化测试用例过程中,有不少工作是完全重复的且 ...
随机推荐
- vector容器类型
vector容器是一个模板类,可以存放任何类型的对象(但必须是同一类对象).vector对象可以在运行时高效地添加元素,并且vector中元素是连续存储的. vector的构造 函数原型: tem ...
- Java动态代理之InvocationHandler最简单的入门教程
网上关于Java的动态代理,Proxy和InvocationHandler这些概念有讲解得非常高深的文章.其实这些概念没有那么复杂.现在咱们通过一个最简单的例子认识什么是InvocationHandl ...
- Luogu P5351 Ruri Loves Maschera
先ORZ\(Owen\)一发.感觉是个很套路的题,这里给一个蒟蒻的需要特判数据的伪\(n\log^2 n\)算法,真正的两只\(\log\)的还是去看标算吧(但这个好想好写跑不满啊) 首先这种树上路径 ...
- linux下使用OpenCV的一些问题
完整正确的代码如下: import cv2 import numpy as np image = cv2.imread('Pictures/a.png') cv2.imshow('original_i ...
- CPP-基础:内存泄露及其检测工具
[转]浅谈C/C++内存泄露及其检测工具 对于一个c/c++程序员来说,内存泄漏是一个常见的也是令人头疼的问题.已经有许多技术被研究出来以应对这个问题,比如 Smart Pointer,Garba ...
- tp5 -- 腾讯云cos简单使用
因项目需要,本来是需要对接阿里云oss,但因客户错误将云存储买成腾讯云cos,因此简单做了个对象上传使用 首先下载cos的sdk: 三种方式在文档上面都有介绍 SDK 安装有三种方式:Composer ...
- sessionStorage 的数据会在同一网站的多个标签页之间共享吗?这取决于标签页如何打开
一直以来,我所以为的 sessionStorage 的生命周期是这样的:在 sessionStorage 中存储的数据会在当前浏览器的同一网站的多个标签页中共享,并在此网站的最后一个标签页被关闭后清除 ...
- Ubuntu18.04 下联想电脑 无法连接WIFI问题解决
联想笔记本电脑Ubuntu系统下无法开启无线硬件开关的解决.总结了3个方法,方便以后使用. 方法一: 一.问题描述: 本人使用联想拯救者14IFI笔记本在安装Ubuntu系统时会出现无线硬件开关关闭的 ...
- [php] 接口及方法和抽象类及方法的异同点
比较项目 接口 抽象类 方法是否有实体 无 抽象方法无实体,非抽象方法可以有实体 方法开闭性 public public,protected,private 重载方法的开闭性 public 必须与父类 ...
- XML,面向对象基础
什么是XML XML与JSON的对比 XML文档格式 使用XML模块解析 一,什么是XML ''' XML 全称可扩展标记语言 <tag></tag> 双标签 <tag/ ...