网络上关于此方面知识相对较少。以下完全是自己的理解,请大神轻喷。
在开始前可自行先学习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的报告就行了。
初版。其他坑后补。。。