android studio2.0 搭建Robotium环境--eclipse--apk 环境搭建

盛年不重来,一日难再晨,及时当勉励,岁月不待人。这篇文章主要讲述android studio2.0 搭建Robotium环境--eclipse--apk 环境搭建相关的知识,希望能为你提供帮助。
1.配置好android sdk ,java环境
2.重新签名apk文件
    在用户目录下,会有一个.android的目录,把re-sign.jar放在该目录下。执行命令  java -jar re-sign.jar 即可
    再把apk文件脱到打开的re-sign上。保存重新签名后的文件。 
    注意,弹出的如下需要截图,后面会用到。

android studio2.0 搭建Robotium环境--eclipse--apk 环境搭建

文章图片

  也可以用脚本直接操作。bat脚本如下
  bat脚本和re-sign.jar再同一个目录下。
@echo off echo "你的.android目录为:" echo %USERPROFILE%\\.android\\ copy /yre-sign.jar%USERPROFILE%\\.android\\ & & java -jar re-sign.jar pause

3.
创建测试项目 如下图:选择testTarget时选择This project
android studio2.0 搭建Robotium环境--eclipse--apk 环境搭建

文章图片
android studio2.0 搭建Robotium环境--eclipse--apk 环境搭建

文章图片

4.创建项目后,新建junit4测试类
android studio2.0 搭建Robotium环境--eclipse--apk 环境搭建

文章图片

5.导入robotium的jar包
android studio2.0 搭建Robotium环境--eclipse--apk 环境搭建

文章图片

  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
原因:空间不够用
解决方法:
【android studio2.0 搭建Robotium环境--eclipse--apk 环境搭建】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获取的参数。
android studio2.0 搭建Robotium环境--eclipse--apk 环境搭建

文章图片

  并将AndroidManifest.xml里面的参数按照debug包显示出来的修改添加
< uses-sdk android:targetSdkVersion="22" android:minSdkVersion="19" android:maxSdkVersion="22" />
 
android studio2.0 搭建Robotium环境--eclipse--apk 环境搭建

文章图片

 
android studio2.0 搭建Robotium环境--eclipse--apk 环境搭建

文章图片

 
 
 
android studio2.0 搭建Robotium环境--eclipse--apk 环境搭建

文章图片

 
 
 
  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

    推荐阅读