博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Robotium只有apk文件时进行测试
阅读量:4050 次
发布时间:2019-05-25

本文共 2639 字,大约阅读时间需要 8 分钟。

     首先:设置环境变量

1. 配置ANDROID_HOME为android sdk的安卓目录,例如:D:\android-sdk

2. 在path下添加这两个:

%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools;

   
  其次: 安装签名文件

1. 因为robotium要求被测应用和测试代码要有一致的签名, 所以我们需要把下载到的apk,通过re-sign.jar来产生debug key的apk,这个重新生成的apk就会跟测试项目签名一致了

re-sign.jar可以从这里下载到:

http://www.troido.de/re-sign.jar

2. 下载完后,在命令行下 通过 java -jar re-sign.jar就会出现一个节目,然后将apk拖到这个节目,就会自动生成一个debug key的apk

产生新apk的过程中会弹出一个信息框,记得截下图,因为里面有两个信息我们等会的代码中需要用到

3. 安装产生的apk。然后打开模拟器(模拟器器一定要打开才能安装成功),然后打开命令行  adb install mitalk_debug.apk(新生成apk的名称) , 或者双击apk文件也可以安装

安装成功就可以再模拟器里看到该应用的图标了

    
然后:创建项目(使用米聊apk)

1. 打开Eclipse,点击File->New一个Android Test Project  ApkTest, 然后点击下一步的时候选择This project(因为我们没有米聊应用的源码),然后选择要在哪个android版本上测试

2. 在该项目下创建一个包,com.mitalk.test,在该包下创建LoginTest类,如下

package com.mitalk.test;

//需要导入的包

import android.app.Activity;

import android.test.ActivityInstrumentationTestCase2;

import com.jayway.android.robotium.solo.Solo;

@SuppressWarnings("rawtypes")

public class LoginTest extends ActivityInstrumentationTestCase2 {

       //定义变量

public Solo solo;

public Activity activity;

private static Class<?> launchActivityClass;

//对应re-sign.jar生成出来的信息框里的两个值

private static String mainActiviy = "com.xiaomi.channel.ui.ChannelLauncherActivity";

private static String packageName = "com.xiaomi.channel";

static {

try {

launchActivityClass = Class

.forName(mainActiviy);

} catch (ClassNotFoundException e) {

throw new RuntimeException(e);

}

}

@SuppressWarnings("unchecked")

public LoginTest() {

super(packageName, launchActivityClass);

}

@Override

protected void setUp() throws Exception {

super.setUp();

this.activity = this.getActivity();

this.solo = new Solo(getInstrumentation(), getActivity());

}

public void testLoginWithIncorrentUsernameAndPassword() {

              //一定时间内等待text出现,否则就出错

              solo.waitForText("Log In", 1, 10000);

              //点击text “Log In”

              solo.clickOnText("Log In");

              //一定时间内等待text出现,否则就出错

              solo.waitForText("OK", 1, 2000);

              //输入text

              solo.enterText(0, "13559494170");
              solo.enterText(1, "123456");

              //点击text “OK”

              solo.clickOnText("OK");

              //等待出现下面的text后,进行验证

              solo.waitForText("Incorrect ID number or password.", 1, 10000);
              assertTrue(solo.searchText("Incorrect ID number or password.",true));

}

@Override

public void tearDown() throws Exception {

try {

this.solo.finishOpenedActivities();

} catch (Throwable e) {

e.printStackTrace();

}

this.activity.finish();

super.tearDown();

}

}

3. 右键该项目,选择property然后选择java build path, 选择 Add External JARs,选择下到的
robotium.jar

4. 在跑测试用例之前,还需要修改下AndroidManifest.xml文件的android:targetPackage为被测应用的根的包名

  <instrumentation
        android:name="
android.test.InstrumentationTestRunner"
        android:targetPackage="
com.xiaomi.channel" />
    
最后: run as android junit test,就可以进行测试了

转载地址:http://skjci.baihongyu.com/

你可能感兴趣的文章
通过C++反射实现C++与任意脚本(lua、js等)的交互(二)
查看>>
利用清华镜像站解决pip超时问题
查看>>
微信小程序开发全线记录
查看>>
CCF 分蛋糕
查看>>
解决python2.7中UnicodeEncodeError
查看>>
小谈python 输出
查看>>
Django objects.all()、objects.get()与objects.filter()之间的区别介绍
查看>>
python:如何将excel文件转化成CSV格式
查看>>
机器学习实战之决策树(一)
查看>>
机器学习实战之决策树二
查看>>
[LeetCode By Python]7 Reverse Integer
查看>>
[LeetCode By Python]121. Best Time to Buy and Sell Stock
查看>>
[LeetCode By Python]122. Best Time to Buy and Sell Stock II
查看>>
[LeetCode By Python]125. Valid Palindrome
查看>>
[LeetCode By Python]136. Single Number
查看>>
Android/Linux 内存监视
查看>>
Android2.1消息应用(Messaging)源码学习笔记
查看>>
MPMoviePlayerViewController和MPMoviePlayerController的使用
查看>>
CocoaPods实践之制作篇
查看>>
[Mac]Mac 操作系统 常见技巧
查看>>