移动端测试_Robotium
工具介绍
一款国外的Android自动化测试框架,主要针对Android平台应用进行黑盒自动化测试,提供了模拟各种手势操作(点击、长按、滑动等),查找和断言机制的API。Robotium4.0已经支持对WebView的操作。Robotium是基于Instrumentation框架的,其编写的测试脚本与被测程序运行在同一个进程里面,所以需要测试程序与被测程序拥有相同的签名,否则无法进行通讯。
AS+Robotium
1.配置,build.gradle文件中添加依赖,如果编译时未同步成功,可以直接下载并在libs目录添加robotium-solo:5.3.1’的jar包
dependencies {
compile 'com.jayway.android.robotium:robotium-solo:5.3.1'
}
2.新建AS工程后,在AndroidTest目录下新建测试类,编写测试脚本。
测试类继承自ActivityInstrumentationTestCase2并在构造方法指定被测试的activity,测试脚本名以test开头即可。
【区分ActivityInstrumentationTestCase2、ActivityInstrumentationTestCase、InstrumentationTestCase】
例如:
/**创建NotePadTest类。泛型类参数类型是MainActivity(即待测试应用Mainactivity)*/
public class robotTest extends ActivityInstrumentationTestCase2<MainActivity> {
private Solo solo;
public robotTest(){ // 指定待测activity以便创建测试用例。必须有参构造方法指定activity
super(MainActivity.class);
}
public void setUp(){ // 测试案例置于setUp和tearDown方法之间
/* getInstrumentation()获取当前测试仪表盘,getActivity()获取当前待测试应用启动的活动对象*/
solo = new Solo(getInstrumentation(),getActivity()); // 创建Robotium测试机器人solo实例
}
public void testClickSure(){ // 编写测试案例
solo.clickOnText("testCase1");
}
public void tearDown(){
solo.finishOpenedActivities(); //关闭所有在测试用例执行期间打开的Activity
}
}
3.运行
APK测试
移动平台应用测试中,主要涉及两类应用:基于有源代码的项目测试和仅有APK安装包的项目。这两种情况下用robotium如何来实现对项目的自动化测试。
有源码APK
以AS为例,在工程的AndroidTest目录下新建测试类,并指定被测Activity,编写测试脚本进行测试。
无源码APK
【采用“去签名再签名”的方法对被测程序进行重签名】
1.在AS中点击File-Settings-plugins,搜索robotium recorder,安装该插件。重启AS后在Tools菜单栏下可以启动插件
2.将APK进行重签名,两种重签名方法如下:
2-1.debug.keystore方法
Jar下载:http://files.cnblogs.com/files/zh-ya-jing/re-sign.zip
操作:http://jingyan.baidu.com/album/bad08e1ee438e109c851213d.html?picindex=2
2-2.re-sign.jar方法
打开re-sign.jar并删除签名文件META-INF,拖动apk到re-sign.jar处,并点击保存;
-
在build.gradle中添加依赖
compile ‘com.jayway.android.robotium:robotium-solo:5.6.0’ -
在测试工程中的AndroidManifest.xml中做如下的配置
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android=&