Linux 安卓源码apk的Robotium+as自动化测试


对于系统内置apk的测试:
1、首先,创建tests目录,格式为:tests/被测apk包名/tests,如:
    FmRadio/tests/src/com/huawei/android/FMRadio/tests。
2、在tests目录下创建 Android.mk文件,内容如下:
    LOCAL_PATH:= $(call my-dir)
    include $(CLEAR_VARS)
    # We only want this apk build for tests.
    LOCAL_MODULE_TAGS := tests
    LOCAL_CERTIFICATE := platform
    LOCAL_JAVA_LIBRARIES := android.test.runner
    LOCAL_STATIC_JAVA_LIBRARIES := librobotium4 junit-report
    #Include all test java files.
    LOCAL_SRC_FILES := $(call all-java-files-under, src)
    LOCAL_PACKAGE_NAME := FmRadioTests
    LOCAL_INSTRUMENTATION_FOR := FmRadio
    include $(BUILD_PACKAGE)
    # Use the folloing include to make our test apk.
    include $(call all-makefiles-under,$(LOCAL_PATH))

    其中,LOCAL_STATIC_JAVA_LIBRARIES := librobotium4  junit-report,
    ibrobotium4 为编写测试代码时要用到的jar包,junit-report为生成测试报告时要用到的jar                                   包;LOCAL_PACKAGE_NAME和    LOCAL_INSTRUMENTATION_FOR 修改相应值就可以,其他的不变。
3、在tests目录下创建AndroidManifest.xml文件,内容如下:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.huawei.android.FMRadio.tests">

    <application>
        <uses-library android:name="android.test.runner" />
        <!-- uses-library android:name="com.jayway.android.robotium" /> -->
    </application>

    <instrumentation
            android:name="com.zutubi.android.junitreport.JUnitReportTestRunner"
        android:targetPackage="com.huawei.android.FMRadio" />

    <uses-permission                          android:name="android.permission.RUN_INSTRUMETATION" />
</manifest>

其中,package为测试类所在的包名,一般是:被测apk包名/tests;
android:name为执行自动化测试时的一个标志,可以写成(测试    类所在包名).测试类名,如果需要生成测试报告,则写成:
com.zutubi.android.junitreport.JUnitReportTestRunner;
Android:targetPackage为被测Activity所在包名。
4、在tests/被测apk包名/tests目录下创建测试类继承    ActivityInstrumentationTestCase2<被测Activity>,测试类主要包含    以下内容:
    1)必须拥有一个构造方法,如:
        Public RobotiumTest(){
           super("被测Activity包名", 被测Activity.class);
        }
    2)重写setUp()方法
        用来做初始化工作,如:
        mSolo = new Solo(getInstrumentation(), mFmRadioActivity);
    3)重写tearDown()方法
        主要用来实现测试完成后的垃圾回收,关闭Activity,如:

        try {
            mSolo.finalize();
        } catch (Throwable t) {
            t.printStackTrace();
        }
        mSolo.finishOpenedActivities();
        super.tearDown();
4)编写以test开头的测试case
    如:testCase1,测试case可以编写多个,主要是Solo类进行了点击、长按、滑动等操作;当运行后,每个测试    case都会执行一次setUp()和tearDown()方法。
5、执行测试类
    1)编译测试类:
        通过mmm  .../tests -B 编译test目录,编译成功后会生成一    个apk文件,通过 adb install 命令安装到手机中。
    2)执行测试:
        首先可用adb shell pm list instrumentation命令查看手机中的测试用例,然后通过adb shell am instrumentation -w         目标用例命令来执行测试用例,成功执行后生成的测试报告会保存在手机的data/data/被测Activity所包名/file         目录下。
   
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值