性能测试工具 GT-非官方介绍

李雷雷 · June 21, 2017 · Last by wangpengfei100 replied at March 23, 2018 · 2650 hits

GT-非官方介绍

机智的防爬虫标识
原创博客地址:https://testerhome.com/topics/9092
博客求关注: http://www.cnblogs.com/alexkn

一.GT介绍

  • 是什么:GT(随身调)是APP的随身调测平台,它是直接运行在手机上的“集成调测环境”
  • 它能做什么:
    • 可对APP进行快速的性能测试(CPU、内存、流量、电量、帧率/流畅度等等)、开发日志的查看、Crash日志查看、网络数据包的抓取、APP内部参数的调试、真机代码耗时统计等
    • 利用GT提供的基础API自行开发有特殊功能的GT插件
    • 支持android/ios

1.GT 客户端

主要是GT控制台,通过控制台,我们可以看到被测应用实时性能数据。总体来说,GT客户端跟SDK需要配合使用,才能完成很多自定义操作,而且需要在被测应用中插桩。目前不太确定,是否有足够的API帮忙做任务调度跟初始化操作。

2.GT SDK

GT需要控制台跟SDK一起使用才能发挥出最大效果,SDK也可以脱机接入,不过需要在被测应用中插桩,主要分为三步:

  • 在手机中安装 GT.apk
  • 将 SDK jar 包添加到工程中
  • 在合适的位 置插入 GT 初始化的代码

建立联系:在被测应用初始化阶段通过GT.connect(Context, AbsGTParaLoader)建立测试应用跟被测应用的联系
断开联系:完成测试后,需要在被测工程中调用 GT.disconnect(Context)方法断开被测应用与 GT 的联系

3.GT Tools

GTTools工具包是从Android GT源码中剥离并重构出来的可复用模块,在抽象过程中尽可能的考虑可扩展性。GTTools工具包主要提供给基于AndroidJUnit的测试脚本用于性能指标的采集和数据监控。
这个的使用方法跟伽利略就很像了,同样是通过驱动测试脚本,来达到性能数据收集的目的。

4.GT 广播模式

本来广播不属于GT模块的一部分,之所以单独拿出来,是因为GT的广播模式可以无侵入式监控被测应用,也可以很方便接入到平台去扩展。但是目前还没办法确定,测试精确性问题,需要看源码。

二.使用方式

1.手动使用

单独使用GT客户端,可以完成一般的性能数据收集工作,可用于手动跟进一些问题。

2.内嵌方式使用

  • 通过GT客户端跟GT SDK配合,在被测应用内部完成数据收集功能
  • 通过在AndroidJunit测试工程中使用GTTools,来完成数据收集功能,由于GTTools需要在android工程中引用,因此也没办法简单单独抽离,如果需要用于平台级别的任务调度,需要在AndroidTest工程中开发数据整理以及结果上传的模块

3.与平台集成使用

通过广播方式去启动测试任务:http://gt.qq.com/docs/a/UseGtWithBroadcast.txt
目前支持的测试包括CPU/内存/PrivateDirty/NET采集/FPS采集/流畅度采集/耗电测试/内存填充/驱动抓包

三.GT 接入的优缺点

1.优点

  • 完全开源
  • 同时支持手动跟进性能问题以及自动接入方式支持
  • 接入方式比较灵活:可以内嵌/可以以androidTest工程接入/可以通过平台方式接入

2.缺点

  • 无法完全自动化:使用 profiler 前需要先手动开启 profiler 功能
  • 应用内部插桩:需要熟悉被测应用的业务逻辑,难度相对较大。
  • 测试准确性问题:处理方法综合来看比较简单粗暴,对整体的测试准确度存疑。
  • 性能监控跨越到性能问题分析有一道天生的鸿沟

四.总结

如果想在GT做封装,可能使用广播模式驱动是比较合适的。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 6 条回复 时间 点赞
李雷雷 源码解读腾讯 GT 的性能测试方案 中提及了此贴 21 Jun 22:52

赞,搞gt系列,到时候放到wiki里去

恒温 回复

没有那么多,怕刷屏所以把所有的性能测试项的测试方法全放在一篇文章里了https://testerhome.com/topics/9094
可能最多再加一篇GT架构这样的文章。

李雷雷 源码解读腾讯 GT 的性能测试方案 中提及了此贴 22 Jun 08:39

看介绍和之前听过携程无线分享的掌测功能相似

欢迎来自博客园的朋友~

Test soldier 回复

掌测那个git地址有木有?记得当时介绍时说有1K多的star。。。

GT用广播的方式去实现,最后有没有操作?

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up