您的位置:首页 > 其它

淘宝移动设备测试框架TMTS

2013-06-01 18:38 323 查看
  TMTS(Taobao Mobile Test System)是一个用于Android的UI自动化测试工具,目前已经在淘蝌蚪上开源:http://code.taobao.org/project/view/565/,可以下载源代码和示例程序,下面以特性为主线介绍这部分。

  使用Java语言编写测试代码

  使用TMTS时,测试代码编写环境与应用开发环境完全相同,并且使用与应用开发相同的语言Java编写测试脚本,有助于测试人员编码能力的提高,提高阅读开发代码和定位Bug的能力。

  多种获取控件的方式

  TMTS目前可以通过三种方式获取控件。

  第一种方式是通过id查找:

public <T extends TmtsView> T findTmtsViewById(String name,

Class<T> returnType)
  通过传入在布局文件中声明的控件id获取控件,类似在应用开发中使用到findViewById()

  方法。所不同的是这里传入的是String类型参数,通过反射拿到其int值,因而测试工程也不需要再依赖于应用工程。

  第二种方式是通过文本查找,通过传入控件上的文本,可以获取TextView或者其子类:

public <T extends TmtsView> T findTmtsViewById(String name,

Class<T> returnType)
  第三种方式通过索引查找,获取当前界面内所有指定类型的控件,然后通过索引返回指定控件:

public <T extends TmtsView> T findTmtsViewByIndex(int index,

Class<? extends View> view, Class<T> returnType)
  面向对象的API

  获取到原生控件之后,会返回对应的TMTS类型控件,里面封装了对控件进行操作的API。这样可以让测试代码与应用代码有相同的OO风格,也有利于测试人员读懂应用代码,下面是一个测试方法的实例:

public void testScrollListInDialog() throws Exception {

pressMenu();

findTmtsTextViewByText("Dialog With List").doClick();

TmtsAbsListView listView = findListByIndex(0, TmtsAbsListView.class);

listView.scrollToLine(9);

assertEquals(9, listView.getLastVisiblePosition());

findTmtsTextViewByText("OK").doClick();

assertEquals("Botton OK in dialog with list is pressed!", findTmtsToast("").getText());

}
  而且面向对象的API受UI变动影响要较面向过程小,能编写出复用率高的测试脚本,这点在测试脚本达到一定数量后非常重要。

  支持多个Activity之间的跳转

  TMTS支持对多个Activity的测试,可以编写测试代码对应用的一个场景进行完整的测试,真实模拟用户的操作。

  对原生控件的良好支持

  TMTS非常好的支持了绝大多数原生控件,包括ContextMenu和Toast。

  提供了对WebView的支持

  TMTS目前提供了对WebView的支持。

  良好的可扩展性

  TMTS控件类采用了OO的设计思想,与原生控件的继承关系类似,用户可以根据自身应用的实际情况对框架作出扩展。

  完善的日志系统

  框架会记录每个测试类执行过程中的关键步骤日志,比如查找一个控件,在框架异常或是测试代码异常时会记录当时的调用栈信息,并截取屏幕保存至SD卡。所有的日志信息都会在Logcat中显示,同时持久化保存至设备SD卡,为异常或Bug定位提供更多有用的信息。

  支持项目持续构建

  可在Hudson上配置进行持续构建,具体步骤请参看http://code.taobao.org/trac/TMTS/wiki/ZhWikiStart,这里有非常详细的说明文档。

  TMTS使用方法

  1、首先搭建环境,也就是Android应用开发的环境,需要下载JDK1.5及以上版本,Android SDK,ADT,Eclipse3.5及以上版本。具体的过程这里就不叙述了。

  2、到http://code.taobao.org/project/565/viewSvn/下载TMTS源代码,其中Tmts是框架代码,将其导入Eclipse建立一个Java工程。TmtsApp是示例应用,TmtsTest是示例测试工程。

  3、在Eclipse中建立一个Android Test Project,工程配置TestTarget一项选择This project

  4、修改测试工程的Manifest文件,修改instrumentation标签的android:targetPackage属性,改为被测应用的包名

  5、接下来就可以开始编写测试代码了,更详细API使用方法请参看TmtsTest工程中的代码。

  6、Tmts Wiki是http://code.taobao.org/trac/TMTS/wiki/ZhWikiStart。

转自:http://www.51testing.com/html/19/n-247219.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: