Android14 CTS-R6和GTS-12-R2不能同时测试的解决方法

news2025/1/7 18:08:14

背景
Android14 CTS r6和GTS 12-r1之后,tf-console默认会带起OLC Server,看起来olc server可能是想适配ATS(android-test-station),一种网页版可视化、可配置的跑XTS的方式。这种网页版ATS对测试人员是比较友好的,网页上简单配置下就能把CTS跑起来,但是目前觉得还是不太方便。对于经常跑CTS fulltest的开发测试人员来说,终端上敲个命令似乎更方便。

遇到的问题

  • 上面提到olc server有个问题,我们用新版tool,tf-console敲了命令,测试有时会跑不起来,或是retry也有机会遇到问题。
    GTS测试等了很久或是retry失败
  • 同一台linux server跑CTS+GTS会被排序,不能同时跑。为什么这样?因为新版tool:cts和gts会各自起自己的ats console,同时带起olc server,比如cts先起ats console和olc server,gts再起ats console,然后会去connect existing olc server,如果有olc server存在,就用存在的olc server。cts和gts起的ats console相当于olc client,在cts和gts的ats console敲的command会被传到olc server里的queue buffer,这样command就会排序,导致gts和cts不能同时跑(gts-gts,cts-cts也不能)。那以前旧版本的tool没这个问题。但是我们一台Host server通常是多种测试一起跑,所以这种不能多种测试一起跑的问题,要相办法解决。
    Using existing olc server

寻找解决方法

  • 借助docker来隔离测试环境
    参考了dockerfile构建CTS环境,编译搭建了2个docker image,一个for CTS,一个for GTS,但最后还是会connect existing olc server,就另寻其他方法了。

  • 查看android-gts/tools/gts-tradefed(cts: android-cts/tools/cts-tradefed),发现问题USE_ATS=true,原来如此:

USE_ATS=${USE_ATS:-"true"}
                               
if [ "$USE_ATS" == "true" ]; then
    ATS_CONSOLE_JAR=${GTS_ROOT}/android-gts/tools/ats_console_deploy.jar
    ATS_OLC_SERVER_JAR=${GTS_ROOT}/android-gts/tools/ats_olc_server_local_mode_deploy.jar
    checkFile ${ATS_CONSOLE_JAR}
    checkFile ${ATS_OLC_SERVER_JAR}

    FASTBOOT_FLAGS=" \
      --enable_fastboot_in_android_real_device=true \
      --fastboot='$(type -P fastboot 2>/dev/null)' \
    "
    if ! type -P fastboot &> /dev/null; then
        FASTBOOT_FLAGS="--enable_fastboot_in_android_real_device=false"
    fi;

    DEVICE_INFRA_SERVICE_FLAGS=" \
      --aapt='$(type -P aapt2 2>/dev/null)' \
      --adb='$(type -P adb 2>/dev/null)' \
      --ats_console_olc_server_path='${ATS_OLC_SERVER_JAR}' \
      --public_dir=/tmp \
      --simplified_log_format=true \
      --tmp_dir_root=/tmp \
      ${FASTBOOT_FLAGS} \
    "

    LANG=en_US.UTF-8 TEST_TMPDIR=/tmp ${JAVA_BINARY} --add-opens=java.base/java.lang=ALL-UNNAMED -Xmx4g -DXTS_ROOT=${GTS_ROOT} -DXTS_TYPE=gts -DDEVICE_INFRA_SERVICE_FLAGS="${DEVICE_INFRA_SERVICE_FLAGS}" -jar ${ATS_CONSOLE_JAR} "$@"
else
    ${JAVA_BINARY} $RDBG_FLAG -Xmx4g -cp ${JAR_PATH} -DGTS_ROOT=${GTS_ROOT} com.android.compatibility.common.tradefed.command.CompatibilityConsole "$@"
fi

因为USE_ATS=true,导致起的是ats console并去起olc server,和之前旧tool不同。到此解决办法就有了:在.bashrc里加入一句就可以了,继续用之前旧tool起的console。

export USE_ATS=false 

最后
G看起来后续是要推这个ATS的东西,其中ats console和olc server类似C/S,但现阶段似乎不稳定,暂时就先关掉ATS。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2272094.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

BurpSuite工具安装

BurpSuite介绍: BurpSuite是由PortSwigger开发的一款集成化的Web应用安全检测工具,广泛应用于Web应用的漏洞扫描和攻击模拟,主要用于抓包该包(消息拦截与构造) 一、Burp suite安装 windows系统需要提前配置好java环境,前面博客…

Win11+WLS Ubuntu 鸿蒙开发环境搭建(一)

参考文章 Windows11安装linux子系统 WSL子系统迁移、备份与导入全攻略 如何扩展 WSL 2 虚拟硬盘的大小 Win10安装的WSL子系统占用磁盘空间过大如何释放 《Ubuntu — 调整文件系统大小命令resize2fs》 penHarmony南向开发笔记(一)开发环境搭建 一&a…

flink cdc oceanbase(binlog模式)

接上文:一文说清flink从编码到部署上线 环境:①操作系统:阿里龙蜥 7.9(平替CentOS7.9);②CPU:x86;③用户:root。 预研初衷:现在很多项目有国产化的要求&#…

和为0的四元组-蛮力枚举(C语言实现)

目录 一、问题描述 二、蛮力枚举思路 1.初始化: 2.遍历所有可能的四元组: 3.检查和: 4.避免重复: 5.更新计数器: 三、代码实现 四、运行结果 五、 算法复杂度分析 一、问题描述 给定一个整数数组 nums&…

某xx到家app逆向

去官网下载app即可 https://www.dongjiaotn.com/#/home查壳 360的壳子 直接脱壳即可 抓包 请求地址 https://api.gateway.znjztfn.cn/server/user/index 请求参数 {"lng": "xxxx","lat": "xxxx","city_id": "1376&…

docker搭建gitlab和jenkins

搭建gitlab 搭建gitlab首先需要一个gitlab的镜像 其次最好为他设置一个单独的目录 然后编写一个docker-compose文件 version: 3.1 services:gitlab:image: gitlab_zh:latest //此处为你的镜像名称container_name: gitlab //容器名称restart: always …

嵌入式linux中socket控制与实现

一、概述 1、首先网络,一看到这个词,我们就会想到IP地址和端口号,那IP地址和端口各有什么作用呢? (1)IP地址如身份证一样,是标识的电脑的,一台电脑只有一个IP地址。 (2)端口提供了一种访问通道,服务器一般都是通过知名端口号来识别某个服务。例如,对于每个TCP/IP实…

推荐系统重排:MMR 多样性算法

和谐共存:相关性与多样性在MMR中共舞 推荐系统【多样性算法】系列文章(置顶) 1.推荐系统重排:MMR 多样性算法 2.推荐系统重排:DPP 多样性算法 引言 在信息检索和推荐系统中,提供既与用户查询高度相关的文…

概述(讲讲python基本语法和第三方库)

我是北子,这是我自己写的python教程,主要是记录自己的学习成果方便自己日后复习, 我先学了C/C,所以这套教程中可能会将很多概念和C/C去对比,所以该教程大概不适合零基础的人。 it seems that python nowadays 只在人工…

【python因果库实战16】双重稳健模型1

这里写目录标题 双重稳健模型数据简单双重稳健模型双重稳健 IP 特征模型 双重稳健模型 基本上,这些是利用加权模型增强结果模型的不同集合模型。 本笔记展示了不同的结果模型和倾向性模型组合方式, 但由于可能的组合非常多,本笔记并不打算展…

如何恢复已删除的 Telegram 消息 [iOSamp;Android]

Telegram 是一款功能强大的消息应用程序,因其易用性、隐私保护和众多炫酷功能而深受用户喜爱。然而,有时我们会不小心删除重要的消息。在这种情况下你应该做什么? 本文将为您提供简单有效的解决方案来恢复 Telegram 上已删除的消息&#xff…

第431场周赛:最长乘积等价子数组、计算字符串的镜像分数、收集连续 K 个袋子可以获得的最多硬币数量、不重叠区间的最大得分

Q1、最长乘积等价子数组 1、题目描述 给你一个由 正整数 组成的数组 nums。 如果一个数组 arr 满足 prod(arr) lcm(arr) * gcd(arr),则称其为 乘积等价数组 ,其中: prod(arr) 表示 arr 中所有元素的乘积。gcd(arr) 表示 arr 中所有元素的…

【微服务】2、网关

Spring Cloud微服务网关技术介绍 单体项目拆分微服务后的问题 服务地址问题:单体项目端口固定(如黑马商城为8080),拆分微服务后端口各异(如购物车808、商品8081、支付8086等)且可能变化,前端难…

使用JMeter玩转tidb压测

作者: du拉松 原文来源: https://tidb.net/blog/3f1ada39 一、前言 tidb是mysql协议的,所以在使用过程中使用tidb的相关工具连接即可。因为jmeter是java开发的相关工具,直接使用mysql的jdbc驱动包即可。 二、linux下安装jmet…

2024网络安全运营方案概述(附实践资料合集)

以下是网络安全运营方案的详细内容: 一、目标与原则 目标:建立一套安全高效、灵活性强的网络安全运营体系,实现对网络安全的全面监控、防护和应急响应。原则: 全员参与:网络安全是全员共同的责任,所有员工…

使用Python进行图像裁剪和直方图分析

一、简介 在数字图像处理领域,裁剪和分析图像的直方图是两个非常基本且重要的操作。本文将通过一个简单的Python项目,展示如何使用skimage和matplotlib库来裁剪图像并分析其RGB通道的直方图。 二、环境准备 在开始之前,请确保你已经安装了以…

vue3-dom-diff算法

vue3diff算法 什么是vue3diff算法 Vue3中的diff算法是一种用于比较虚拟DOM树之间差异的算法,其目的是为了高效地更新真实DOM,减少不必要的重渲染 主要过程 整个过程主要分为以下五步 前置预处理后置预处理仅处理新增仅处理后置处理包含新增、卸载、…

【U8+】用友U8软件中,出入库流水输出excel的时候提示报表输出引擎错误。

【问题现象】 通过天联高级版客户端登录拥有U8后, 将出入库流水输出excel的时候,提示报表输出引擎错误。 进行报表输出时出现错误,错误信息:找不到“fd6eea8b-fb40-4ce4-8ab4-cddbd9462981.htm”。 如果您正试图从最近使用的文件列…

[SMARTFORMS] 创建样式模板

通过事务码SMARTFORMS创建样式模板 选择样式,自定义样式模板名称ZST_DEMO_2025 点击"创建"按钮,跳转至样式模板详情页面,我们可以在该页面上设置SMARTFORMS表单相关的样式 在段落样式处,右键选择创建节点,输…

基于51单片机和DS3231时钟模块、LCD1602(I2C通信)模块的可调时钟+温度测量+计时+闹钟

目录 系列文章目录前言一、效果展示二、原理分析三、各模块代码1、延时函数2、定时器03、定时器14、独立按键5、DS3231时钟模块6、LCD1602模块(PCF8574T驱动) 四、主函数总结 系列文章目录 前言 之前做过一个类似的,用到了很多外设&#xff…