我的新浪微博:http://weibo.com/u/1602714773 CSDN博客:http://blog.csdn.net/hunterno4

用robotium测试Android apk 文件

上一篇 / 下一篇  2012-05-02 13:56:58 / 个人分类:robotium

robotium测试Android apk文件

 

robotium测试android apk文件需要以下前题:

*下载apk,网址如下:

http://robotium.googlecode.com/files/AndroidCalculator.apk

*Eclipse创建测试用的project

 

 

1、安装AUT (Application Under Test) APK

APK文件可以安装在手机设备或模拟器上,但需要确保APK已经在调试模式下获得签名了。

如果APK文件已经获得了签名,可以跳过接来的这一步;

 

(1)      在调试模式下对APK进行签名

APK文件必须拥有与你的test project同样的签名证书,证书可以确定android应用的作者。

标准的工具比如KeytoolJarsigner可以用于对密钥的生成和对应用的签名。

希望得到更多的帮助可以访问:http://developer.android.com/guide/publishing/app-signing.html

 

(2)      重要步骤

如果应用已经获得了签名,可以从如下网站上下载java程序:http://www.troido.de/re-sign.jar

使用方法:双击文件打开它,将apk文件拖入即可。

          或者

          *解压apk文件

          *删除META-¬INF文件夹

          *重新压缩apk文件

         *Dos prompt/Terminal下输入如下命令

           

         > arsigner -keystore ~/.android/debug.keystore -storepass android -keypass android ApplicationToTest.apk androiddebugkey

> zipalign 4 ApplicationToTest.apk TempApplicationToTest.apk

       TempApplicationToTest.apk重命名为ApplicationToTest.apk.如果这是一个未签名的应用,那么,在Dos prompt/Terminal输入如下命令

 

       > jarsigner -keystore ~/.android/debug.keystore -storepass android -keypass android ApplicationToTest.apk androiddebugkey

 > zipalign 4 ApplicationToTest.apk TempApplicationToTest.apk

       然后将TempApplicationToTest.apk重命名为ApplicationToTest.apk

2、创建Test Project

建好工程后右击包名,选择“class”创建一个新的类;输入如下代码:

package com.calculator.test;

import com.jayway.android.robotium.solo.Solo;

import android.test.ActivityInstrumentationTestCase2;

@SuppressWarnings("unchecked")

public class TestApk extends ActivityInstrumentationTestCase2{

private static final String TARGET_PACKAGE_ID="com.calculator";

private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME="com.calculator.Main";

private static Class launcherActivityClass;

static{

try

{

launcherActivityClass=Class.forName(LAUNCHER_ACTIVITY_FULL_CLASSNAME); } catch (ClassNotFoundException e)

{

throw new RuntimeException(e); } }

public TestApk()throws ClassNotFoundException{

super(TARGET_PACKAGE_ID,launcherActivityClass); }

private Solo solo;

@Override

protected void setUp() throws Exception

{

solo = new Solo(getInstrumentation(),getActivity()); }

public void testDisplayBlackBox() {

//Enter any integer/decimal value for first editfield, we are writing 10

solo.enterText(0, "10");

//Enter any interger/decimal value for first editfield, we are writing 20

solo.enterText(1, "20");

//Click on Multiply button

solo.clickOnButton("Multiply");

//Verify that resultant of 10 x 20

assertTrue(solo.searchText("200")); }

@Override

public void tearDown() throws Exception {

solo.finishOpenedActivities();

}

}

3、导入robotium jar

4、改变AndroidManifest.xml

<?xml version="1.0"encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

   package="com.calculator.test"

   android:versionCode="1"

   android:versionName="1.0">

 

   <uses-sdk android:minSdkVersion="14"/>

 

   <instrumentation

       android:name="android.test.InstrumentationTestRunner"

       android:targetPackage="com.calculator"/>

 

   <application

       android:icon="@drawable/ic_launcher"

       android:label="@string/app_name">

       <uses-library android:name="android.test.runner"/>

   </application>

 

</manifest>

 

 

本文本应该同前面的两篇同时贴上来的,哎。最后,建议大家有兴趣较为深入学习robotium的,去访问官网,直接阅读英文文档,掌握最新的一手资料。


TAG: Android android Robotium robotium 测试

 

评分:0

我来说两句

Open Toolbar