Robotium只有apk文件测试实例

在正常的测试流程中,我们测试人员是不会拿到被测试程序的源码的,只有生成的安装程序,也就是APPapk文件,这个时候,我们就无法按照有源码的时候再测试了。但是robotium也可以对这类程序进行测试的,具体方法如下:

 

一,设置环境变量

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

2. path下添加这两个:

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

 

二, 安装签名文件

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

re-sign.jar可以从这里下载到:http://www.troido.de/re-sign.jar

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

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

Robotium只有apk文件测试实例



 

3. 安装签名后的apk

1)模拟器安装

打开模拟器(模拟器器一定要打开才能安装成功),然后打开命令行 adb install shxw_3.1.8_debug.apk (新生成apk的名称) 或者双击apk文件也可以安装,安装成功就可以再模拟器里看到该应用的图标了。

2)真机安装

  如果使用真机的话,将手机连接到电脑,将签名后的app安装到手机上即可。可以用adb命令安装,也可以借助于91助手等软件安装。

 

三,创建项目(使用搜狐新闻apk)

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

2. 在该项目下创建一个包,com.neusoft.test,在该包下创建FirstTestCases类,如下:

package com.neusoft.test;

import static org.junit.Assert.*;

import org.junit.After;

import org.junit.Before;

import org.junit.Test;

import android.test.ActivityInstrumentationTestCase2;

import android.view.View;

import com.robotium.solo.Solo;

 

public class FirstTestCases extends  ActivityInstrumentationTestCase2 {

      

       private static final String TARGET_PACKAGE_ID="com.sohu.newsclient";

       private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME="com.sohu.newsclient.app.SplashActivity";

       //声明一个Class类型的变量,用于ActivityInstrumentationTestCase2加载启动被测程序

       private static Class launcherActivityClass;

       private Solo solo;

       Operation oper=null;

       //静态加载auncherActivityClass也就是被测程序主类

    static{

              try {

                     launcherActivityClass = Class

                                   .forName(LAUNCHER_ACTIVITY_FULL_CLASSNAME);

              } catch (ClassNotFoundException e) {

                     throw new RuntimeException(e);

              }

       }

       //构造函数,传入TARGET_PACKAGE_ID,launcherActivityClass即可

       public FirstTestCases()

       {

              super(TARGET_PACKAGE_ID,launcherActivityClass);

       }

       @Before

       public void setUp() throws Exception {

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

       }

 

       @After

       public void tearDown() throws Exception {

              solo.finishOpenedActivities();

       }

 

       @Test

       public void test_switchtabs() {

             

              View view=null;

              //刊物标签

              oper=new Operation(solo);

              oper.ScrollToSecondPage(); 

              assertTrue(solo.searchText("已经订阅 "));

              //新闻标签           

              view=solo.getView("com.sohu.newsclient:id/text_news_center");

              solo.clickOnView(view);

              solo.sleep(3000);

              assertTrue(solo.searchText("要闻"));

              //组图

              view=solo.getView("com.sohu.newsclient:id/text_news_picture");

              solo.clickOnView(view);

              solo.sleep(3000);

              assertTrue(solo.searchText("精选"));

              //更多

              view=solo.getView("com.sohu.newsclient:id/text_news_more");

              solo.clickOnView(view);

              solo.sleep(3000);

              assertTrue(solo.searchText("阅读设置"));

             

       }

 

}

3. 右键该项目,选择property然后选择java build path, 选择 Add External JARs,选择下到的robotium-solo-5.1.jar,请到网上下载最新的包!

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

 

android:name="android.test.InstrumentationTestRunner"

android:targetPackage="com.sohu.newsclient" />

 

四, 运行测试用例

在测试用例文件上右击,选择run asà android junit test,就可以进行测试了。运行结束,在Eclipse左右会显示运行结果(如下图所示),如果出错,可以去查看logcat,排查错误的原因。

Robotium只有apk文件测试实例

       网上还有一个不错的教程:http://www.robotium.cn/archives/476,可供参考

posted @ 2014-11-12 17:08  潜龙9527  阅读(267)  评论(0编辑  收藏  举报