Linux+AS Android源码apk的Robotium自动化测试

最近在研究AndroidStudio+Robotium的自动化测试,由于是刚接触编写自动化测试代码,就在网上找了找了例子,但是看到的大部分都是eclipse的,用as的很少,而且没有一个是基于Linux下android源码的,现在和大家分享一下简单apk的robotium自动化测试,文中主要说的是一些环境的配置,代码编写方面不够全面,大家可以参考其他文章,对于安卓源码apk的自动化测试,通过终端命令进行自动化测试的例子正在完善中,后续将会发表。


基本环境配置:
JDK1.7、Android SDK (minimum API=11;target API=22)
Android Studio version 2.X
Gradle version 2.12+

1 首先创建一个新工程,按示next,最后finish。

当项目创建成功后,若出现下面的错误,可打开与app同级目录下的build.gradle,将
dependencies {
        classpath 'com.android.tools.build:gradle:2.1.0-alpha4'
}
中的2.1.0-alpha4 改为 1.3.0 ,此处改完之后可能会导致gradle编译时无法通过,但是通过android studio本身的编译系统对单独的apk进行编译与运行。建议下载版本较高的android studio则不会出现这种情况,下载地址:http://www.androiddevtools.cn/。


当修改完此处,若出现如下错误,说明gradle版本过低,gradle版本应使用2.12以上的版本,可点击错误提示中的Gradle Setting 或 在设置中按如下配置。此步配置完成后,基本不会再出现Gradle错误。




2  将robotiumd 的jar包复制到工程的libs目录下,右键点击jar包,在下拉菜单中点击 Add as library... ,Android Studio 2.2 Preview7好像会自动执行此步骤。

3 打开app目录下的build.gradle文件,在
defaultConfig {
        applicationId "com.ontim.robotiumtest6"
        minSdkVersion 19
        targetSdkVersion 24
        versionCode 1
        versionName "1.0"
}
中加入testInstrumentationRunner "android.test.InstrumentationTestRunner"
同时,在被测activity的AndroidMainFest.xml中加入
<instrumentation
        android:name="android.test.InstrumentationTestRunner"
        android:targetPackage="com.ontim.robotiumtest6" />
Instrumentation和application同级,name需和app目录下build.gradle文件中的testInstrumentationRunner 相同,如若不同,会出现以下错误:

Test running failed: Unable to find instrumentation info for: ComponentInfo{com.example.ontim.myapplication.test/android.test.InstrumentationTestRunner}

在Android Studio 2.2 Preview7中会存在testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 这句话,直接删除即可,targetPackage为被测activity所在的包名;
然后在
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:24.2.0'
}
中加入androidTestCompile "com.jayway.android.robotium:robotium-solo:5.5.4"

4 测试代码编写
在app/src/androidTest/下新建测试类RobotiumTest  extends ActivityInstrumentationTestCase2,首先,声明一个Solo类对象private Solo solo;其次,创建default Constructor、重写 setUp() (此方法用来做一些初始化操作,比如初始化solo)、 tearDown() (此方法用来做一些资源清理工作),最后创建以test为前缀的测试方法进行测试。以下为对默认创建的Activity进行测试的代码,以EditText为例。
public class RobotiumTest extends ActivityInstrumentationTestCase2 {

    private Solo solo;

    public RobotiumTest() {
        super(MainActivity.class); // 被测试类
    }

    @Override
    public void setUp() throws Exception {
        solo = new Solo(getInstrumentation(),getActivity());
    }

    @Override
    public void tearDown() throws Exception {
        solo.finishOpenedActivities();
    }

    public void testEdit() throws Exception {
        solo.sleep(2000);
        solo.clearEditText(0);
        solo.enterText(0, "Hello RoboTest");
    }

}

5 将手机与电脑连接,在Android Studio中,右键刚刚创建的测试类(RobotiumTest),在弹出的菜单中点击Run ‘RobotiumTest’,即可在手机上查看运行结果。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值