设为首页 收藏本站
查看: 1354|回复: 0

[经验分享] 构建robotium+jenkins+TMTS可持续集成自动化测试

[复制链接]

尚未签到

发表于 2018-9-4 11:01:29 | 显示全部楼层 |阅读模式
  http://www.robotium.cn/archives/691
构建robotium+jenkins+TMTS可持续集成自动化测试
  作者 HUNTERNO4
  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包,放于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打包可以参考其它文章
  构建任务
  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下命令行中的命令是一样的
  填入如下命令:
  (
  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>  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也可以选择构建后发送邮件,构建后再执行其它任务等
  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包,放于tomcat的webapps目录下,启动tomcat将自动部署
  5.安装Android SDK
  http://developer.android.com/sdk/index.html
  在linux中搭建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下载下来
  所需软件是与Windows中一样的,只不过相应软件需要用Linux版,且需要注意32位与64位
  环境变量、Jenkins配置与Windows上差不多,略
  构建任务
  与Windows上的区别在于这里要执行的是shell命令
  Build项Add 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>  运行./athena时调用了athena-1.1.jar和ddmlib.jar,将实现截图与日志报告功能
  这里如果用的是原来淘宝athena-1.1.jar的话会报错:

  Test>  路径问题,见本文后面注意。
  构建后操作
  Post-build Actions勾选“Publish JUnit test result report”,填入TmtsTest/TEST-*.xml
  当然jenkins也可以选择构建后发送邮件,构建后再执行其它任务等
  注意:
  在Linux中构建ant自动打包用的build.xml文件时,有两处需要注意
  1.运行android相关tool工具的区别,Windows上有exe、bat后缀,而Linux上没有这些后缀,如果直接使用Windows上原来的build.xml文件
  将报找不到aapt.exe命令的错误,当然还有可能是aapt不能在64位机器的Linux上运行的原因(本文中的环境就是Ubuntu 64机器),如果你装的是64位机的话,此时需要安装32位支持库。
  
  
  
  
  
  
  
  2.Windows上与Linux上路径的区别
  在Windows上路径分隔符为\,而在Linux上路径分隔符为/,因此在build.xml文件中涉及路径的用/吧,因为这样对Windows上没影响,但Linux上可能就用不了
  在athena-1.1.jar包上程序上获取测试类时是通过路径的,如com\cplatformsurfdesktop\test\GridViewActivityTest在athena中会将其中的
  \全部转化为.  即得到com.cplatform.surfdesktop.test.GridViewActivityTest

  因此才能得到Test>  因此如果直接用原来的athena-1.1.jar包的话就会出错了
  修改源码中Athena.java文件

  将原来:className =>
  修改为:className =>  修改后重新导出为jar包即可使用


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-562400-1-1.html 上篇帖子: Centos 安装JAVA(JDK) 和jenkins 下篇帖子: Jenkins一种持续集成工具,用于监控持续重复的工作
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表