淘宝移动设备测试框架TMTS
来源:互联网 发布:淘宝售后服务管理流程 编辑:程序博客网 时间:2024/05/16 06:54
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
- 淘宝移动设备测试框架TMTS
- 淘宝Android自动化测试框架 – TMTS
- 淘宝Android自动化测试框架 – TMTS
- Android自动化测试框架 – TMTS
- 移动设备UserAgent测试
- Android自动化测试之Tmts系统概述
- 移动设备的FM测试
- 移动设备测试自动化工具
- 移动设备App测试总结
- 移动信息设备框架(MIDP)
- 淘宝新UI自动化测试框架特点
- 移动自动化测试框架对比
- Windows下构建robotium+jenkins+TMTS可持续集成自动化测试
- Linux下构建robotium+jenkins+TMTS可持续集成自动化测试
- Windows下构建robotium+jenkins+TMTS可持续集成自动化测试
- 构建robotium+jenkins+TMTS可持续集成自动化测试
- 构建robotium+jenkins+TMTS可持续集成自动化测试
- Linux下构建robotium+jenkins+TMTS可持续集成自动化测试
- 一个程序员应该知道东西
- LightOJ 1418 - Trees on My Island (Pick`s theorem)
- 多通道语音合成
- .net中如何在服务器端获取客户端的html标签控件。
- KeServiceDescriptorTable 与 KeServiceDescriptorTableShadow
- 淘宝移动设备测试框架TMTS
- WSGI Webob Routes 实例
- X64 ubuntu 12.04 安装ADT后 adb无法启动
- 小记C语言指针p与*p
- 跟我一起写 Makefile(六)
- [C# 多线程处理系列专题八——对多线程的补充
- Myeclipse的axis插件安装精品
- Cannot open include file: 'opencv2/core/core_c.h': No such file or directory
- CV:learning resource linking VS. enterprises