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{
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.51testing.com/?uid-115892-action-viewspace-itemid-223476
http://wenku.baidu.com/view/d8e404d149649b6648d74767.html
http://dejico.blogbus.com/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.j2bb.com/?p=171