Android 接口测方法

网络上关于此方面知识相对较少。以下完全是自己的理解,请大神轻喷。

在开始前可自行先学习Google提供Trade Federation.

Trade Federation(简称 Tradefed 或 TF)是一种连续的测试框架,专门用于在 Android 设备上运行测试。例如,Tradefed 用于运行兼容性测试套件 (CTS) 和供应商测试套件 (VTS)。

下面主要介绍下基本的流程也就是借助现有 APK 运行 插桩测试

一. 编写测试用例

以Google原生的CTS用例为例, 下面的片段是针对Permission这个模块其中的一个原生接口设计的接口测试用例
也就是用到了 AndroidJUnit4 单元测试的框架进行用力脚本的设计

大概没具体看接口定义,目测看是在服务没启动的时候去验证getSystemService这个接口往里传什么参数都应该返回Null

...
...
import android.content.Context;
import android.platform.test.annotations.AppModeInstant;
import android.support.test.InstrumentationRegistry;
import android.support.test.runner.AndroidJUnit4;

import org.junit.Test;
import org.junit.runner.RunWith;

/**
 * Some services are not available to instant apps, see {@link Context#getSystemService}.
 */
@AppModeInstant
@RunWith(AndroidJUnit4.class)
public class ServicesInstantAppsCannotAccessTests {
    @Test
    public void cannotGetDevicePolicyManager() {
    assertNull(InstrumentationRegistry.getTargetContext().getSystemService(
            DEVICE_POLICY_SERVICE));

(后面还有代码)...
二. 编译

根据自己情况,在自己环境下进行编译生成打桩用的测试APK
关于编译这块我还在探索,目前只能按照别人方法去打包编译成apk
先留一个坑

三. 测试框架

本文框架先介绍2个,分别是Instrumentation和CTS测试
以上两个核心都是使用Instrumentation测试,个人理解借助CTS跑接口测试话可以帮忙抓log和分析结果。

1. 直接调用 Instrumentation 命令

上述步骤已经有了用例编译出来的APK,直接通过 adb install 的命令把这个apk装到环境里。

关于 Instrumentation 命令的使用网上有具体文章介绍就不在这详细介绍了。

基本命令就是直接跑这个apk里的全部case (当然也可以指定跑具体某个用例)

adb shell am instrument -w 自己package的名/android.support.test.runner.AndroidJUnitRunner

之后结果会通过命令行的形式返回在cmd/终端中。

2. 使用CTS框架

CTS 呃。。
给出官方链接:CTS.

CTS环境搞好之后,把之前编译的APK放在 testcases的文件夹中,此时需要一个配置文件了

demo.apk 需对应一个demo.config的配置文件

demo.config:

<configuration description="Config for cluster comm service cases">
	<option name="test-suite-tag" value="cts" />
    <target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller">
        <option name="cleanup-apks" value="true" />
        <option name="test-file-name" value="demo.apk" />
    </target_preparer>
    <test class="com.android.tradefed.testtype.AndroidJUnitTest" >
        <option name="package" value="自己package的名" />
        <option name="runtime-hint" value="7m" />
    </test>
</configuration>

此处官方.有介绍是怎么玩这个配置。
按照要求配置即可。

之后就是启动CTS了。基本操作如下。
进到tools下打开终端执行 ./cts-tradefed 进入cts测试CLI界面

run cts -m {apk的名字}  {各种参数}

跑完之后就是CTS的文件夹里收html的报告就行了。

初版。其他坑后补。。。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值