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持续集成自动化测试的更多相关文章

  1. 使用jenkins持续集成自动化测试

    本文采用Springboot开发一个简易的添加个人资料和查询个人资料接口,并采用testng进行测试,使用jenkis进行持续继承,allure输出测试报告. 个人资料查询接口开发(集成H2数据库) ...

  2. Jenkins持续集成_03_添加测试报告

    前言 Jenkins持续集成自动化测试项目后,可以在控制台输出中查看测试结果,但是这样排查起来往往不够直观.为了更直观的查看测试结果,可以在Jenkins上展示测试报告.测试报告中测试结果情况展示的更 ...

  3. Jenkins持续集成

    Jenkins持续集成 & .NET   最近受累于测试环境每次发布都很麻烦,而且我们有多个测试环境,因此专门抽时间做了Jenkins的配置和研究. 折腾了两天终于绿灯以后,先来个截图,Blu ...

  4. Linux-GitLab+Jenkins持续集成+自动化部署

    GitLab+Jenkins持续集成+自动化部署 什么是持续集成? (1)Continuous integration (CI) 持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个 ...

  5. .NET持续集成与自动化部署之路第一篇——半天搭建你的Jenkins持续集成与自动化部署系统

    .NET持续集成与自动化部署之路第一篇(半天搭建你的Jenkins持续集成与自动化部署系统) 前言     相信每一位程序员都经历过深夜加班上线的痛苦!而作为一个加班上线如家常便饭的码农,更是深感其痛 ...

  6. windows系统下构建Jenkins持续集成

    环境准备 windows10+tomcat+python3.x(安装方法自行百度) 安装Jenkins 从https://jenkins.io/download/ 下载war包 将war包放到tomc ...

  7. jenkins持续集成工作原理、功能、部署方式等介绍

    超详细的jenkins持续集成工作原理.功能.部署方式等介绍 原创 波波说运维 2019-08-29 00:01:00 概述 今天简单整理了一下jenkins的一些概念性内容,归纳如下: 1.概念 j ...

  8. 手把手教你利用Jenkins持续集成iOS项目

    前言 众所周知,现在App的竞争已经到了用户体验为王,质量为上的白热化阶段.用户们都是很挑剔的.如果一个公司的推广团队好不容易砸了重金推广了一个APP,好不容易有了一些用户,由于一次线上的bug导致一 ...

  9. python_java_selenium_ jenkins持续集成Firfox_chrome浏览器不显示的解决方法?

    python_java_selenium_ jenkins持续集成Firfox_chrome浏览器不显示的解决方法: 原因:因为jenkins是用windows installer 安装成 windo ...

随机推荐

  1. LeetCode Add Two Numbers 两个数相加

    /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode ...

  2. POJ1061 青蛙的约会 __一维世界的爱情

    由于今天上午在做数论知识的笔记,发现那时候赵老师讲的线性丢番图(求ax+by=c的特解)部分完全搞不懂,后来网上查了一下才发现这个公式就是求同余方程,所用方法就是扩展欧几里得算法.正好红皮书上有这么一 ...

  3. linux 命令——3 pwd (转)

    Linux中用 pwd 命令来查看”当前工作目录“的完整路径. 简单得说,每当你在终端进行操作时,你都会有一个当前工作目录. 在不太确定当前位置时,就会使用pwd来判定当前目录在文件系统内的确切位置. ...

  4. 小记:iOS 中一般对于 view 不依赖 model 的的两种代码书写形式

    一. 前言 对于在 MVC 的定义中,view 层是不引用 model 层,view 和 model 是不相往来的 一般开发中,我们都写过 在自定义 view 中增加一个 model 的属性,外接直接 ...

  5. Missing map from Nullable`1 to String. Create using Mapper.CreateMap<Nullable`1, String>. 解决办法

    这是一个叫做AutoMapper的插件,主要功能是让两个类的内容进行映射,最常见的例子就是EF查询出的内容映射到一个实体类上去然后返回这个实体类例如: Mapper.CreateMap(); 如果这时 ...

  6. 安装CocoaPods遇到的问题 及其解决

    本人也是第一次安装这个 CocoaPods,所以刚开始也是遇到了很多懵逼的问题,今天终于搞定了,就自己总结一下,如有错误敬请指出,谢谢! 由于之前,对于终端命令行,不是很了解,总感觉很麻烦,所以也一直 ...

  7. Angular2--显示数据

    1.插值表达式 要显示组件的属性,最简单的方式就是通过插值表达式来绑定属性名.要使用插值表达式,就把属性名包裹在双花括号里放进视图模板,如 {{}} eg: <h1>{{ name }}& ...

  8. 2017.12.25 Java中面向对象思想的深刻理解

    今日内容介绍 1.面向对象思想 2.类与对象的关系 3.局部变量和成员变量的关系 4.封装思想 5.private,this关键字 6.随机点名器 01面向对象和面向过程的思想 * A: 面向过程与面 ...

  9. PAT (Basic Level) Practise (中文)- 1001. 害死人不偿命的(3n+1)猜想 (15)

    http://www.patest.cn/contests/pat-b-practise/1001 卡拉兹(Callatz)猜想: 对任何一个自然数n,如果它是偶数,那么把它砍掉一半:如果它是奇数,那 ...

  10. 巧妙使用JQuery Clone 添加多行数据,并更新到数据库

    WEB代码: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="BatchAdd. ...