首页 > 其他分享 >Google XTS测试学习

Google XTS测试学习

时间:2024-04-21 17:11:46浏览次数:25  
标签:Google xts CTS 兼容性 测试 XTS Android

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

 

标签:Google,xts,CTS,兼容性,测试,XTS,Android
From: https://www.cnblogs.com/klb561/p/18149175

相关文章

  • VMmark 4 - 虚拟化平台基准测试
    VMmark4-虚拟化平台基准测试VMmarkisafreetoolusedtomeasuretheperformanceandscalabilityofvirtualizationplatforms.请访问原文链接:VMmark4-虚拟化平台基准测试,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgVMmark是一款免费工具,用于衡量虚......
  • PT Application Inspector 4.5 (Linux) - 静态、动态和交互式应用程序安全测试
    PTApplicationInspector4.5(Linux)-静态、动态和交互式应用程序安全测试唯一一款提供高质量分析和便捷工具以自动确认漏洞的源代码分析器请访问原文链接:PTApplicationInspector4.5(Linux)-静态、动态和交互式应用程序安全测试,查看最新版。原创作品,转载请保留出处。......
  • 代码重构注意点及测试覆盖-复盘(公共通用逻辑修改需要注意点)
    1.sqlmap查询的字段是否是全部字段,在使用实体类对象的时候,需要判断是否正确的获取到数据。如果查询的是个别的字段,而使用的字段不在查询的字段中,就会无法获取到值。建议的做法:按中台的思路,提供的查询方法是大而全的方法。提供对业务的支持。2.测试的方法:查询数据提供了查库和查缓......
  • [转帖]十年拉锯战终结束,Google 赢得 Java API 版权诉讼
    https://www.oschina.net/news/136073/googles-wins-lawsuit Google和Oracle(甲骨文)在法庭上就Android操作系统中Java编程语言的使用问题争吵了十年。美国最高法院在周一以6比2的投票结果裁定,Google对Java代码的使用被归为"合理使用",没有违反联邦版权法......
  • 本地部署Llama3-8B/72b 并进行逻辑推理测试
    美国当地时间4月18日,Meta开源了Llama3大模型,目前开源版本为8B和70B。Llama3模型相比Llama2具有重大飞跃,并在8B和70B参数尺度上建立了LLM模型的新技术。由于预训练和后训练的改进,Llama3模型是目前在8B和70B参数尺度上存在的最好的模型。训练后程序的改进大大降低了错误拒绝率,改善......
  • 性能测试——性能测试-linux监控工具-Centos7.x安装Grafana
    2个参考:小菠萝:https://www.cnblogs.com/poloyy/p/12219145.html  Centos7安装GrafanaGrafana官网下载路径:https://grafana.com/grafana/download1、直接执行以下命令进行安装:wgethttps://dl.grafana.com/oss/release/grafana-6.5.2-1.x86_64.rpmsudoyumlocalinstall......
  • 样式字体测试使用
    $\int_{-\infty}^{\infty}e^{-x^2}dx=\sqrt{\pi}$1.我是文本红色red2.我是文本蓝色3.我是文本粉红4.我是文本紫色5.我是文本黑色6.我是文本橙色7.我是文本灰色8.我是文本绿色8.我是文本红色1.我是文本2.我是文本3.我是文本4.我是文本6.加粗文本......
  • 如何写测试点分析图?
    做软件测试一遍做的工作内容是: 【学习是长时间的时间,需要付出很多时间。】访谈写代码的流程:1.根据需求画思维导图。。。2.写业务代码(增删改查),3.写spring框架代码。会用就行。想了解怎么实现的,等价的时间,变化的东西,需要后端写,比如用户名称年龄。不会的固定的文字等东西由前端......
  • (UIAutomator、Appium、Robotium)三种APP自动化测试框架
    一、原理1.UiAutomator——基于UIAutomation的用户界面自动化测试框架,可以跨应用工作,谷歌亲生的。UIAutomation在Android4.3发布时有了新版本,官方简介:http://blog.csdn.net/zhubaitian/article/details/40504827。Android4.3之前:使用inputManager或者更早的WindowsManager......
  • Appium自动化测试之常用的adb命令
    appium自动化用到的命令常用的一些adb命令1、adbdevices查看设备2、adbpull《手机路径》《电脑路径》从手机中拉取信息放到本地电脑例如:adbpull/sdcard/androidD:\appium,复制sdcard下的android文件夹到电脑D盘下的appium文件夹下3、adbpush《电脑路径》《手机路......