自信,努力,坚持

淘宝手机测试框架Tmts,系统概述

上一篇 / 下一篇  2011-10-25 15:18:21 / 个人分类:android

一、PC端

PC端提供工具集TmtsToolkit。它负责测试用例的执行和测试结果的收集,包括instrument日志,TmtsFramework生成的xml详细日志,及方便排查问题的截图。

Instrument Runner借鉴了Athena开源框架的执行方式,通过adb am instrument命令行方式逐个触发测试类中的测试方法。在测试脚本运行完后,收集命令行返回的结果,并对结果进行分析,决定pass/fail。

Log Fetcher读取TmtsFramework生成的xml详细日志,里面会提供比instrument命令行详细很多的信息,记录测试运行的过程,和失败发生的原因及发生时间。

Screen Capture基于ddmlib库,实现定时截取运行时的图片。并结合Log Fetcher拿到的时间信息,找出错误发生时刻的前后截图,作为错误排查的参考。

二、Device,手机

TmtsFramework是脚本的基础,大致分为四块:

1)Device,提供屏幕旋转,键盘模拟等功能。

2)View,提供TmtsView、TmtsTextView、TmtsWebView、TmtsToast等基本控件,及TmtsAbsListView等容器。并提供一系列方便操作的方法。

其中TmtsView是基类,提供click, focus等基本方法。还提供进一步查找的方法。

TmtsTextView是带文本的view,提供getText和setText方法

TmtsWebView提供内嵌Web页面的自动化功能。

TmtsToast提供getText方法,返回一闪即逝的Toast文本。

TmtsAbsListView为延迟加载机制提供了一些方便测试使用的方法,如getChildByIndex, scrollToLine等方法会等待加载完成后再往下翻页。

3)Finder实现所有的查找方法,返回View的实例。查找方式有ById(String)、ById(Int)、ByText、ByIndex。推荐使用ById(String)的方式,在控件界面位置变化的时候,不需要改脚本。

4)Logger,生成详细的xml日志,写到SD卡里。比logcat更灵活。像运行日志,失败信息,出错原因,都可以分标签写在xml里。

TestScripts使用TmtsFramework提供的接口,进行自动化脚本的编写。编写采用面向对象的方式,先通过Finder来定位返回一个具体的View的实例,再选择一个View的实例方法进行操作。

Instrument的执行方式,允许对已经安装好的Tao.apk进行测试,方便在发布前对准备发布的包进行验收自动化测试。保证被测的apk包,就是要发布的包。测试运行完后对被测包进行sign off,防止打包过程的失误引入故障。

三、Hudson

1)BuildApk,用于对Tao应用进行每日构建和发布前构建,我们现在每天都会打debug版和release版,所用的keystore不一样。Debug版用于eclipse调试。Daily run的是release版本。

现在非开源应用多是使用混淆的方式打包的,淘宝客户端也是一样。由于混淆版无法使用findViewById(String)的方式进行查找,给测 试带来麻烦。针对混淆版,我们在打包的时候,把R.java取出来,放到测试应用中编译,保证可以获得StringID与IntID的匹配关系。

2)BuildTestApk,会打包测试应用,生成测试包。如果被测开发使用混淆的话,还要引入R.java进行打包。

3)RunTest会把被测包Tao.apk和测试包TaoTest.apk安排到设备上,并触发TmtsToolkit运行。运行完之后,收集运行日志。TmtsToolkit提供junit格式日志方便直接与hudson集成。

4)CreateReport即最后的收集日志,统计结果,生成测试报表。通过邮件或旺旺消息,把每日构建的结果发送给测试和开发。点击这里,有一个日志的例子。


TAG:

 

评分:0

我来说两句

Open Toolbar