在使用Robotium测试的时候,有时候,测试人员并没有代码权限,而Robotium也可以在只有apk文件进行测试,下面就介绍一下这个过程。

1.设置环境变量

安装jdk环境和sdk环境

2.安装签名文件

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

点我下载re-sign.jar

打开运行cmd,切换到re-sign.jar文件目录下输入命令java -jar re-sign.jar,点击回车即可打开该jar文件。

3.重新签名apk

将apk包,直接拖拽进去,就会自动生成一个debug key的apk,产生新apk的过程中会弹出一个信息框,记得截下图,因为里面有两个信息我们等会的代码中需要用到

4.安装apk

将重新签名后的apk安装到设备上,若能顺利打开,无crash,则说明重新签名成功。

5.创建项目

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

6,修改manifest.xml文件

将Package名改为被测文件的包名(重签名时截图中有)

7,新建一个junit测试类

代码如下

  1. package com.tangbc.test;
  2. import android.app.Activity;
  3. import android.test.ActivityInstrumentationTestCase2;
  4. import com.robotium.solo.Solo;
  5. @SuppressWarnings("rawtypes")
  6. public class MomoTest extends ActivityInstrumentationTestCase2 {
  7. // 定义变量
  8. public Solo solo;
  9. public Activity activity;
  10. private static Class<?> launchActivityClass;
  11. // 对应re-sign.jar生成出来的信息框里的两个值
  12. private static String mainActiviy = "com.immomo.momo.android.activity.WelcomeActivity";
  13. private static String packageName = "com.immomo.momo";
  14. static {
  15. try {
  16. launchActivityClass = Class.forName(mainActiviy);
  17. } catch (ClassNotFoundException e) {
  18. throw new RuntimeException(e);
  19. }
  20. }
  21. @SuppressWarnings("unchecked")
  22. public MomoTest() {
  23. super(launchActivityClass);
  24. }
  25. @Override
  26. protected void setUp() throws Exception {
  27. super.setUp();
  28. this.activity = this.getActivity();
  29. this.solo = new Solo(getInstrumentation(), getActivity());
  30. }
  31. public void testLogin() {
  32. solo.sleep(2000);
  33. solo.clickOnText("注册");
  34. solo.sleep(2000);
  35. }
  36. @Override
  37. public void tearDown() throws Exception {
  38. solo.finishOpenedActivities();
  39. }
  40. }

8.最后, run as android junit test,就可以进行测试了

【转载:http://blog.csdn.net/tt75281920/article/details/28087583】

Robotium -- 针对apk包的测试的更多相关文章

  1. robotium—只有apk文件的测试

    把ppt的内容总结一下,并把问题说明一下: 把基本步骤搞出来,用notepad的程序吧,直接安装apk,就当做是不知道源码就好啦! 直接用自己的手机上就行啦!! 一.重签名: 步骤: 1.直接运行re ...

  2. robotium 测试APK<一> 建立测试工程

    1.准备Android开发环境 2.准备签名工具http://www.troido.de/re-sign.jar 1.建立测试工程 打开Eclipse,点击File->New一个Android ...

  3. 对当前目录下的所有APK包执行Monkey测试,并自动保存Crash日志

    适用平台:Android,代码几个月前写的,有问题请及时回复.本代码会依次安装当前目录下的APK安装包,之后执行Monkey测试,然后卸载掉换下一个,继续重复执行,如出现Cransh,会自动保存在当前 ...

  4. UE4 减少APK包的大小

    本文依据官方文档 Reducing APK Package Size整理而来,不过我会陆续添加自己减少包大小的心得. ETC1 纹理 当使用ETC1打Android包时,注意ETC1是不会压缩带Alp ...

  5. eclipse 搭建Robotium环境--apk 环境搭建

    1.配置好android sdk ,java环境 2.重新签名apk文件 在用户目录下,会有一个.android的目录,把re-sign.jar放在该目录下.执行命令 java -jar re-sig ...

  6. Unity - Apk包的代码与资源提取

    最近在研究如何给Unity游戏进行加密,让别人不能轻易破解你的apk包,不过网上的加密方法都是有对应的破解方法~_~!!结果加密方法没找到好的,逆向工程倒会了不少.今天就来讲解如何提取一个没做任何保护 ...

  7. 命令行创建Android应用,生成签名,对APK包签名并编译运行

    一.命令行创建Android应用 android create project -n HelloWorld -t android-22 -p HelloWorld1 -k org.crazyit.he ...

  8. 获取安卓应用APK包名的方法

    应用商店按照符合Android标准的原则进行设计,使用包名(Package Name)作为应用的唯一标识.即:包名必须唯一,一个包名代表一个应用,不允许两个应用使用同样的包名.包名主要用于系统识别应用 ...

  9. 搭建ionic3-angular5 开发环境并打包成安卓apk包教程

    安装node.js 搭建ionic3-angular5 开发环境,首先查看本地电脑是否安装node环境,打开终端,输入 命令: node -v 没有去安装nodejs  网址:http://nodej ...

随机推荐

  1. 通过ip地址获取当前地理位置

    1.  使用接口的方式: 这种方式是相对稳定,而且提供的数据相对稳定,提供接口的地方很多,大家可以参照 http://www.hujuntao.com/api/the-ip-address-api-a ...

  2. 运用linq查找所有重复的元素

    如题: 有一个List<string>类型的List<T> List<String> list = "};` 需要返回结果List包含 {"6& ...

  3. Spring AOP (下)

    4.方式二:schema配置 a.业务类: /** * 业务类 * * @author yanbin * */ public class AspectBusiness { /** * 切入点 */ p ...

  4. ibatis ORA-00911: 无效字符

    检查下xml文件中 sql的最后是不是写了 “;” 最容易犯这个毛病,都不知道吃了多少次亏了. 什么ORA-00911: 无效字符 什么The error occurred while applyin ...

  5. java-base64

    1.encode public static String encode(byte[] bValue, String encode) { ByteArrayOutputStream o = new B ...

  6. C#解析JSON几种方式-整理

    一.什么是JSON JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于JavaScript(Standard ECMA-262 3rd Edition ...

  7. HDU 1005(周期问题)

    HDU 1005 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u   Descript ...

  8. Android 开发中使用 SQLite 数据库

    SQLite 介绍 SQLite 一个非常流行的嵌入式数据库,它支持 SQL 语言,并且只利用很少的内存就有很好的性能. 此外它还是开源的,任何人都可以使用它.许多开源项目((Mozilla, PHP ...

  9. UI基础 - UIScrollView

    scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(, , , )]; scrollView.backgroundColor = [ ...

  10. Node.js 安装 初体验(1)

    1.安装nodejs http://nodejs.org/download/  自动根据系统下载自己的版本node.js 2.环境变量 windows 安装,不需要配置环境变量   mac安装后,会提 ...