Google atest的使用

前言

Google Android Compatibility Test包含有 CTS、VTS、GTS、STS等(统称为XTS),另外还有TVTS及Smoke Test等等。通常开发人员要参与SOC适配的前期开发、SQA阶段(包括XTS的主观)及XTS客观测试等,这些阶段也是可以并行的。

atest简介】Android AOSP Code里已经包含有CTS和VTS,为atest的使用奠定基础(GTS/STS不适用),module developer在commit方案之前,可以在本地用atest跑下对应CTS/VTS的module/class/method是否pass,不用等到SQA阶段CTS/VTS fulltest去扫是否有fail,缩短bug上报-debug-解决-验证-关闭等SQA测试周期,方便module developer自己跟进check问题,Atest  |  Android 开源项目  |  Android Open Source Project

本地AOSP code环境里,source build/envsetup.sh; lunch 之后,adb connect device,即可准备运行atest测试:

  • atest -s “device_ip:5555" moduleName
  • atest -s “device_ip:5555" className
  • atest -s “device_ip:5555" className#methodName

更多使用方法参考如上链接。通常第一次运行测试的话需要时间较长,要编译出atest相关tool及testcase apk等,后面在跑的话就比较快了。

atest使用

基于CTS/VTS Compatibility Test,还是很方便的。参考:https://source.android.google.cn/compatibility/tests/development/atest?authuser=0&hl

通常使用atest -s "device_ip:5555" “test-to-run”就可以跑起来,也还有其他更多选项参考:

选项长选项说明
-b--build构建测试目标。(默认)
-i--install在设备上安装测试工件 (APK)。(默认)
-t--test运行测试。(默认)
-s--serial在指定设备上运行测试。 一次可以测试一台设备。
-d--disable-teardown停用测试拆解和清理。
--info显示指定目标的相关信息并退出。
--dry-run模拟运行 Atest,不实际构建、安装和运行测试
-m--rebuild-module-info强制重新构建 module-info.json 文件。
-w--wait-for-debugger在执行之前等待调试程序。 仅用于插桩测试。
-v--verbose显示 DEBUG 级别日志记录。
--iterations循环运行测试,直至达到最大迭代次数。(默认情况下为 10 次)
--rerun-until-failure [COUNT=10]重新运行所有测试,直至出现失败的情况或达到最大迭代次数。 (默认情况下为 10 次)
--retry-any-failure [COUNT=10]重新运行失败的测试,直至测试通过或达到最大迭代次数。(默认情况下为 10 次)
--start-avd自动创建 AVD 并在该虚拟设备上运行测试。
--acloud-create使用 acloud command. 创建 AVD
--[CUSTOM_ARGS]为测试运行程序指定自定义参数。
-a--all-abi针对所有可用的设备架构运行测试。
--host在没有设备的情况下完全在主机上运行测试。
(注意:使用 --host 运行需要设备的主机测试将失败。)
--flakes-info显示包含不稳定信息的测试结果。
--history按时间顺序显示测试结果。
--latest-result输出最新测试结果。

1、您可以使用 -b-i 和 -t 选项指定要运行的步骤。如果未指定选项,则运行所有步骤。

注意:您可以单独运行 -b 和 -t,但 -i 需要 -t 才能运行。

  • 仅构建目标:atest -b test-to-run
  • 仅运行测试:atest -t test-to-run
  • 安装 APK 并运行测试:atest -it test-to-run
  • 构建并运行,但不安装:atest -bt test-to-run

Atest 可以强制测试跳过清理/拆解步骤。许多测试(例如 CTS)会在运行完测试后清理设备,因此如果没有 --disable-teardown 参数,尝试使用 -t 重新运行测试将失败。请在使用 -t 之前先使用 -d 跳过测试清理步骤以便进行循环测试。

atest -d test-to-run

atest -t test-to-run

注意-t 既不执行设备设置/安装操作,也不执行设备拆解/清理操作,因此您可以使用 atest -t test-to-run 重新运行测试任意次数。

2、以迭代方式运行测试

如需以迭代方式运行测试,只需传递 --iterations 参数。无论测试通过还是失败,在达到最大迭代次数之前,Atest 都不会停止测试。

默认情况下,Atest 会迭代 10 次,提供一个整数可以更改迭代的次数。

atest test-to-run --iterations

atest test-to-run --iterations 5

atest的优缺点

  • 优点:使用简单,基于本地code,容易debug,不用去配置测试环境和下载CTS/VTS tool。
  • 缺点:基于AOSP code,通常soc拿到的是初版aosp的code,后续更新的话,CTS/VTS这部分可能很少更新到,所以CTS/VTS就会比较旧。Google 发布的Compatibility Test Tool都是基于最新的代码编译的,所以atest会落后Google发布的CTS/VTS release tool(有些问题是Tool的issue,就需要用最新的Tool来测)。GTS/STS不能使用atest,因为没有sourcecode。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值