您的位置:首页 > 移动开发 > Android开发

Android 自动化测试—robotium(六)只有APK存在

2014-03-31 10:03 260 查看
之前robotium的测试都是基于有源码的情况下。当我们无法获得android源码时,可以采用另一种方式进行测试。关于这种方式,robotium wiki 有相关资料提供参考 RobotiumForAPKFiles:Use Robotium when only having apk
http://code.google.com/p/robotium/wiki/RobotiumForAPKFiles


在实现整个测试过程前,先简单了解下Android应用程序签名:

Android 应用程序为什么要签名?签名的作用是什么?

签名的作用:

(1) 发送者身份的认证

(2) 保证输入信息的完整性

(3) 防止交易中的抵赖发生



Robotium 开始测试过程:

一、更换APK签名

根据robotimu wiki介绍:需要利用一个叫 re-sign.jar 的工具,它可以帮助我们重新签名某个APK.

下载:http://down.51cto.com/data/443499

1.双击 re-sign.jar 或 cmd 下 java -jar re-sign.jar

2.将应用程序拖入re-sign中,这里以“有道词典 3.1.0.apk”举例

3.生成新签名和新APK。

有道词典 3.1.0_dubug.apk

Package name:com.youdao.dict

Main activity:com.youdao.dict.activity.DictSplashActivity



二、将有“有道词典 3.1.0_dubug.apk”安装至android虚拟机中

1.进入android-sdk-windows\platform 执行命令:

adb install 有道词典 3.1.0_dubug.apk

2.安装成功后,虚拟机将会看到此应用.



三、修改 AndroidMainfest.xml 文件

创建Android测试项目:http://luwenjie.blog.51cto.com/925779/908886
<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.luwenjie.helloworld.test" 
    android:versionCode="1" 
    android:versionName="1.0" > 
    
    //添加supports-screens
    <supports-screens android:anyDensity="true"/> 
     
    <uses-sdk android:minSdkVersion="10" />  
     
    //修改targetPackage为之前所生产的Package Name
    <instrumentation 
        android:name="android.test.InstrumentationTestRunner" 
        android:targetPackage="com.youdao.dict" /> 
 
    <application 
        android:icon="@drawable/ic_launcher" 
        android:label="@string/app_name" > 
        <uses-library android:name="android.test.runner" /> 
    </application> 
 
</manifest>


四、修改测试框架:

测试框架 Robotium Wiki已经提供:



//TARGET_PACKAGE_ID 和 LAUNCHER_ACTIVITY_FULL_CLASSNAME 使用工具所生成的

private static final String TARGET_PACKAGE_ID = "com.youdao.dict"

private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME = "com.youdao.dict.activity.DictSplashActivity"



//测试脚本,我们可以修改脚本,利用java特性,创建多个脚本文件进行调用

public void testCanOpenSettings(){

solo.enterText(0, "test");

}
五、运行脚本进行测试

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐