zoukankan      html  css  js  c++  java
  • eclipse 搭建Robotium环境--apk 环境搭建

    1.配置好android sdk ,java环境

    2.重新签名apk文件

        在用户目录下,会有一个.android的目录,把re-sign.jar放在该目录下。执行命令 java -jar re-sign.jar 即可

        再把apk文件脱到打开的re-sign上。保存重新签名后的文件。 

        注意,弹出的如下需要截图,后面会用到。

     也可以用脚本直接操作。bat脚本如下

     bat脚本和re-sign.jar再同一个目录下。

    @echo off
    echo "你的.android目录为:"
    echo %USERPROFILE%.android
    copy /y  re-sign.jar  %USERPROFILE%.android && java -jar re-sign.jar
    pause
    

    3.  

    创建测试项目 如下图:选择testTarget时选择This project

    4.创建项目后,新建junit4测试类

    5.导入robotium的jar包

     6.编写代码

    package m.usewidget.test;
    
    import static org.junit.Assert.*;
    
    import org.junit.After;
    import org.junit.Before;
    import org.junit.Test;
    
    import com.robotium.solo.Solo;
    
    import android.test.ActivityInstrumentationTestCase2;
    
    public class testRobotiumTest extends ActivityInstrumentationTestCase2 {
    
    	private Solo solo;
    	private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME="com.www.main.StyrtActivity";
    	
    	private static Class<?> launcherActivityClass;
    	static{
    		try{
    			launcherActivityClass=Class.forName(LAUNCHER_ACTIVITY_FULL_CLASSNAME);
    		}catch(ClassNotFoundException e){
    			throw new RuntimeException(e);
    		}
    	}
    	
    	public testRobotiumTest() {
    		//要执行的activity
    		super(launcherActivityClass);
    		// TODO Auto-generated constructor stub
    	}
    
    	@Before
    	public void setUp() throws Exception {
    		//初始化solo对象
    		solo=new Solo(getInstrumentation(),getActivity());
    	}
    
    	@After
    	public void tearDown() throws Exception {
    		solo.finishOpenedActivities();
    	}
        //编写测试用例
    	@Test
    	public void test() {
    		solo.waitForDialogToOpen();
    		
    	}
    
    }
    

      AndroidMainfest.xml

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="m.usewidget.test"
        android:versionCode="29"
        android:versionName="V1.0.29" >
        
    	<uses-sdk android:targetSdkVersion="22" android:minSdkVersion="19" android:maxSdkVersion="22" />
    	
        <instrumentation
            android:name="android.test.InstrumentationTestRunner"
            android:targetPackage="com.www.tompot" />
    
        <application
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name" >
            <uses-library android:name="android.test.runner" />
        </application>
    	
    </manifest>
    

      

    7.配置

     在eclipse中,新建一个Android Test Project,进行配置,使得自动化脚本与要测试的apk进行关联。

      1) 修改Android Test Project下的AndroidMainfest.xml文件,使得粗体标注的package名与resign生成的名字一致
        <instrumentation
              android:name ="android.test.InstrumentationTestRunner"
            android:targetPackage ="com.example.mobile.testedapp" />
      2) 在自动化脚本测试类中,声明初始类,也要与resign生成的main activity类名一致
        private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME ="com.example.mobile.testedapp.MainActivity" ;
     
     
     

    8.运行

     1.android 自带的模拟器安装

      1) 打开Android SDK安装目录

      2) 找到sdk下的platform-tools目录

      3) 把重新签名后的apk文件放在该目录下

      4) 打开命令提示符:cmd

      5) cd  /sdk/platform-tools

      6) 打开要安装apk的模拟机

      7) 运行命令:adb install testedapp.apk。看到Success,说明apk已经安装成功了。

     再安装中出现问题:

      在将程序发布到手机上时提示该错误:

      INSTALL_FAILED_INSUFFICIENT_STORAGE

      原因:空间不够用

      解决方法:

      1. adb shell

      2. #df 

      发现/data下空间不足,原来是安装了太多应用程序导致。

      3. 删除一些不需要的程序即可。

       第一种办法:在反复安装android apk的时候,有的时候可能会遇到adb install错误,内容是:Failure                 [INSTALL_FAILED_UPDATE_INCOMPATIBLE]
      这很可能是因为你在以前uninstall应用的时候,没有做彻底,只是简单的rm /data/app/下面的apk文件了,一个补救的办法如下:
      启动模拟器,然后进入菜单
      settings->applications->mange
      applications-> select the application->select "unistall".
      这样就能彻底删除了,然后再重新安装这个apk就没问题了

       第二种办法:修改模拟器内存大小

        4.新建一个模拟器

    2.夜神模拟器运行

      启动模拟器

      连接模拟器

      adb connect 127.0.0.1:62001
      adb devices

     1) 打开Android SDK安装目录

      2) 找到sdk下的platform-tools目录

      3) 把重新签名后的apk文件放在该目录下

      4) 打开命令提示符:cmd

      5) cd  /sdk/platform-tools

      6) 打开要安装apk的模拟机

      7) 运行命令:adb install testedapp.apk。看到Success,说明apk已经安装成功了。

      运行测试:

      运行时报错:Test run failed: Instrumentation run failed due to 'java.lang.ClassNotFoundException'

     原因是:

        在自动化脚本测试类中,声明初始类,也要与resign生成的main activity类名一致
        private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME ="com.example.mobile.testedapp.MainActivity" ;
     再第7步配置过程中出错了,并没有resign生成的main activity的类名。
    解决方法:

      查看debug-apk包的packageName、versionCode、applicationLabel、launcherActivity、permission等各种详细信息
      aapt dump badging <file_path.apk>

        使用上面的命令查看:launchable-activity:参数。

       并将private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME =launchable-activity获取的参数。

     并将AndroidManifest.xml里面的参数按照debug包显示出来的修改添加

    <uses-sdk android:targetSdkVersion="22" android:minSdkVersion="19" android:maxSdkVersion="22" />

     

     

     

     android adk更新 mirrors.neusoft.edu.cn:80 代理 多试几次

    参考:http://www.cnblogs.com/enjoytesting/p/3622657.html

    http://blog.csdn.net/annkie/article/details/8714716

    http://www.cnblogs.com/easypass/p/3867211.html

     http://blog.sina.com.cn/s/blog_68f262210102vac3.html

  • 相关阅读:
    Linux Core Dump
    ODP.NET Managed正式推出
    获取EditText的光标位置
    (Java实现) 洛谷 P1603 斯诺登的密码
    (Java实现) 洛谷 P1603 斯诺登的密码
    (Java实现) 洛谷 P1036 选数
    (Java实现) 洛谷 P1036 选数
    (Java实现) 洛谷 P1012 拼数
    (Java实现) 洛谷 P1012 拼数
    (Java实现) 洛谷 P1028 数的计算
  • 原文地址:https://www.cnblogs.com/kllay/p/6057948.html
Copyright © 2011-2022 走看看