zoukankan      html  css  js  c++  java
  • Robotium之“去哪儿旅行”

    Robotium基于APK自动化测试,只有APK文件,没有源代码。

    Eclipse 默认的debug keystore可以在Windows->Preferences->Android->Build中设置,如下:

    去掉APK的签名后,然后为其重新签名。

    可通过re-sign.jar,其下载地址如下:

    http://recorder.Robotium.com/downloads/re-sign.jar.

    双击运行re-sign.jar,将“去哪儿旅行”的APK拖至其上,

    若出现错误如下:ERROR:Cannot run program"D:android-sdk/tools/zipalign":createProcess error=2,the system cannot find the file specified.

    解决方法,在Android SDK的platforms文件夹底下选择一个高版本的文件夹,单击进入该文件夹,将该文件夹下的zipalign.exe复制到tools文件夹底下。

    成功如下:

    2.创建基于APK测试的测试工程

    Eclipse中新建Android Test Project,并命名为QunarTest,在select test target 窗口选择“this project”项,

    然后新建一个libs文件夹,然后将下载好的jar文件放到该文件夹下,

    用鼠标右键单击该jar,依次选择BuildPath->Add To Build Path。

    src右击新建包和类,新建一个包com.qunar.test,新建第一个测试类FirstQunarTest,然后编写代码如下:

    package com.qunar.test;

    import com.robotium.solo.Solo;

    import android.test.ActivityInstrumentationTestCase2;

    import android.util.Log;

    import android.view.View;

    @SuppressWarnings("rawtypes")

    public class FirstQunarTest extends ActivityInstrumentationTestCase2 {  

    private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME = "com.Qunar.NoteActivity";

     private static Class<?> LauncherActivityClass;

     private static final String TAG = "MyResult";

     static {  

     try {  

      LauncherActivityClass = Class     

     .forName(LAUNCHER_ACTIVITY_FULL_CLASSNAME);

      } catch (ClassNotFoundException e) {

       throw new RuntimeException(e);  

     }

     }

     @SuppressWarnings("unchecked")

     public FirstQunarTest() {

      super(LauncherActivityClass);  }

     private Solo solo;

     @Override

     protected void setUp() throws Exception {  

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

     }

     public void testCanOpenSettings() throws InterruptedException {

      waitForText("软件更新");  

     if (solo.searchText("软件更新")) {  

      View view = solo.getView("com.Qunar:id/btn_download");   

     solo.clickOnView(view);

      }  

     solo.pressMenuItem(0);  

    }

     private void waitForText(String string) throws InterruptedException {

      while (!solo.searchText(string)) {   

     Thread.sleep(1000);  

     }

     }

     @Override

     public void tearDown() throws Exception {

      solo.finishOpenedActivities();

     }

    }

    //插入知识,在编写代码时,可以设置eclipse自动补全,

    //最简单的修改方式是:Windows——>Preferences——>Java-->Editor-->Content Asist,

    //在Auto activation triggers for Java后面的文本框里只有一个“.”。

    //现在你将其改为“.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ”即可。

    //然后你再试试,会发现,现在的补全功能跟VS差不多了。

    //你还可以在Advanced和Favorite里进行高级的设置。

    然后将AndroidMainfest.xml以Text Edite 打开,修改package name 和 package,编辑如下:

    <?xml version="1.0" encoding="utf-8"?>

    <manifest xmlns:android="http://schemas.android.com/apk/res/android"

        package="com.qunar.test"

        android:versionCode="1"

        android:versionName="1.0" >

     

        <uses-sdk android:minSdkVersion="8" />

     

        <instrumentation

            android:name="android.test.InstrumentationTestRunner"

            android:targetPackage="com.Qunar" />

     

        <application

            android:icon="@drawable/ic_launcher"

            android:label="@string/app_name" >

            <uses-library android:name="android.test.runner" />

        </application>

     

    </manifest>

    然后在FirstQunarTest上单击鼠标右键,Run as ->Android JUnit Test,观察结果,自动更新为成功。

  • 相关阅读:
    报错解决——ctypes.ArgumentError: argument 1:……….. : wrong type
    报错解决——OSError: libdarknet.so: cannot open shared object file: No such file or directory
    报错解决——make: *** No targets specified and no makefile found. Stop
    dos2unix命令
    报错解决——linux下执行sh出现异常"syntax error: unexpected end of file"
    Python中使用SMTP发送邮件以及POP收取邮件
    常用的邮箱服务器(SMTP、POP3)地址、端口
    Python日期与字符串互转
    Mac OSX上卸载Anaconda
    uWSGI+APScheduler不能执行定时任务
  • 原文地址:https://www.cnblogs.com/xiaomayizoe/p/5145527.html
Copyright © 2011-2022 走看看