移动端测试

当前位置:首页 > 移动端测试

大话移动APP测试Android 与iOS应用测试指南(第五章)(续)


5.6 Compatibuiteility Test S

Compatbility Test Suite简称Android CTS,这是-套Android原生提供的兼容性测试框架。只有通过CTS测试的移动设备才有可能获得Android 的商标及享受AndroidMarket的权限。Android 的CTS目的与意义:用户在Android系统中有更好的用户体验,并且展示Android应用的优越性,使得Android开发者更容易编写高质量的Andorid程序。

在搭建完Android环境之后,如果想要运行CTS,还需要单独下载-一个压缩包来支持运行CTS测试。下载地址是:

http://source . android . com/ compatibility/downloads . html

提示:有关CTS的安装和使用方法的介绍,在搜索引擎上已经泛滥了,这里就不做过多的讲解。详细可见官方文档:

htp://static.goog leusercontent.com/extermnal .content/untrusted _dlcp/source.android.com/zh-CN//compatibility/android-4. 3-cdd.pdf.

CTS框架也适合做修改,这样就变成一一个能够方 便地运行自动化测试用例的平台。

在我个人看来,CTS 不仅是-一个测试兼容性的工具,更是-一个Android自动化测试的代码库。有很多朋友说不知道怎么去写自动化测试用例,找不到比较合适的例子,CTS就是谷歌给我们的最宝贵的例子。下载源码之后(CTS 源码包括在Android系统源码中,在Git下载的时候可选择是否包含CTS),会发现源码中有不计其数的测试代码,是不是热血沸腾了?这里我就给大家举其中一个很简单很常见的例子,它是基于Android的Instrumentation原生测试框架编写的。关于Instrumentation 框架会在下一章“常见框架”中有详细说明。我们先来看一下 CTS的View_ LayoutPositionTest 类,

核心代码如下:

public class View_ Layout PositionTest
extends ActivityInst rumentat ionTes tCase2<ViewLayoutPosit ionTestStu
bActivity> {
private Activity mActivity;
public View LayoutPositionTest () {
super ("com. android.cts. stub", ViewLayoutPosit ionTestStubActivity.c
lass) ;
@Override
protected void setUp() throws Exception {
super .setUp() ;
mActivity = getActivity() ;
@UiThreadTest
public void testPositionInParent() {
View parent = mActivity. findViewById (R. id. testparent) ;
View view = mActivity. findViewById(R.id. testview) ;
int [] pLocation = new int[2] ;
int [ ] vLocation = new int[2] ;
Rect pRect = new Rect () ;
Rect vRect = new Rect() ;
// baseline not support in view
assertEquals(-1, view.getBaseline()) ;
parent . get LocationOnScreen (pLocation) ;
view. getLocat ionOnScreen (vLocation) ;
parent . get DrawingRect (pRect) ;
view. getDrawingRect (vRect) ;
int left = vLocation[0] - pLocation[0] ;
int top■vLocation[1] - pLocation[1];
int right = left + vRect.width() ;
int bottom = top + vRect .height() ;
assertEquals (left,view.getLeft()) ;
assertEquals (top, view.getTop()) ;
assertEquals (right, view.getRight()) ;
assertEquals (bottom, view. getBottom()) ;

这段代码是非常典型的使用Instrumentation 框架的例子。先通过findViewByld来获取被测应用Activity中的两个元素:

View parent = mActivity . findViewById (R. id. testparent) ;
View view = mActivi ty . findViewById (R. id. testview) ;

随后通过getLocationOnScreen (int[] location)方法来获取x、y坐标,并存入数组。

public void getLocationOnScreen (intO] location)
Adsed h APIteel1
Computes the coordinates of this view on the screen. The argument must be an aray of two
 integersr. 
Ater the method retums, the aray contains thex
sand y location in that order.
Parameters
location an alray of two integers in which to hold the coordinates

最后通过断言来确认Activity中的View控件离开屏幕的距离是否正确。

assertEquals (left,view.getLeft()) ;
assertEquals (top, view.getTop()) ;

相信.上面的例子对大家来讲非常简单,事实上CTS还有很多复杂的例子,并且涵盖了Android系统的各个模块,非常值得借鉴。我建议大家多去看看这些例子是怎么写的,这可以很好地帮助自己编写自动化测试。



相关内容

文章评论

表情

共 0 条评论,查看全部
  • 这篇文章还没有收到评论,赶紧来抢沙发吧~