淘宝移动设备测试框架TMTS

发表于:2011-10-26 11:16

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:冰阳    来源:51testing 投稿

分享:

  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。

版权声明:51Testing软件测试网原创出品,转载时请务必以超链接形式标明文章原始出处、作者信息和本声明,否则将追究法律责任。

http://www.51testing.com

《2023软件测试行业现状调查报告》独家发布~

精彩评论

  • wxssaa
    2011-10-26 12:18:58

    好东西,值得一学啊,但我认为再好的框架也只能是借鉴,要适合自己的项目还是要做很多修改的

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号