在正常的测试流程中,我们测试人员是不会拿到被测试程序的源码的,只有生成的安装程序,也就是APP的apk文件,这个时候,我们就无法按照有源码的时候再测试了。但是robotium也可以对这类程序进行测试的,具体方法如下:
一,设置环境变量
1. 配置ANDROID_HOME为android sdk的安卓目录,例如:D:android-sdk
2. 在path下添加这两个:
%ANDROID_HOME% ools;%ANDROID_HOME%platform-tools;
二, 安装签名文件
1. 因为robotium要求被测应用和测试代码要有一致的签名, 所以我们需要把下载到的apk,通过re-sign.jar来产生debug key的apk,这个重新生成的apk就会跟测试项目签名一致了
re-sign.jar可以从这里下载到:http://www.troido.de/re-sign.jar
2. 下载完后,在命令行下 通过 java -jar re-sign.jar就会出现一个窗口,然后将apk拖到这个窗口中,就会自动生成一个debug key的apk
产生新apk的过程中会弹出一个信息框,记得截下图,因为里面有两个信息我们等会的代码中需要用到
3. 安装签名后的apk。
(1)模拟器安装
打开模拟器(模拟器器一定要打开才能安装成功),然后打开命令行 adb install shxw_3.1.8_debug.apk (新生成apk的名称) , 或者双击apk文件也可以安装,安装成功就可以再模拟器里看到该应用的图标了。
(2)真机安装
三,创建项目(使用搜狐新闻apk)
1. 打开Eclipse,点击File->New一个Android Test Project ApkTest, 然后点击下一步的时候选择This project(因为我们没有搜狗新闻的源码),然后选择要在哪个android版本上测试。
2. 在该项目下创建一个包,com.neusoft.test,在该包下创建FirstTestCases类,如下:
package com.neusoft.test;
import static org.junit.Assert.*;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import
android.test.ActivityInstrumentationT
import android.view.View;
import com.robotium.solo.Solo;
public
class
FirstTestCases
extends
super(TARGET_PACKAGE_ID,launcherActivityClass);
}
3. 右键该项目,选择property然后选择java build path, 选择 Add External JARs,选择下到的robotium-solo-5.1.jar,请到网上下载最新的包!
4. 在跑测试用例之前,还需要修改下AndroidManifest.xml文件的android:targetPackage为被测应用的根的包名
android:name="android.test.InstrumentationTestRunne
android:targetPackage="com.sohu.newsclient" />
四, 运行测试用例
在测试用例文件上右击,选择run asà android junit test,就可以进行测试了。运行结束,在Eclipse左右会显示运行结果(如下图所示),如果出错,可以去查看logcat,排查错误的原因。