zoukankan      html  css  js  c++  java
  • Robotium第一天:搭建环境测试微信

    因为要在命令行下运行一些android的工具,所以配置一些环境变量会比较方便:

    遇到问题: java -jar re-sign.jar 出现提示android路径没有配置好:


    需要配置如下:

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

    在path下添加这两个:

    %ANDROID_HOME% ools;%ANDROID_HOME%platform-tools;

    重新开关一次命令窗口 

    在真机中安装APK(以腾讯微信作为测试的apk)

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

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

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

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

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

     

    然后打开模拟器(模拟器器一定要打开才能安装成功),然后打开命令行

    adb install mitalk_debug.apk(新生成apk的名称)

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

    注意:

    一、删除之前 APK 文件的签名
    1、解压apk 文件
    2、删除解压出来文件夹中的 META-INF 目录:META-INF 存放签名后的CERT 和MANIFEST 文件,用于识别软件的
    签名及版权。
    3、删除文件夹后重新把解压出来的其它文件夹压缩为zip 文件,然后直接把文件后缀改为apk

    二、为 APK 重新生成签名

    1、将证书复制到与需要重新签名的apk 文件相同的目录下

     2、jarsigner -keystore debug.keystore -storepass android -keypass android D:Robotium obotium obotiumweixin_delet_rsa_sf.apk androiddebugkey

    创建自动化测试项目

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

    在该项目下创建一个包,com.tencent.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.tencent.mm.ui.LauncherUI";
    private static String packageName = "com.tencent.mm";


    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() throws Exception {
    wait(5000);
    //待完成
    }


    @Override
    public void tearDown() throws Exception {
    try {
    this.solo.finishOpenedActivities();
    } catch (Throwable e) {
    e.printStackTrace();
    }
    this.activity.finish();
    super.tearDown();
    }


    }

     
    右键该项目,选择property然后选择java build path, 选择 Add External JARs,选择下到的robotium.jar
     
     
    在跑测试用例之前,还需要修改下AndroidManifest.xml文件的android:targetPackage为被测应用的根的包名
     
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.mitalk.test"
        android:versionCode="1"
        android:versionName="1.0" >


        <supports-screens android:anyDensity="true" />


        <uses-sdk android:targetSdkVersion="17" />
        <uses-sdk android:minSdkVersion="17" />


        <instrumentation
            android:name="android.test.InstrumentationTestRunner"
            android:targetPackage="com.tencent.mm" />


        <application
            android:debuggable="true"
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name" >
            <uses-library android:name="android.test.runner" />
        </application>


    </manifest>
     
     
    以上都弄完了,run as android junit test,就可以跑了
     
    备注:另外的运行方式:
    Test can also be run using command prompt/terminal by following simple steps
    * Write following command to install AndroidCalculator apk on emulator
    > adb install <path>/AndroidCalculator.apk
    * Write following command to install AndroidCalculatorTest apk on emulator
    > adb install <path>/AndroidCalculatorTestApk.apk
    * Run the test cases:
    > adb shell am instrument -w com.testcalculator/android.test.InstrumentationTestRunner
  • 相关阅读:
    链表_单链表(插入删除查询)
    OceanBase架构浅析(一)
    电商商品搜索现状
    ASP.NET MVC 源码分析(二) —— 从 IRouteBuilder认识路由构建
    ASP.NET MVC 源码分析(一)
    RPC框架分析
    RPC简介
    Performance Metrics(性能指标2)
    Performance Metrics(性能指标1)
    Introduction(本书简介)
  • 原文地址:https://www.cnblogs.com/jinjiangongzuoshi/p/4047159.html
Copyright © 2011-2022 走看看