Android 自动化测试工具初探java
这段几乎都编写代码,没有新的心得体会.惟一由感想的是在测试上.因为策划的变更,接口的完善等因素,总在不停的修改功能,修改代码.因为项目中的代码都通过了好多少,又没有很好的架构规划.因此在修改或测试的时候不免会有遗漏的地方,这个时候就在想android是否是也应该有自动化测试工具来辅助测试.使得功能更完善点.本期的创新文档只能算是对自动化创新工具的一种简介.android
Robotium是一款测试Android App的测试框架,是基于Android测试框架InstrumentationTestCase2进行的2次封装,把一些基本操做又简化了一遍。它使得编写黑盒测试代码更加容易和稳定。经过使用Robotium,测试用例开发人员可以跨越多个Activity,开发出功能,系统以及验收测试用例。架构
1) 建被测试用例app
编写简单的被测试用例并安装到测试机器上.框架
2) 建立测试用例eclipse
打开eclipse,选择File->New->Project…->Android Test Project建立DemoTest测试项目。并导入robotium-solo-1.6.0.jar的jar包ide
建立测试用例DemoTest.java并继承ActivityInstrumentationTestCase2类,并在testDisplay方法中编写模拟测试步骤.代码以下:工具
public class DemoTest extends ActivityInstrumentationTestCase2{测试
private Solosolo;this
private Activity activity;
public DemoTest() {
super("com.demo", DemoActivity.class);
}
@Override
protected void setUp() throws Exception {
super.setUp();
activity = this.getActivity();
solo = new Solo(getInstrumentation(), this.activity);
}
@Override
public void tearDown() throws Exception {
try {
solo.finalize();
} catch (Throwable e) {
e.printStackTrace();
}
activity.finish();
super.tearDown();
}
public void testDisplay() throws Exception {
//模拟输入
solo.enterText(R.id.editText, "刘峥");
//模拟点击
solo.clickOnButton("login");
}
}
3) 运行测试用例
选择测试工程DemoTest右击,选择Run As->Android JUnit Test运行测试程序,此时Robotium将会按照用例中编写的模拟测试轨迹来执行,其执行的结果以下图.
备注:更详细的资料能够在http://code.google.com/p/robotium/中获取.
此外再介绍一款测试用具android monkey
Monkey是一个命令行工具 ,能够运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流,实现对正在开发的应用程序进行压力测试。Monkey包括许多选项,它们大体分为四大类:
l 基本配置 选项,如设置尝试的事件数量。
l 运行约束选项,如设置只对单独的一个包进行测试。
l 事件类型和频率。
l 调试选项。
在Monkey运行的时候,它生成事件,并把它们发给系统。同时,Monkey还对测试中的系统进行监测,对下列三种状况进行特殊处理:
l 若是限定了Monkey运行在一个或几个特定的包上,那么它会监测试图转到其它包的操做,并对其进行阻止。
l 若是应用程序崩溃或接收到任何失控异常 ,Monkey将中止并报错。
l 若是应用程序产生了应用程序不响应(application not responding)的错误,Monkey将会中止并报错。
按照选定的不一样级别的反馈信息,在Monkey中还能够看到其执行过程报告和生成的事件。