zoukankan      html  css  js  c++  java
  • Robotium只有apk文件测试实例

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

     

    一,设置环境变量

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

    2. path下添加这两个:

    %ANDROID_HOME% ools;%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,可供参考

    ----夫英雄者,胸怀大志,腹有良谋,有包藏宇宙之机,吞吐天地之志者也。
  • 相关阅读:
    批处理显示系统信息与硬件信息
    批处理获取操作系统版本信息
    k2 4.6.9安装记录-够复杂了
    NAT路由器打洞原理
    function与感叹号
    leetcode 83. Remove Duplicates from Sorted List
    leetcode 53. Maximum Subarray
    leetcode 101. Symmetric Tree
    leetcode 191. Number of 1 Bits
    胜利的欲望不会给你胜利
  • 原文地址:https://www.cnblogs.com/eagleking0318/p/6520958.html
Copyright © 2011-2022 走看看