Android 自动化测试工具初探

前言

这段几乎都编写代码,没有新的心得体会.唯一由感想的是在测试上.由于策划的变动,接口的完善等因素,总在不停的修改功能,修改代码.由于项目中的代码都经过了好多少,又没有很好的架构规划.所以在修改或测试的时候难免会有遗漏的地方,这个时候就在想android是不是也应该有自动化测试工具来辅助测试.使得功能更完善点.本期的创新文档只能算是对自动化创新工具的一种简介.

1. Robotium

Robotium是一款测试Android App的测试框架,是基于Android测试框架InstrumentationTestCase2进行的2次封装,把一些基本操作又简化了一遍。它使得编写黑盒测试代码更加容易和稳定。通过使用Robotium,测试用例开发人员能够跨越多个Activity,开发出功能,系统以及验收测试用例。

1) 建被测试用例

编写简单的被测试用例并安装到测试机器上.

2) 创建测试用例

打开eclipse,选择File->New->Project…->Android Test Project创建DemoTest测试项目。并导入robotium-solo-1.6.0.jarjar

创建测试用例DemoTest.java并继承ActivityInstrumentationTestCase2,并在testDisplay方法中编写模拟测试步骤.代码如下:

public class DemoTest extends ActivityInstrumentationTestCase2{

private Solosolo;

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中还可以看到其执行过程报告和生成的事件。

更多相关文章

  1. Android手机终端长连接心跳检测自动化测试方案
  2. Growth发布iOS版 — 距今为止最好的开源“Web开发学习”应用
  3. 第2章 初识Android(安卓)App(第2讲)
  4. android运行时权限解决办法(含有申请权限已授权、权限被拒绝、权
  5. 使用Retrofit和Mockito进行可靠的Android(安卓)API测试
  6. Android之完美退出方法(2.1-2.2-2.3SDK版本测试通过)
  7. Android(安卓)6.0运行时权限勾选不再询问后该如何处理?
  8. 一张图告诉你Android手机系统更新多么混乱
  9. Android中如何使用rotate实现图片不停旋转的效果与动画的停止

随机推荐

  1. Android学习之路(二)之 我的第一个Android
  2. android主线程和子线程的区别
  3. 详解 Android(安卓)的 Activity 组件
  4. rotate旋转不间断动画
  5. Android中TextView的相应属性
  6. webservice android
  7. Android修改system只读权限:remount
  8. Android(安卓)菜单简析01(OptionsMenu)
  9. android Log图文详解(Log.v,Log.d,Log.i,
  10. 向eclipse中导入android中的sample样例+g