Google XTS测试学习
XTS 是一个统称,包含VTS、CTS、GTS,如果是TV类型产品,还要做netflix 认证,简称NTS,其余TS含义如下:
CTS 测试简介
Android的CTS测试,意为兼容性测试;只有通过CTS测试的设备才有可能获得Android的商标和享受Android Market的权限
Android CTS 通过运行和安装一系列 dex 和 APK文件,通过模拟不同的场景,测试Android 标准的接口是否正常返回,以此来保证不同版本APP的兼容性
CTS测试包括CTS基本测试和CTS Verifier测试两部分,后者是前者的补充,CTS检查的是API和功能,而CTS Verifier是测试在静态设备上测试无法自动测试的API和功能,例如音频质量,触摸屏,加速度计,相机等等。link:https://source.android.com/compatibility/cts
VTS
VTS 测试简介
VTS全称是Vendor Test Suite,Project Treble中引入Vendor Interface的目的是将Android Framework与HAL分开,并通过VTS测试来对这些Vendor Interface进行测试以确保HAL的向前兼容。
尽管APP层与Framework层在设计上是分开的,但通过CTS测试,确保了APP与Android Framework之间有一致的调用接口(API),这使得APP开发者编写的同一款程序可以运行在不同系统版本(向前兼容)、不同硬件平台、不同厂商制造的不同设备上。
VTS类似CTS,通过对Vendor Interface进行测试,确保同一个版本的Android Framework可以运行在不同HAL上,或不同Android Framework可以运行在同一个HAL上。
GTS 测试简介
GTS的全称是Google Mobile Services Test Suite,所谓的Google Mobile Services即谷歌移动服务,是谷歌开发并推动Android的动力,也是Android系统的灵魂所在。GMS目前提供有Search、Search by Voice、Gmail、Contact Sync、Calendar Sync、Talk、Maps、Street View、YouTube、Android Market (ICS 上更改为Play store)服务。当用户使用谷歌的时候,谷歌可以把广告嵌入各种谷歌的服务中。
依据GMS,谷歌对android手机给予不同程度的授权,把搭载Android系统的手机厂商分为三个级别
免费使用Android操作系统,但不内嵌GMS。
内嵌部分GMS,但手机不能打上谷歌的商标。
内嵌所有的GMS服务,也可以使用谷歌商标。如果在android手机中内置有谷歌GMS服务的话,是等同被谷歌官方认证过的产品。
XTS (eXtended Test Sequence) 是一种用于测试软件兼容性的工具。兼容性测试是软件开发过程中不可或缺的一部分,用于确保软件在不同环境、不同系统或不同版本中的正常运行。XTS 兼容性测试可以帮助开发人员检测和解决与软件兼容性相关的问题,提高软件的质量和稳定性。
XTS 兼容性测试的基本原理是通过创建一系列的测试用例,模拟不同的环境和条件,以发现和修复兼容性问题。这些测试用例可以包括系统级别的测试、接口测试、功能测试等。XTS 提供了一套完整的 API,可以帮助开发人员定义、执行和分析兼容性测试。
下面我们将以一个简单的示例来介绍如何使用 XTS 进行兼容性测试。
首先,我们需要安装 XTS 的开发包,并导入相应的库。以下是一个使用 Python 的示例代码:
import xts
接下来,我们需要定义测试用例。测试用例是一个函数,用于执行具体的测试操作。我们可以使用 @xts.test 装饰器来标记测试用例。以下是一个示例:
@xts.test
def test_compatibility():
# 这里是测试代码
assert 1 + 1 == 2
在这个示例中,我们定义了一个名为 test_compatibility 的测试用例,该用例执行一个简单的加法操作,并断言结果是否等于 2。
接下来,我们需要创建一个测试套件,并将测试用例添加到套件中。测试套件是一组相关的测试用例的集合。以下是一个示例:
suite = xts.Suite("Compatibility Test Suite")
suite.add(test_compatibility)
在这个示例中,我们创建了一个名为 “Compatibility Test Suite” 的测试套件,并将 test_compatibility 添加到套件中。
接下来,我们需要执行测试。可以使用 xts.run 函数来运行测试套件,并可选地指定一些配置参数。以下是一个示例:
xts.run(suite, log_level=xts.LogLevel.INFO)
在这个示例中,我们运行了之前创建的测试套件,并设置日志级别为 INFO。
最后,我们需要分析测试结果。可以使用 xts.report 函数来生成测试报告。以下是一个示例:
xts.report(suite, "compatibility_test_report.html")
在这个示例中,我们生成了一个名为 “compatibility_test_report.html” 的测试报告。
通过以上的步骤,我们就完成了一个简单的使用 XTS 进行兼容性测试的示例。当然,在实际的使用中,我们可以根据需要定义更多的测试用例,创建多个测试套件,并使用更丰富的配置参数来满足不同的测试需求。
总结一下,XTS 是一个用于测试软件兼容性的工具,可以帮助开发人员发现和解决与兼容性相关的问题。通过定义测试用例、创建测试套件、执行测试和分析结果,我们可以使用 XTS 进行兼容性测试,并提高软件的质量和稳定性。
引用形式的描述信息:
import xts:导入 xts 库
@xts.test:标记测试用例
suite = xts.Suite("Compatibility Test Suite"):创建测试套件
suite.add(test_compatibility):将测试用例添加到测试套件
xts.run(suite, log_level=xts.LogLevel.INFO):运行测试套件
xts.report(suite, "compatibility_test_report.html"):生成测试报告
XTS 测试环境搭建
https://blog.csdn.net/qq_43880417/article/details/128128433
安装SDK
安装 adb 命令
sudo apt-get install adb
# 安装好adb之后会自动下载好SDK
安装 aapt 命令
sudo apt-get install aapt
安装完JDK和SDK之后VTS环境就搭建好了。
3. 进行 XTS 测试(以 VTS 为例)
选择设备需要的VTS测试包
在VTS测试包中 /android-vts/tools 目录下执行 vts-tradefed 文件,测试环境就初始化好了
执行 run vts -m [modulename] 命令就可对对应模块进行测试
run cts -m CtsLocationFineTestCases
测试单个方法的命令示例
run cts -m CtsLocationFineTestCases -t android.location.cts.fine.LocationManagerFineTest#testAddProviderRequestListener
XTS 介绍
1. VTS 简介
VTS(Vendor Test Suite,供应商测试套件),在 Android_O 之前系统升级比较麻烦复杂,一般的情况下在有 Google 发布新版本的 AOSP 之后,还需要 SoC (System on Chip,称为芯片级系统,是一个专用目标的集成电路,其中包含了完整系统并有嵌入软件的全部内容) 厂商对 HAL (硬件抽象层是位于操作系统内核与硬件电路之间的接口层,其目的在于将硬件抽象化。他隐藏了特定平台的硬件接口细节,为操作系统提供虚拟硬件平台,使其具有硬件无关性,可在多种平台上进行移植) 进行升级,以及 OEM 厂商对 HAL 的 framework 进行升级之后,用户才能在设备上收到 OTA 升级包的推送。为了能更快的将设备升级到新的 Android 版本,Android_O 开始新引入了 Project Treble,Project Treble 适用于搭载 Android_O 及后续版本的所有新设备。Project Treble 中最重要的就是新增 Vendor Interface这一概念,以及相应的 Vendor Test Suite(VTS) 测试。
2. CTS简介
CTS (Compatibility Test Suite,兼容性测试)。只有通过CTS测试的设备才有可能获得 Android 的商标和享受 Android Market 的权限;Android 的 CTS 目的与意义:用户在 android 系统中有更好的用户体验,并且展示 android 应用的优越性,使得 android 开发者更容易编写高质量的 andorid 程序。
3. VTS 和 CTS 对比介绍
CTS作用: APP 层和 Framework 层在设计上是分开的,但通过 CTS 测试,确保了 APP 与 Android Framework 之间有一致的调用接口(API),这使得 APP 开发者编写的同一款程序可以运行在不同系统版本(向前兼容)、不同硬件平台、不同厂商制造的不同设备上。
VTS作用: Project Treble 中引入Vendor Interface 的目的是将 Android Framework 与 HAL 分开,通过对 Vendor Interface 进行测试,确保同一个版本的 Android Framework 可以运行在不同的 HAL 上,或者 Android Framework 可以运行在用一个 HAL,即保证 HAL 的向前兼容性。通过这样的 Framework/HAL 分离设计的接口一致性保证,这就使得 8.0 版本之后的 Android 系统进行升级时,可以直接对 Framework 进行升级而不用考虑 HAL 层的改动,从而缩短了用户手上设备得到系统升级 OTA 推送的时间。
参考:https://www.51cto.com/article/696850.html