Robotium接入到Jenkins持续集成自动化测试
6.3 将测试用例接入到Jenkins
由于我是自己学习的手机自动化测试,没有实际投入到工作中使用,jenkins的接入也没有具体操作,现摘抄一下网页:http://www.tuicool.com/articles/jIN7vu的内容,以供大家学习和验证。
“Windows下构建robotium+jenkins+TMTS可持续集成自动化测试”
6.3.1 TMTS简介
TMTS是淘宝的自动化测试构架,优缺点都较为明显
优点:最主要的就是已经实现出错截屏并提供日志
缺点:比较小众化,遇到问题也无人解答
自动化测试终究是要能够持续集成才能有更大的意义的,利用robotium+jenkins可以实现集成测试,但此时要想得到出错截屏加日志就麻烦了。
TMTS主要由三部分组成
(1)TmtsFramework进行自动化用例编写
(2)TmtsToolkit进行出错截屏与获取日志报告
(3)hudson进行apk包的自动打包、安装,并进行用例执行
TmtsFramework编写用例其实与robotium编写用例一样都是基于instrument的,因此想用robotium编写用例,而同时又想得到出错截屏与日志报告就完全可以使用robotium+TmtsToolkit ,因此就可以用robotium+jenkins+TmtsToolkit构建可持续集成自动化测试。
6.3.2 Windows下环境搭建软件安装
1.安装jdk
2.安装tomcat
http://tomcat.apache.org/download-70.cgi
3.安装ant
http://ant.apache.org/bindownload.cgi
4.安装jenkins
http://jenkins-ci.org/
下载war包,放于tomcat的webapps目录下,启动tomcat将自动部署
5.安装Android SDK
http://developer.android.com/sdk/index.html
搭建android开发环境,包括eclipse,ADT等
6.下载TMTS架构中的athena-1.1.jar、ddmlib.jar包
http://code.taobao.org/p/TMTS/src/branches/V1.1/trunk/android/AthrunTest/
当然最好把整个TMTS下载下来
环境变量PATH添加
\java\apache-ant-1.8.2\bin\
\java\android-sdk-windows\tools\
\java\android-sdk-windows\platform-tools\
\Java\jdk1.6.0_07\bin\
添加ANDROID_HOME
添加JAVA_HOME
添加ANT_HOME
有什么命令找不到了就加下PATH变量
tomcat启动
运行 \java\apache-tomcat-7.0.8\bin\startup.bat
jenkins配置
浏览器访问 http://localhost:8080/jenkins
插件安装
Hudson Subversion Plug-in,jenkins的svn插件
Android Emulator Plugin,android模拟器插件
JUnit Attachments Plugin,junit测试报告附件插件
Email-ext plugin,邮件扩展插件。此处说明下,默认Jenkins只会发送构建失败的邮件,我们需安装此插件才能自定义不同场景
除了这些之外还可以安装其它一些插件,那样可以使得Jenkins非常强大,需要什么安装什么构建build.xml文件,使用ant自动打apk包,构建build.xml文件及ant打包可以参考其它文章。
6.3.3 构建测试任务
现在使用jenkins来构建我们自己的测试任务:
(1)使用jenkins新建任务时,填入任务名称,选择“构建一个自由风格的软件项目”,以后新建类似任务时则可以选择“复制现有任务”。
(2)勾选“This build is parameterized”进行参数化构建 Add Parameter项选择Choice,填入Name项:ANDROID_AVD_DEVICE;填入Choices项:emulator-5554(为模拟器序列号,adb devices将显示当前连接的设备序列)。
(3)进行SVN代码库关联 Source Code Management选择“Subversion”,Repository URL中填入SVN地址 。
(4)添加构建步骤 Build项Add build step中选择“Execute Windows batch command”, 这里填的命令与Windows中cmd下命令行中的命令是一样的。
A,填入如下命令:
(
cd TmtsApp\tool
ant
adb -s %ANDROID_AVD_DEVICE% uninstall com.taobao.tmts.framework.app
adb -s %ANDROID_AVD_DEVICE% install apk\TmtsApp.apk
)
根据实际需要cd到相应目录,卸载apk包、安装apk包
B,再下拉添加一个Execute Windows batch command
(
cd TmtsTest\tool
test-packet.bat
adb -s %ANDROID_AVD_DEVICE% uninstall com.taobao.tmts.framework.test
adb -s %ANDROID_AVD_DEVICE% install apk\TmtsTest.apk
)
根据实际需要cd到相应目录,卸载测试工程的apk包、安装测试工程的apk包。
C,再下拉添加一个Execute Windows batch command
echo %ANDROID_AVD_DEVICE%
cd TmtsTest
del TEST-*.xml /q
(
athena . "TEST-GridViewActivityTest.xml" %ANDROID_AVD_DEVICE%
com.taobao.tmts.framework.test.GridViewActivityTest
athena . "TEST-ListViewActivityTest.xml" %ANDROID_AVD_DEVICE% com.taobao.tmts.framework.test.ListViewActivityTest athena . "TEST-MainActivityTest.xml" %ANDROID_AVD_DEVICE% com.taobao.tmts.framework.test.MainActivityTest
)
这里调用的是athena.bat文件进行批处理
robotium中单个用例执行是类似这样的:
adb shell am instrument -w -e class com.megafon.test.MegafonTest#testDeleteContact
com.megafon.test/android.test.InstrumentationTestRunner
athena.bat内容如下:
java -cp athena-1.1.jar;ddmlib.jar com.synaptik.athena.Athena %1 %2 %3 %4 E:\\android\\upload
调用了athena-1.1.jar和ddmlib.jar,所有这里与TMTS相关的其实就是需要这两个jar包以实现截图与日志报告功能。
(5)构建后操作
Post-build Actions勾选“Publish JUnit test result report”,填入TmtsTest \TEST-*.xml
当然jenkins也可以选择构建后发送邮件,构建后再执行其它任务等。
转自:http://blog.sina.com.cn/s/blog_68f262210102vrfu.html
Robotium接入到Jenkins持续集成自动化测试的更多相关文章
- 使用jenkins持续集成自动化测试
本文采用Springboot开发一个简易的添加个人资料和查询个人资料接口,并采用testng进行测试,使用jenkis进行持续继承,allure输出测试报告. 个人资料查询接口开发(集成H2数据库) ...
- Jenkins持续集成_03_添加测试报告
前言 Jenkins持续集成自动化测试项目后,可以在控制台输出中查看测试结果,但是这样排查起来往往不够直观.为了更直观的查看测试结果,可以在Jenkins上展示测试报告.测试报告中测试结果情况展示的更 ...
- Jenkins持续集成
Jenkins持续集成 & .NET 最近受累于测试环境每次发布都很麻烦,而且我们有多个测试环境,因此专门抽时间做了Jenkins的配置和研究. 折腾了两天终于绿灯以后,先来个截图,Blu ...
- Linux-GitLab+Jenkins持续集成+自动化部署
GitLab+Jenkins持续集成+自动化部署 什么是持续集成? (1)Continuous integration (CI) 持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个 ...
- .NET持续集成与自动化部署之路第一篇——半天搭建你的Jenkins持续集成与自动化部署系统
.NET持续集成与自动化部署之路第一篇(半天搭建你的Jenkins持续集成与自动化部署系统) 前言 相信每一位程序员都经历过深夜加班上线的痛苦!而作为一个加班上线如家常便饭的码农,更是深感其痛 ...
- windows系统下构建Jenkins持续集成
环境准备 windows10+tomcat+python3.x(安装方法自行百度) 安装Jenkins 从https://jenkins.io/download/ 下载war包 将war包放到tomc ...
- jenkins持续集成工作原理、功能、部署方式等介绍
超详细的jenkins持续集成工作原理.功能.部署方式等介绍 原创 波波说运维 2019-08-29 00:01:00 概述 今天简单整理了一下jenkins的一些概念性内容,归纳如下: 1.概念 j ...
- 手把手教你利用Jenkins持续集成iOS项目
前言 众所周知,现在App的竞争已经到了用户体验为王,质量为上的白热化阶段.用户们都是很挑剔的.如果一个公司的推广团队好不容易砸了重金推广了一个APP,好不容易有了一些用户,由于一次线上的bug导致一 ...
- python_java_selenium_ jenkins持续集成Firfox_chrome浏览器不显示的解决方法?
python_java_selenium_ jenkins持续集成Firfox_chrome浏览器不显示的解决方法: 原因:因为jenkins是用windows installer 安装成 windo ...
随机推荐
- sqlserver锁表、解锁、查看销表
锁定数据库的一个表 代码如下 复制代码 SELECT * FROM table WITH (HOLDLOCK) 注意: 锁定数据库的一个表的区别 代码如下 复制代码 SELECT * FROM tab ...
- linux 命令——45 free(转)
free命令可以显示Linux系统中空闲的.已用的物理内存及swap内存,及被内核使用的buffer.在Linux系统监控的工具中,free命令是最经常使用的命令之一. 1.命令格式: free [参 ...
- 【洛谷1967】货车运输(最大生成树+倍增LCA)
点此看题面 大致题意: 有\(n\)个城市和\(m\)条道路,每条道路有一个限重.多组询问,每次询问从\(x\)到\(y\)的最大载重为多少. 一个贪心的想法 首先,让我们来贪心一波. 由于要求最大载 ...
- 2018.10.05 TOPOI提高组模拟赛 解题报告
得分: \(100+5+100=205\)(真的是出乎意料) \(T1\):抵制克苏恩(点此看题面) 原题: [BZOJ4832][Lydsy1704月赛] 抵制克苏恩 应该还是一个比较简单的\(DP ...
- Problem G: 圆周率
Problem G: 圆周率 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 155 Solved: 99[Submit][Status][Web Bo ...
- Problem D: 双向冒泡排序
Problem D: 双向冒泡排序 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 447 Solved: 197[Submit][Status][We ...
- 1.VS Code 开发C#入门 安装Dotnet core
1. dot.net 网站 下载 .NET Core 1.0 (https://www.microsoft.com/net/download/core) 2. 打开命名提示符: 3.dotnet ...
- SQLAlchemy简介
一.SQLAlchemy简介 SQLAlchemy是Python SQL工具包和对象关系映射器,是python中最著名的ORM(Object Relationship Mapping)框架,它简化了应 ...
- ES6 Promise用法详解
What is Promise? Promise是一个构造函数,接受一个参数(Function),并且该参数接受两个参数resolve和reject(分别表示异步操作执行成功后的回调函数.执行失败后的 ...
- javaweb基础(26)_jsp标签库开发二
一.JspFragment类介绍 javax.servlet.jsp.tagext.JspFragment类是在JSP2.0中定义的,它的实例对象代表JSP页面中的一段符合JSP语法规范的JSP片段, ...