51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 1743|回复: 0
打印 上一主题 下一主题

【我分享】Windows下构建robotium+jenkins+TMTS可持续集成自动化测试

[复制链接]
  • TA的每日心情
    慵懒
    2017-7-9 10:38
  • 签到天数: 13 天

    连续签到: 1 天

    [LV.3]测试连长

    跳转到指定楼层
    1#
    发表于 2015-1-7 09:06:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    前言
    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 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也可以选择构建后发送邮件,构建后再执行其它任务等

    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-4-20 08:50 , Processed in 0.066413 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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