分享

android自动化测试

 盈盈一书屋 2011-05-09

Android 自动化测试的相关方法

测试手段 1 CTS

用来确保某设备符合 Android 兼容性规范。原来想扩充它,不是正道。

测试手段 2 Monkey

1)     应用程序的开发者可以测试自己应用的鲁棒性。

2)     设备制造商可以使用猴子对自己的测试施行压力测试。看设备能坚持多久。

猴子测试即可以针对全局,也可以正对某个局部(某个 Category, package 等等)。

执行简单,效果明显。

测试手段 3: ASE

ASE 意思为 Android 脚本环境, 即我们可以通过脚本(比如 Python )调用 Android 的功能,从而定制一些测试。比如打电话,发短信,浏览网页,等。

 

我们可以扩充它的 API Java 部分) , 并用 python 脚本调用这些 API,  从而实现丰富的测试功能。

 

用于 API 部分可以访问到 Android 全部 API, python 又能灵活部署测试,所以 ASE 的扩展性非常好。

测试手段 4: Robotium

该工具用于黑盒的自动化测试。可以在有源码或者只有 APK 的情况下对目标应用进行测试。

Robotimu 提供了模仿用户操作行为的 API ,比如在某个控件上点击,输入 Text 等等。

测试手段 5 单元测试

Android 本身带有很多单元测试例子,我们可以按需要模仿它们,针对某个应用进行单元测试。

注意 Android Instrument 机制功能非常强大,可以测试 UI.

总结

对于 CTS/Monkey, 我们不需要开发,只要执行测试就可以了。

对于 ASE,  我们可以扩充它的现有 API(Java), Python 调用这些 API 实现丰富的测试功能。

Robotium 模仿普通用户行为,可以试着把一些原来由测试工程师做的测试变成 Robotium 自动化实现。

 

 

 

如何使用robotium进行自动化测试

  Robotium是一个测试框架能够方便你为Android应用程序编写强大、健壮的自动黑盒测试用例。

  利用Robotium的支持,用例开发人员能够编 写功能、系统和验收测试方案Robotium支持Activities、

  Dialogs、Toasts、Menus和Context Menus。

1.       创建一个简单的工程 (可参考本人的日志 《第一个应用 HelloWorld 》,需要对该工程稍做修改)作为被测程序, 运行后显示如下界面

 

 

2.       创建一个 Test Project

1).      打开 eclipse ,选择 File->New->Project…->Android Test Project ,点击 Next

 

 

 

2).      Test Project Name 中输入测试 工程的名称,如: HelloWorldTest 。选择 An existing Android Project ,点击右边的 Browse… 按钮。

 

3).      选择被测工程,如之前创建的 HelloWorldnp ,点击 OK 按钮。

 

4).      会自动选择和输入 Build Target Properties ,可以按照默认的,不用修改。

 

5).      一个新建的测试工程( HelloWorldTest )就创建好了,如下图:

 

 

3.       创建一个 Test Case

1).      HelloWorldTest->src->com.liliandroid.helloworld.test 上,右击选择 New->Class ,创建一个 Test Case

 

 

2).      Name 中输入 Test Case 的名字,如: UITextTest

 

3).      创建好的 Test Case 如下图:

 

 

4.       导入 robotium.jar

1).      选择测试工程 HelloWorldTest 右击,选择 Build Path->Configure Build Path…

 

 

2).      在打开的 Properties for HelloWorldTest 中点击 Add External JARs… 按钮。

 

3).      因为之前创建的工程的 SDK 2.2 的,所以选择 robotium-solo-1.8.0.jar

 

4).      点击 OK 按钮。

 

5.       修改 Test Case

打开 UITextTest.java ,输入以下内容并保存:

 

package com.liliandroid.helloworld.test;

 

import android.test.ActivityInstrumentationTestCase2;

 

import com.liliandroid.helloworld.ActivityMain;

import com.jayway.android.robotium.solo.Solo;

 

public class UITextTest extends ActivityInstrumentationTestCase2<ActivityMain>{

 

       private Solo solo ;

 

       public UITextTest() {

           super ( "com.liliandroid.helloworld" , ActivityMain. class );

           }

          

       public void setUp() throws Exception {

           solo = new Solo(getInstrumentation(), getActivity());

                }

               

       public void testUI() throws Exception {

           boolean expected = true ;

           boolean actual = solo .searchText( "This" ) && solo .searchText( "is" );

             assertEquals ( "This and/or is are not found" , expected, actual);

          

       }

 

   

}

 

注:这个 Case 是测试运行了 ActivityMain 后的界面上是否有 This is 这两个文字。

 

 

 

6.       运行测试程序

选择测试工程 HelloWorldTest 右击,选择 Run As->Android JUnit Test 运行测试程序

 

 

运行完后的测试结果界面( Pass

 

 

 

运行完后的测试结果界面( Fail

 


 

参考网址:

http://code.google.com/p/robotium/

 

http://hi.baidu.com/maguowei/home

http://www./?uid-115892-action-viewspace-itemid-223476

http://wenku.baidu.com/view/d8e404d149649b6648d74767.html

http://dejico./logs/82890579.html

http://blog.csdn.net/zjujoe/archive/2010/06/23/5689324.aspx

http://hi.baidu.com/tang157/blog/item/584bfbc611e8450b9d163dd9.html

http://tech./?p=171

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多