“工欲善其事,必先利其器”——UC浏览器研发中实用测试工具

1、截包工具
      在移动应用测试上,截包是一个必备的技能。凡是跟网络请求有关的测试,基本上都须要使用到截包工具截包进行分析。好比第一期春哥专栏说到的下载劫持问题(http://bbs.uc.cn/thread-5160544-1-1.html),就是经过截包分析来确认的。
      对PC软件比较了解的同窗都知道,PC端有一个鼎鼎大名的截包软件叫Wireshark。那么在Android端是否也有这个软件呢?很遗憾,暂时没见到有人将这个软件移植到Android端。可是咱们知道,Wireshark实际上是封装了tcpdump来实现截包的。由于Android底层是linux,因而有人将linux上的tcpdump移植到了Android平台上(http://www.androidtcpdump.com/)。这也是咱们内部的测试工程师经常使用的截包工具之一。不过它是一个在adb shell命令行下才能使用的工具,因此并不适合普通用户使用。这里给你们介绍一个腾讯测试工具组开发的软件测试包——GT(http://gt.tencent.com/),它底层集成了tcpdump,用户能够经过GUI操做来实现截包。
      使用GT截包的方法很简单,打开程序,点击下边栏最右的“插件”-“抓包”打开截包界面。而后点击“开始”。由于须要ROOT权限才能使用tcpdump截包,因此此时会弹出权限申请,给予ROOT权限后就开始截包了。正常截包,能够看到下面Got的数字是会不断变大的。若是Got一直为0,则说明未获取到ROOT权限,或出现异常。开始正常截包后,home键将GT切到后台,打开被测程序,进行问题复现。当问题被复现后,回到GT,点击结束,则可生成pcap格式的网络日志包(截图演示如后)。这个包保存在/sdcard/GT/tcpdump/Capture目录下。给咱们反馈一些网络劫持或白屏等与网络有关的问题,可使用此方法,把网络日志包附上,方便咱们分析。html

 

 

 


      若是你们想看一下这个网络日志包的内容,要怎样操做呢?能够把这个pcap文件拷贝到电脑上,下载并安装wireshark软件(https://www.wireshark.org/),而后双击就能够打开这个pcap文件了。至于如何分析网络日志,不一样的问题采用的分析方法和过滤规则不同,因为篇幅有限,就不在这里展开说了。到网上搜索,有不少教程。


2、电量监控软件
      在咱们内部,作电量测试,是有专业的电量测试仪的。但那家伙太贵了,要上万块钱。并且异常的耗电是跟场景密切相关,重点在于找到异常消耗的路径 ,而不在于仪器的价格。而在监测异常耗电场景方面,软件比仪器好使。如下这几款我用的电量检测应用和方法,部分是论坛友友推荐给个人,在此感谢一下,并分享给你们。
      有些性能相关的问题,可能最终会在使用上表现出来。好比耗电问题,最终表现出来的现象多是手机发烫严重和手机须要频繁充电。但有时,人的感受是不许的,并且每一个人的感受都不同。因此你们给我反馈“感受新版本更耗电了”“使用一会就很烫”“UC耗的电比屏幕显示还多”等问题时,咱们难以判断这究竟是不是UC的bug,更难判断是否是新版UC的bug。若是你们在报告问题的同时,能附上耗电状况截图和使用场景(好比作了些什么操做,大概用了多长时间等),咱们就能更快地判断和验证问题。

方法1 查看系统耗电排行榜
      这个应该是最简单的一个方法。可是不一样的手机ROM,耗电详情显示的内容会有不一样,算法也不彻底同样。在我测试过的手机中,Nexus系列手机原生的Android系统的耗电显示应该是最为客观和详细的。通常来讲,应用的高耗电主要体如今几个地方:一、CPU占用;二、写磁盘和网络链接;三、阻止系统休眠;四、GPS。因此出现异常耗电的时候,能够看一下耗电详情里哪一个地方有异常。常见的异常有保持唤醒时间过长,后台占用CPU时间过长和GPS占用时间过长等。linux


方法2  使用LBE电池管理功能
      LBE是一款安全软件,但它也带有电池管理模块。虽然它的数据来源于系统的batterystats.bin,但和系统的耗电排行榜相比,会多带一些额外的信息。好比以前有用户就使用LBE的电池监控发现某个版本的UC有一直占用着某个传感器不释放的问题。不过LBE只能看到是传感器耗电,还不能准确肯定是哪一个传感器耗电。android


方法3 使用3C toolbox pro
      3C toolbox pro在下载了电池管理模块,并给予了root权限后,具体有强大的电池管理功能,能够看到具体哪一个进程、服务或传感器耗电。这给跟进问题带来了极大的便利。算法


方法4 使用BetterBatteryStats
      BetterBatteryStats是一个强大的第三方电池管理应用,能够看到开机后或拔掉电源后,手机电量使用的详细状况。例如查看Wakelocks分类,能够看出哪些应用在系统唤醒上消耗了最多电量。shell




3、内存测试
      可以查看手机内存占用的应用有不少,但咱们发现,即便是同一时间测试,不一样的内存管理应用看到的同一个软件占用的内存都有很大的差异。为何呢?由于Android应用大部分都是运行在最上层(应用层),它的数据都自于系统接口。而使用的系统接口不一样,获取到的数据也不同。好比内存,咱们常常说的有独立内存和共享内存,二者区别很大。
      咱们平时在分析内存占用或内存泄露问题时,通常会在adb下使用一些指令来获取程序占用内存的状况。好比dump sysmeminfo或procrank都提供了详细的信息。不过这两个指令并非每一个手机都有提供。因此这里介绍top和ps这两指令给你们使用。top和ps是linux上经常使用的两个查看进程和内存信息的指令。由于Android是基本linux开发而来的,因此这两个指令在通常的Android系统上都得以保留。使用方法是:
一、安装Android SDK(http://developer.android.com/sdk/index.html#Other);
二、将手机用USB线链接到电脑;
三、电脑运行上输入“cmd”而后回车,调出命令行操做界面;
四、输入“top”或“ps”就能够看到手机上全部存活的进程的内存、CPU的占用状况。(为了方便查看,咱们能够在命令后加上管道再prep一下,好比“top |grep UC”就能够只看带有“UC”的进程。不过grep不是每一个系统都有的)浏览器




4、其它小工具
      其它常见的测试工具还有卡顿测试、流量测试等,在这些测试上面也有不少工具,但咱们使用得比较少。好比卡顿测试,咱们能够在代码里注入测试代码进行测试;流量测试,咱们可使用wireshark代替换。若是有好用的第三方工具,但愿达人和大牛们能来分享一下!
      除了有针对性的测试工具,咱们在工做的过程当中还会使用到各类各样的小工具。好比有友友会说上面的top和ps命令要链接到电脑才能使用,很麻烦。有没有方便的方法呢?固然也是有的,手机端也有一些命令行工具。我本身比较喜欢的有“超级终端”这个工具。在上面可以完成电脑CMD上的全部操做。另外,有时应用出问题了,想从新安装一下,正常来讲须要“卸载-从新下载-从新安装”,很麻烦。其它在“超级终端”下,使用“pm clear”命令清除一下就行了(使用方法:pm clear 程序包名)。以下是重置UC浏览器(重置应用须要root权限,因此要先执行su,再执行pm clear):安全




      咱们平时测试工做过程当中,使用过的小工具还有不少不少,但我一时又想不起哪些是对你们有用的,或者你们跟贴提问吧,你们再沟通沟通。不过最但愿的仍是你们一块儿跟贴分享。网络

相关文章
相关标签/搜索