Android 自动化测试的相关方法 测试手段 1 : CTS用来确保某设备符合 Android 兼容性规范。原来想扩充它,不是正道。 测试手段 2 : Monkey1) 应用程序的开发者可以测试自己应用的鲁棒性。 2) 设备制造商可以使用猴子对自己的测试施行压力测试。看设备能坚持多久。 猴子测试即可以针对全局,也可以正对某个局部(某个 Category, package 等等)。 执行简单,效果明显。 测试手段 3: ASEASE 意思为 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
|
|