构建robotium+jenkins+TMTS可持续集成自动化测试

108 篇文章 0 订阅
10 篇文章 0 订阅

Windows下构建robotium+jenkins+TMTS可持续集成自动化测试

前言
TMTS
是淘宝的自动化测试构架,优缺点都较为明显
优点:最主要的就是已经实现出错截屏并提供日志
缺点:比较小众化,遇到问题也无人解答

自动化测试终究是要能够持续集成才能有更大的意义的,利用robotium+jenkins可以实现集成测试,但此时要想得到出错截屏加日志就麻烦了。
TMTS
主要由三部分组成
1.TmtsFramework
进行自动化用例编写
2.TmtsToolkit
进行出错截屏与获取日志报告
3.hudson
进行apk包的自动打包、安装,并进行用例执行

TmtsFramework编写用例其实与robotium编写用例一样都是基于instrument的,因此想用robotium编写用例,而同时又想得到出错截屏与日志报告
就完全可以使用robotium+TmtsToolkit

因此就可以用robotium+jenkins+TmtsToolkit构建可持续集成自动化测试

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包,放于tomcatwebapps目录下,启动tomcat将自动部署
5.安装Android SDK

http://developer.android.com/sdk/index.html

搭建android开发环境,包括eclipseADT
6.下载TMTS架构中的athena-1.1.jarddmlib.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-injenkinssvn插件
Android Emulator Pluginandroid模拟器插件
JUnit Attachments Pluginjunit测试报告附件插件
Email-ext plugin,邮件扩展插件。此处说明下,默认Jenkins只会发送构建失败的邮件,我们需安装此插件才能自定义不同场景
除了这些之外还可以安装其它一些插件,那样可以使得Jenkins非常强大,需要什么安装什么

构建build.xml文件,使用ant自动打apk包,构建build.xml文件及ant打包可以参考其它文章

构建任务
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.添加构建步骤
BuildAdd build step中选择“Execute Windows batch command”
这里填的命令与Windowscmd下命令行中的命令是一样的
填入如下命令:
(
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

再下拉添加一个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

再下拉添加一个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.jarddmlib.jar,所有这里与TMTS相关的其实就是需要这两个jar包以实现截图与日志报告功能

5.构建后操作
Post-build Actions勾选“Publish JUnit test result report”,填入TmtsTest\TEST-*.xml
当然jenkins也可以选择构建后发送邮件,构建后再执行其它任务等

Linux下构建robotium+jenkins+TMTS可持续集成自动化测试

前言
为什么要在Linux上构建自动化环境呢?
因为在Linux上执行速度要比在Windows快很多,以打包apk为例,至少快一倍。。。
如果公司每个版本要打几百个apk渠道包,这效率将大幅提升。

软件安装
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包,放于tomcatwebapps目录下,启动tomcat将自动部署
5.安装Android SDK

http://developer.android.com/sdk/index.html

linux中搭建android开发环境,包括eclipseADT
6.下载TMTS架构中的athena-1.1.jarddmlib.jar

http://code.taobao.org/p/TMTS/src/branches/V1.1/trunk/android/AthrunTest/

当然最好把整个TMTS下载下来

所需软件是与Windows中一样的,只不过相应软件需要用Linux版,且需要注意32位与64

环境变量、Jenkins配置与Windows上差不多,略

构建任务

Windows上的区别在于这里要执行的是shell命令
BuildAdd build step中选择“Execute Shell”

(
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
注意:在对ANDROID_AVD_DEVICE这个参数进行参数构建时,Windows中是用两个%%%ANDROID_AVD_DEVICE%
Linux中变量则用$表示,即$ANDROID_AVD_DEVICE

再下拉添加一个“Execute Shell”
(
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
再下拉添加一个“Execute Shell”

echo $ANDROID_AVD_DEVICE
cd TmtsTest

rm -rf TEST-*.xml
(
./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
)

这里需要将Windows中的athena.bat修改成Linux中的athena脚本文件并进行执行
athena.bat文件内容:java -cp athena-1.1.jar;ddmlib.jar com.synaptik.athena.Athena %1 %2 %3 %4 E:\\android\\upload
修改为athena文件:java -cp athena-1.1.jar:ddmlib.jar com.synaptik.athena.Athena $1 $2 $3 $4 /usr/upload
robotium中单个用例执行是类似这样的:
adb shell am instrument -w -e class com.megafon.test.MegafonTest#testDeleteContact com.megafon.test/android.test.InstrumentationTestRunner
运行./athena时调用了athena-1.1.jarddmlib.jar,将实现截图与日志报告功能
这里如果用的是原来淘宝athena-1.1.jar的话会报错:
Test class com/taobao/tmts/framework/test/GridViewActivityTest un-match com.cplatform.surfdesktop.test.GridViewActivityTest , continue next…
路径问题,见本文后面注意。

构建后操作
Post-build Actions勾选“Publish JUnit test result report”,填入TmtsTest/TEST-*.xml
当然jenkins也可以选择构建后发送邮件,构建后再执行其它任务等

注意:
Linux中构建ant自动打包用的build.xml文件时,有两处需要注意
1.运行android相关tool工具的区别,Windows上有exebat后缀,而Linux上没有这些后缀,如果直接使用Windows上原来的build.xml文件
将报找不到aapt.exe命令的错误,当然还有可能是aapt不能在64位机器的Linux上运行的原因(本文中的环境就是Ubuntu 64机器),如果你装的是64位机的话,此时需要安装32位支持库。
<condition property=”exe” value=”.exe” else=”"><os family=”windows” /></condition>
<condition property=”bat” value=”.bat” else=”"><os family=”windows” /></condition>
<property name=”aapt” value=”${android_platform-tools}/aapt${exe}” />
<property name=”aidl” value=”${android_platform-tools}/aidl${exe}” />
<property name=”dx” value=”${android_platform-tools}/dx${bat}” />
<property name=”apk-builder” value=”${android-tools}/apkbuilder${bat}” />
<property name=”proguard-home” value=”${android-tools}/proguard/lib”/>

2.Windows上与Linux上路径的区别
Windows上路径分隔符为\,而在Linux上路径分隔符为/,因此在build.xml文件中涉及路径的用/吧,因为这样对Windows上没影响,但Linux上可能就用不了

athena-1.1.jar包上程序上获取测试类时是通过路径的,如com\cplatformsurfdesktop\test\GridViewActivityTestathena中会将其中的
\全部转化为.  即得到com.cplatform.surfdesktop.test.GridViewActivityTest
因此才能得到Test class com.taobao.tmts.framework.test.GridViewActivityTest match com.cplatform.surfdesktop.test.GridViewActivityTest,然后执行用例
因此如果直接用原来的athena-1.1.jar包的话就会出错了

修改源码中Athena.java文件
将原来:className = className.replaceAll(“\\\\”, “\\.”);     //用于将所有\转化为.

修改为:className = className.replaceAll(“/”, “\\.”);        //用于将所有/转化为.

修改后重新导出为jar包即可使用


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
项目:使用 JavaScript 编写的杀死幽灵游戏(附源代码) 杀死鬼魂游戏是使用 Vanilla JavaScript、CSS 和 HTML 画布开发的简单项目。这款游戏很有趣。玩家必须触摸/杀死游荡的鬼魂才能得分。您必须将鼠标悬停在鬼魂上 - 尽量得分。鬼魂在眨眼间不断从一个地方移动到另一个地方。您必须在 1 分钟内尽可能多地杀死鬼魂。 游戏制作 这个游戏项目只是用 HTML 画布、CSS 和 JavaScript 编写的。说到这个游戏的特点,用户必须触摸/杀死游荡的幽灵才能得分。游戏会根据你杀死的幽灵数量来记录你的总分。你必须将鼠标悬停在幽灵上——尽量得分。你必须在 1 分钟内尽可能多地杀死幽灵。游戏还会显示最高排名分数,如果你成功击败它,该分数会在游戏结束屏幕上更新。 该游戏包含大量的 javascript 以确保游戏正常运行。 如何运行该项目? 要运行此游戏,您不需要任何类型的本地服务器,但需要浏览器。我们建议您使用现代浏览器,如 Google Chrome 和 Mozilla Firefox。要玩游戏,首先,单击 index.html 文件在浏览器中打开游戏。 演示: 该项目为国外大神项目,可以作为毕业设计的项目,也可以作为大作业项目,不用担心代码重复,设计重复等,如果需要对项目进行修改,需要具备一定基础知识。 注意:如果装有360等杀毒软件,可能会出现误报的情况,源码本身并无病毒,使用源码时可以关闭360,或者添加信任。
javascript 中的 Paint War Game 是使用 HTML、CSS 和 JavaScript 开发的。谈到游戏玩法,这款游戏的主要目标是建造比敌人更多的油漆砖。您所要做的就是使用 WASD 键输入玩家的动作。您可以使用 VS Code 来运行该项目。 关于项目 每次您的玩家走过一块瓷砖时,它都会被涂成您的团队颜色。您必须在同一块瓷砖上走 4 次才能获得更多游戏点数。瓷砖会被您的团队挡住,并且不能再被偷走。如果您走过另一支球队的瓷砖,它会像您第一次走过时一样被涂上颜色。如果您创建一个封闭的被阻挡瓷砖图形,图形内所有未被阻挡的瓷砖都将固定为您的团队颜色。这个游戏充满乐趣,创造和重新即兴发挥会更有趣。 要运行此项目,我们建议您使用现代浏览器,例如 Google Chrome、  Mozilla Firefox。该游戏可能还支持 Explorer/Microsoft Edge。 演示: javascript 中的 Paint War Game 是使用 HTML、CSS 和 JavaScript 开发的。谈到游戏玩法,这款游戏的主要目标是建造比敌人更多的油漆砖。您所要做的就是使用 WASD 键输入玩家的动作。您可以使用 VS Code 来运行该项目。 关于项目 每次您的玩家走过一块瓷砖时,它都会被涂成您的团队颜色。您必须在同一块瓷砖上走 4 次才能获得更多游戏点数。瓷砖会被您的团队挡住,并且不能再被偷走。如果您走过另一支球队的瓷砖,它会像您第一次走过时一样被涂上颜色。如果您创建一个封闭的被阻挡瓷砖图形,图形内所有未被阻挡的瓷砖都将固定为您的团队颜色。这个游戏充满乐趣,创造和重新即兴发挥会更有趣。 要运行此项目,我们建议您使用现代浏览器,例如 Google Chrome、  Mozilla Firefox。该游戏可能还支持 Explorer/Microsoft Edge。 演示: 该项目为国外大神项目,可以作为毕业设计的项目,也可以作为大作业项目,不用担心代码重复,设计重复等,如果需要对项目进行修改,需要具备一定基础知识。 注意:如果装有360等杀毒软件,可能会出现误报的情况,源码本身并无病毒,使用源码时可以关闭360,或者添加信任。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值