APP性能测试工具-GT

news/2025/3/31 3:00:42/文章来源:https://www.cnblogs.com/JcHome/p/18797183

GT(随身调)是腾讯研发的一款可以用来做App性能测试的工具,可以对APP进行快速的性能测试,检测App的CPU、内存、流量、电量、帧率/流畅度等等、还能开启日志的查看、Crash日志查看、网络数据包的抓取、APP内部参数的调试、真机代码耗时统计等。

虽然现在该项目已经停止维护了,但是在网上依然可以搜索到GT的apk安装包。

或者在到githud 上下载源码自行编译成apk的包,地址:https://github.com/Tencent/GT

启动后默认页面

选择被测app和开启内存助手,选择想要采集的指标

内存指标:

PSS: 用于衡量 Android 应用的实际内存占用情况。

Private Dirty:是一个重要的内存指标,用于衡量进程独占且未被交换到磁盘的物理内存大小。它反映了应用自身分配的、未被共享且被修改过的内存(如堆内存、栈内存等)。

PSS = Private Dirty + Private Clean + 共享内存按比例分摊部分。

其他指标:

CPU: 用于检测应用的 CPU 占用率、线程负载和核心分布情况.

jiffies:  GT 可以通过监控 jiffies 来分析 CPU 负载分布,帮助定位高耗电或性能瓶颈问题。

Net:  监控模块用于分析应用的流量消耗、连接状态、传输延迟 等关键指标

 在【参数】页面点击【编辑】后,可拖动选择关注的参数

在点击【编辑】后,可拖动想要关注的指标信息

 在【参数】页面点击小红点就开始采集数据,在切换到【AUT】页面,启动App并对待测业务进行响应的操作,这个过程中GT会收集指定的指标信息。

可以通过GT的启动按钮启动被测App

点击已关机的参数项,可看到当前资源的消耗图标信息

 CPU的资源信息

 

 测试完成后,点击小红点停止数据采集,可以点击【保存】图标,将采集到的数据以csv形式保存到指定路径,便于在后续调整后回归时进行数据对比。

 

 以上操作可以在非root的权限下进行,如果需要进行耗电、抓包、流畅度(FPS)测试时,需要先获取到root权限,然后在安装插件进行。

 

GT/耗时页面

 这里的耗时指的是App从点击启动到启动完成这个过程消耗的时间,而App的启动可分为冷启动和热启动两种。

冷启动是指当前手机上未启动过APP(即后台无该app的进程),从手机桌面点击app图标启动后,开始加载相关资源和初始化并完成渲染后展示的过程。

热启动是指当前App在后台运行,在切换回前台的过程。比如:同时开启多个app,再相互切换时,就是前/后台启动的过程,因为app进程并未被实际kill 死,不用重新初始化。

常见的场景如:直接将app切换后台再切回来、与电话事件冲突、锁屏与解锁(个别app)等

GT的耗时检测需要结合adb命令进行,在GT/耗时页面上,点击开启收集信息后,通过GT启动App是获取不到耗时的数据的。

# 冷启动
# 1、在GT/耗时页面,开启监控
# 2、kill 应用app后,通过adb命令 指定app的包名和活动页名
adb shell am start -W -S com.xxx.example/.MainActivity | grep "TotalTime"# 热启动
# 1、在GT/耗时页面,开启监控
# 2、将app切换到后台,通过adb命令,指定app的包名和活动页名
adb shell am start -W -S com.xxx.example/.GoodsListActivity | grep "TotalTime"

 

GT/日志

 日志默认是关闭的,需要开启才能看到日志信息

 

GT/插件(要基于root权限)

耗电数据采集:主要是检查在使用App时耗电情况,比如App在频繁进行读写或渲染时,cpu在高频操作下,发热时耗电量会加快。或者其他因素影响耗电情况,如在雪地中

抓包:GT提供抓包的工具tcpdump,因此在开启抓包后,会将app的接口信息存放到pcap的文件中,可以通过wireshark工具来打开查看接口信息。

warelock锁:通过GT设置是否锁屏用的

内存填充:是用来检查内存溢出或内存不足等场景用的,比如现在手机内容4G,被测App占用了1G,通过GT设置占用内容2867.2MB左右(总共3.8G),剩余可用200多MB的情况下,app能否正常运行。如果内存不够用或溢出的时候,就更容易检测出来。

流畅度调试:就是FPS, 检查在滑动页面或其他操作时,是否存在卡顿的情况。一般手游的话会特别需要关注FPS的数值。

这个操作大概是:开启root权限启动GT后,先不用选择被测App,直接进入到插件页面,选择流畅度调试,

点击检查:提示NOT OK, 然后点击更改,再返回上一步(不用重启),再次选择流畅度调试,再次点击检测,就会显示:OK ,

然后再回到参数页面,选择FPS指标并开启监控,再回到AUT页面选择被测App然后启动就可以了。好像也不用重启也行。

 效果如下:

 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一文速通Python并行计算:04 Python多线程编程-多线程同步(上)—基于条件变量、事件和屏障

本文介绍了Python多线程同步的三种机制:条件变量(Condition)、事件(Event)和屏障(Barrier),条件变量指的是线程等待特定条件满足后执行,适用于生产者-消费者模型;Event指的是线程通过事件标志进行同步,适用于线程间简单通信;Barrier指的是多个线程需同步到同一阶段…

docker desktop windows安装

我的机器windows 11 家庭版 下载docker desktop for windows 就直接安装了。安装后打开,遇到了界面转圈圈加载不出来问题,docker engine也是stopped. 病急乱投医,先是说要启用hyper-v,控制面板=》程序和功能里没有发现有hyper-v,一看是家庭版,网上倒是有一个脚本可以在家…

C语言打卡学习第6天(2025.3.25)(补发)

只做了一些有关循环分支函数求值的题,感觉循环函数其实差不多,只有一些细微差别,可能是做的题还不够多或者看运用场景吧

C语言打卡学习第5天(2025.3.24)(补发)

1、把char,getchar,putchar简单看了一下,求ascii值之类的 之类的简单看了一下 2、交换值那一题很奇怪,结果我输出的跟答案要求是一样的,交过去之后显示答案错误,白天的时候问一下

Vulnstack红日靶场通关(持续更新)

带你速通内网渗透相关知识点!!!Vulnstack通关 来源于《内网渗透实战攻略》实战部分 个人是写下自己的笔记 攻击链:探索发现阶段->入侵和感染阶段->攻击和利用阶段->探索感知阶段->传播阶段->持久化和恢复阶段 Windows权限级别前置知识:权限层级 账户类型 权…

Ubuntu 24.04安装MySQL,并且配置外网访问

安装启动更新软件包列表sudo apt update安装MySQL软件包sudo apt install mysql-server启动MySQL服务sudo systemctl start mysql重启命令:systemctl restart mysql配置外网访问 需要修改一个配置 vim /etc/mysql/mysql.conf.d/mysqld.cnf注释掉 这行 配置 bind-address …

2022CCPC Online Contest G - Name the Puppy

对正串和反串分别建立 Trie 树,定义 \(dp[i][j]\) 表示正串 Trie 树上编号为 \(i\) 的点匹配反串 Trie 树上编号为 \(j\) 的点所能拼出最长 anti-border 的长度。 如此,从根节点开始搜索,直到无法匹配为止都可以搜,搜到底后回到根节点继续匹配,可以证明,拼出来的 anti-bo…

互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(四):结合BotSharp智能体框架开发语音交互

前言 前段时间太忙了博客一直都没来得及更新,但是不代表我已经停止开发了,刚好最近把语音部分给调整了一下,所以就来分享一下具体的内容了。我想说一下,更新晚还是有好处的,社区已经有很多的小伙伴自己实现了一些语音对话功能的案例,比如小智也有.NET客户端了,还有就是一…

【AI News | 20250327】每日AI进展

AI Repos 1、playwright-mcp 使用Playwright提供浏览器自动化功能的MCP服务,核心是让LLM通过结构化的可访问性快照与网页交互,不需要依赖截图或视觉模型。可以用来自动填写网页表单、自动收集网页信息、自动进行网页测试等。支持两种模式:快照模式(默认):使用可访问性快照…

markdown常用命令行格式

Markdown 主要命令(语法)如下:标题 使用 # 号表示标题,# 的个数决定标题的级别:一级标题 二级标题 三级标题 四级标题 五级标题 六级标题段落 & 换行 直接输入文字形成段落,使用两个以上空格或 进行换行:这是一个段落。 这是同一段的下一行。 使用 <br> 也可…

微调可以获得什么

1.改变模型的行为: 使模型的响应更稳定; 使模型聚焦于某一领域; 发展期潜力,在某一方面更加出色,比如对话 2.获取新的知识: 学习预训练阶段没学过的知识; 纠正过时的错误和信息;

2022CCPC Online Contest G - Count Permutation

利用大写字母较少的性质,记录两个大写字母中间的串是否相等来进行转移。 设 \(f[i][j]\) 表示考虑用到第 \(i\) 个大写字母的时候,\(s\) 匹配到第 \(j\) 个字符时最长匹配数。当前大写字母 \(t[pos[i]] = s[j]\) 时,显然有 \(f[i][j] = f[i][j - 1] + 1\)如果 \(s[pos[i - 1…