Robotium 测试没有源码的apk--需重签名apk

  Robotium是基于Instrumentation框架的,其编写的测试脚本与被测程序运行在同一个进程里面,所以这需要测试程序与被测程序拥有相同的签名,否则无法进行通讯。
在只有apk的情况下可以采用“去签名再签名”的方法对被测程序进行签名。且没有签过名的apk是装不到手机里去的。

 那你是否要问,我的测试程序打包成的apk为什么可以直接装,而不用签名呢?

 那是因为当你再用eclipse生成apk时,eclipse用本地的sdk中的签名工具,自动为你签过名了,所以eclipse打包成的apk可以直接装到手机里去。

所以说假如你想与被测程序通讯,即做测试,两种途径:

1、查看被测程序是用的哪种签名,你也同样用被测程序的签名把你自己的测试脚本也签成这个,但是这个是不容易做到的。

 被测程序如果没有源码的话,签名估计也是搞不到的,那可是机密文件,很少外传的,

 比如说你想测美团外卖的app,但是你是不可能拿到这个app签名的,所以只能采用第二种方法。

2、把被测程序也签成跟你测试脚本一样的签名,即也用本地sdk中的签名工具重新签一下。

   这里(http://jingyan.baidu.com/album/bad08e1ee438e109c851213d.html?picindex=2)介绍了两种方法,

 第一种是利用debug.keystore,第二种是利用re-sign.jar。无论哪一种方法,都是要先配置环境变量,ANDROID_HOME, JAVA_HOME等变量,

 这里你把平时需要android环境需要配置的都配置完,运行签名命令之后,如果提示,找不到路径之类的,你再接着配别的,因为我也记不清具体是哪几个了。

   方法一、利用debug.keystore,我就不多做介绍了,可以参考http://www.51testing.com/html/92/115892-223023.html,反正我是没成功,不知道是什么问题,祝你好运!

   方法二、利用re-sign.jar,这个特别方便,一次成功,只是re-sign.jar不好下载,在网上找了很多,都没有找到,最终在一个测试的群文件里找到啦,皇天不负有心人,终于搞定啦!

       现把re-sign.jar下载链接http://files.cnblogs.com/files/zh-ya-jing/re-sign.zip分享给大家!

  如果上边还没解决你的问题,你可能是像我一样,测试的是手机系统,整个手机系统预装了多个app,采用上述方法二把被测程序签名成与测试脚本相同的签名,这显然不现实,

所以只能采用方法一,把测试脚本签名成手机系统app的签名,这你只能找手机系统版本的开发项目组,索要手机app的签名。签过之后,你把测试脚本装到手机里,就可以控制手机app啦!

时间: 2024-08-29 19:45:02

Robotium 测试没有源码的apk--需重签名apk的相关文章

mac下自己实现re-sign.jar对apk进行重签名

利用Robotinum对给的apk文件进行自动化测试,在不知道源码的情况下,只有apk文件如何进行自动化测试呢? 首先需要对apk文件进行重签名,并获得该apk文件的包名和程序入口的类名. 最开始网上说用re-sign.jar这个jar包,但是我用mac电脑实验了很多次都不行,一直提示JAVA_HOME环境变量没有设置,可是我已经设置了,echo $PATH输出也能看到JAVA_HOME,不过在Windows系统上实验是好的,可惜我是mac电脑,实验了好几个小时都不行,特别是在真心实意的请教测试

使用re-sign.jar对apk进行重签名

准备: ① re-sign.jar重签名工具:(下载地址为:http://troido.de/downloads/category/1): ② 待重签名的apk: 重签名步骤: ① 右键re-sign.jar,在“打开方式”里,选择“Java(TM) Platform SE binary”选项,打开之后,显示如下: ② 接下来,图中已经标明,把你的apk拖进去: ③ 选中一个保存位置,点击图中的“保存”按钮,完成之后.会弹出如下提示: 出现这个界面,说明你对你要测的apk已经重签名成功了,这里的

转 对APK进行重签名

1.      生成Android APK包签名证书1).     在doc中切换到jdk的bin目录cd C:\Program Files\Java\jdk1.6.0_18\bin2).     运行下面的命令keytool –genkey –alias android123.keystore –keyalg RSA –validity 20000 –keystore android123.keystore/*解释:keytool工具是Java JDK自带的证书工具-genkey参数表示:要生

apk的重签名

1.      生成Android APK包签名证书 1).     在doc中切换到jdk的bin目录 cd C:\Program Files\Java\jdk1.6.0_18\bin 2).     运行下面的命令 keytool –genkey –alias android123.keystore –keyalg RSA –validity 20000 –keystore android123.keystore /*解释:keytool工具是Java JDK自带的证书工具 -genkey参

Robotium的使用-有源码的情况

最近开始了解Robotium,Robotium是android的自动化框架,里面封装了很多api,方便我们使用.下面是我实践的结果,记录了其中出现过的问题,便于以后自己查阅.网上出现的很多是官方的demo,如果找不到,其实也可以用自己写的android小程序进行练习. 一.提前准备 1.robotium-solo-5.3.1.jar 2.android模拟器或真机 3.android sdk配置 platform-tools和tools 二.建立一个android test project 1.

程序集生成失败 -- 引用的程序集“ThoughtWorks.QRCode”没有强名称,为没有源码的程序集强签名

进入sdk提示符界面,依次输入如下指令 sn -k ThoughtWorks.QRCode.snk ildasm ThoughtWorks.QRCode.dll /out=ThoughtWorks.QRCode.il ilasm ThoughtWorks.QRCode.il /dll /resource=ThoughtWorks.QRCode.res /key=ThoughtWorks.QRCode.snk /optimize sn -v ThoughtWorks.QRCode.dll

Android自动化测试 - Robotium之re-sign.jar重签名后安装失败提示Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]解决方案

问题:在用re-sign.jar重签名apk文件后,显示重签名成功,但在实际安装过程中确提示:Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES] 原因:网上查找了下是重签名时出错了. 解决方法:使用命令行重签名,如: 1.生成重签名文件debug.store D:\>keytool -genkey -keyalg RSA -keystore debug.store -alias debug -keysize 2048 -validity 365 2.关联

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

1.准备Android开发环境 2.准备签名工具http://www.troido.de/re-sign.jar 1.建立测试工程 打开Eclipse,点击File->New一个Android Test Project ApkTest,然后点击下一步的时候选择This project,以下是新建的空工程 2.建立一个lib文件夹与conf文件夹lib放置依赖包,将robotium依赖包放进lib中,再由buildpath导入 conf放置需要的配置文件 3.将被测APK重新签名 因为roboti

基于Robotium框架的测试工程如何导入Robotium包的源码

1.  下载robotium包源码下载地址:https://github.com/RobotiumTech/robotium,保存下载后的文件robotium-master.zip到PC到的某个目录下: 2.  新建robotium测试工程,新建libs文件夹,导入robotium-solo-5.2.1.jar和robotium-solo-5.2.1-javadoc.jar文件夹: 采用如下地址的方法给jar包导入java-doc:http://wenku.baidu.com/view/0bfa