android act测试,ACTS 电话测试  |  Android 开源项目  |  Android Open Source Project

Android 通讯测试套件 (ACTS) 可以对连接堆栈(例如 Wi-Fi、蓝牙和移动网络服务)自动进行测试。该测试工具需要 adb 和 Python,您可以在以下位置找到该工具:tools/test/connectivity/acts。

本页将介绍如何为拥有两部手机的用户运行 Android 开源项目 (AOSP) 中提供的基本电话测试。

前提条件

如需运行 ACTS 电话测试,您应该有权访问完整的 Android 代码库,并在要测试的设备上安装 userdebug build。

下载 Android 代码库

按照下载源代码中的说明,在通过 USB 与您要测试的设备相连接的设备上下载 Android 代码库。

AOSP 代码库的大小达到好几个 G,并且仍在继续扩大,预计下载时间会因此而异。如果设备大小有限,请在 repo init 命令中添加 --depth=1。

如需在未来获取有关 ACTS 工具的更新,请转到 Android 根目录:

使用 repo sync tools/test/connectivity

和 repo sync external/sl4a

在设备上验证 userdebug build

在测试设备上安装 userdebug 版本的 Android。

按照构建 Android 中的说明构建代码库。

按照刷写设备中所述刷写设备。

命令 adb shell getprop ro.build.type 应返回 userdebug。

如果无法使用 ro.build.type,userdebug build 允许以 Root 身份运行 adb shell(终端 #)。

构建并安装 SL4A

如需构建并安装 Android 脚本层 (SL4A),请按照 Android 脚本层中的说明操作。“将 SL4A build 默认添加到 Android build”部分的操作可选。

构建 SLA4 后,最后一条日志消息包含 sl4a.apk 文件的位置,您需要在所有设备上安装该文件。以下是日志消息的一个示例:

Copy: out/target/path/to/sl4a.apk

注意:请为每种类型的被测设备 (DUT) 构建不同的 sl4a.apk 实例。注意:为了最大限度地提高稳定性,构建 sl4a.apk 所用的代码库和版本应与刷机前的 DUT 相同。如果收到错误消息,其中包含“Error in RPC”字样,则表明 SL4A 与操作系统之间可能不匹配。

配置要测试的设备

按照以下 ACTS 构建/工具要求配置设备:

如果 adb 供应商密钥不可用,请在 DUT 上显示“信任此计算机”弹出式窗口时,点按该窗口。如果 adb 供应商密钥可用:

adb 供应商密钥和驱动程序对 DUT 而言必须是唯一的。

如需始终启用 USB 调试,必须使用 export ADB_VENDOR_KEYS=/path/to/directory/with/vendor/keys(其中 /path/to/directory 是主机上的完全限定路径)将源代码树中的 adb 供应商密钥添加到 ~/.bashrc(或等效项)中。如需了解如何排查 adb 问题,请参阅在硬件设备上运行应用。

允许 USB 调试:安装 adb 驱动程序时,adb 设备可能会在设备上触发要求您允许 USB 调试的提示。

使用 $ adb install -r /path/to/sl4a.apk 安装 sl4a.apk

确保手机与测试服务器之间使用 USB 2.0 连接。

这些测试要依赖实时移动网络,因此请将 SIM 卡插入手机,并确保手机所在位置的移动网络信号良好。

如编写配置文件中所述,将所有 SIM 卡添加到 .json 文件。

设置环境

在设置环境之前,验证是否已安装 Python 3.4 或更高版本。

运行以下命令:

sudo apt-get install python3-setuptools

sudo apt-get install python3-pip

sudo pip3 install --upgrade pip setuptools

sudo apt-get install protobuf-compiler

安装 ACTS

运行以下命令:

cd /tools/test/connectivity/acts/framework/

sudo python3 setup.py develop

cd -

如需验证安装情况,请运行 act.py -h,此命令将输出可用命令的列表。

编写配置文件

如需运行测试,您必须创建一个包含配置信息的文件。以下是示例 .config 文件。Android 代码库中的 tools/test/connectivity/acts/framework/sample_config.json 下也提供一个类似文件。将 XXXXXXX 替换为设备序列号,为 ACTS 运行电话测试提供所需的最基本信息。

{

"_description": "Minimum Telephony Config",

"testbed":

[

{

"_description": "A testbed listing two AndroidDevices for adb.",

"name": "ExampleTestBed",

"AndroidDevice": [{"serial": "XXXXXXX", "adb_logcat_param": "-b all"},

{"serial": "XXXXXXX", "adb_logcat_param": "-b all"}]

}

],

"logpath": "/path/to/logs",

"testpaths": "/path/to/android/repo/tools/test/connectivity",

"sim_conf_file": "/path/to/simcard_list.json"

}

使用表格中的键配置测试参数。如需了解更多选项,请参阅其他配置选项。

_description

有关整个配置文件内容的注释

testbed

针对可在其中运行测试的环境的规范

(testbed) _description

有关每个测试平台的注释,因为 ACTS 能够以各个测试平台为目标

(testbed) name

从命令行调用测试平台时使用的测试平台名称

(testbed) AndroidDevice

作为测试对象的具体设备的列表

注意:可能会列出多台设备。手机通话测试要求有两台设备,如果设备数量少于两台,测试就会失败。如果列出了两台设备而测试只需一台设备,则该测试会在第一台设备上运行。

(testbed)(AndroidDevice) serial

设备的序列号(由 adb devices 输出)

(testbed)(AndroidDevice) adb_logcat_param

在测试期间调用 adb logcat 时传递的参数

logpath

测试服务器上的日志保存位置

testpaths

测试用例代码的位置

sim_conf_file

列出可用 SIM 卡的 .json 文件的位置

SIM 卡列表的内容包括 SIM 卡 ID、SIM 卡功能、运营商和电话号码。

注意:您可以对设置为 sim_conf_file 的文件随意命名,只要名称采用 JSON 格式即可。在移动网络运营商不允许使用 Android API 查询电话号码的情况下,这是一种后备方案。下面是一个示例。{

"sim-card-ID-here": {

"capability": [

"voice",

"ims",

"volte",

"vt",

"sms",

"tethering",

"data"

],

"operator": "tmo",

"phone_num": "12345678901"

},

...

}

您可以在设备上依次转到系统 > 关于手机,获取电话号码。SIM 卡 ID 通常印在 SIM 卡上,也可以在设备上依次转到系统 > 关于手机 > SIM 卡状态,获取 SIM 卡 ID。运营商字符串是在 tools/test/connectivity/acts/framework/acts/test_utils/tel/tel_defines.py 中定义的,您可以在其中搜索 CARRIER_。

其他配置选项

位于 Android 代码库中 tools/test/connectivity/acts/framework/acts/config/entries.py 的 entries.py 文件包含主要命令行配置选项的定义。

您还可以搜索 self.user_params.get,在代码中查找测试专用参数。

运行测试

编写完配置文件后,从命令行运行测试。虽然有很多选项,但最简单的方法是使用 -c filename.config -tc

TestCase:name。以下示例使用名为 minimum.config 的配置文件:

act.py -c minimum.config -tc TelLiveVoiceTest:test_call_mo_voice_general注意:在上面的 -tc 上,TelLiveVoiceTest 是测试文件,:test_call_mo_voice_general 是该文件中的具体测试用例。如需运行文件中的所有测试,请只调用 -tc TelLiveVoiceTest。TelLiveVoiceTest 包含许多运行时间较长的测试用例,不建议运行该文件中的所有测试。

成功运行测试的最终输出消息应如下所示:

INFO Summary for test run ExampleTestBed@yyyy-mm-dd_15-23-43-614: Requested 1,

Executed 1, Passed 1, Failed 0, Skipped 0, Error 0

运行多个测试

如需运行多个文件中的特定测试用例,请创建一个测试文件,并在传递时使用标记 -tf,如下面的回归测试套件示例中所示。

TelLiveVoiceTest:

test_call_mo_voice_general,

test_call_volte_to_volte,

test_call_3g_to_3g

TelLiveDataTest:

test_airplane_mode,

test_4g,

test_3g

TelLiveSmsTest:

test_sms_mo_4g,

test_sms_mt_4g,

test_sms_mo_3g,

test_sms_mt_3g,

test_mms_mo_4g,

test_mms_mt_4g

以下示例命令假定文件名为 regression_suite.

act.py -c minimum.config -tf regression_suite

多次运行测试

要多次运行测试用例 (-tc) 或测试文件 (-tf),请在命令中添加 -ti

#(测试迭代)。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值