软件测试技术之Android性能测试—弱网环境测试方法
从安 2019-07-02 来源 : 阅读 1506 评论 0

摘要:本篇文章主要讲述软件测试技术之Android性能测试—弱网环境测试方法,希望阅读本篇文章以后大家有所收获,帮助大家对相关内容的理解更加深入。

本篇文章主要讲述软件测试技术之Android性能测试—弱网环境测试方法,希望阅读本篇文章以后大家有所收获,帮助大家对相关内容的理解更加深入。

软件测试技术之Android性能测试—弱网环境测试方法

  弱网环境

  在进行手机应用测试时,经常需要模拟网络不稳定的状态下对测试执行的影响。调研了几款工具,可以通过手动设置数据丢包率,以及网络时延等参数,模拟弱网环境。如Charles、clumsy、netlimite、atc等。

  1、几款工具的比较

  1)Charles、Fiddler这样的软件只支持短连接,也就是说只有走短连接的接口才生效,长连接的不能使用。

  缺点:不支持长连接

  2)Atc工具和苹果自带的ios developer (开发者选项)的使用方法是一样的,需要在手机端操作,atc工具需要搭建一系列环境后,手机访问一个ip地址就能看见控制页面,然后修改相应的参数即可。

  缺点:不宜操作,每次修改网络场景需要把被测app置于后台,切换到网络模拟界面改参数,然后再切回被测app。影响被测app的操作连贯性。

  3) clumsy、netlimite等这类软件易安装,安装在电脑端,手机通过共享网络连接电脑,实时的将系统接收和发出的网络数据包拦截下来,人工的造成延迟,掉包和篡改操作后再进行发送。

  4)购买一些仪器,在全公司范围搭建一个弱网环境。

  缺点:搭建成本高,需要有专门的技术人员支持。

  综合比较以上四类工具,第三类推荐在日常测试过程中使用。下面就拿clumsy举例,介绍一下环境的搭建及使用。

  2、clumsy环境搭建及使用

  1)环境准备

  windows笔记本,clumsy安装文件,共享网络

  2)安装clumsy

  clumsy免安装程序,下载完成后,直接点击exe可执行文件即可。

  下载地址:https://pan.baidu.com/s/1pLAjm2J密码: mk8i

  3)创建共享网络

  a、电脑连接网线,打开网络和共享中心

  b、点击本地连接---属性---共享---勾选第一个,并选择一个家庭网络连接(此时本地连接会显示共享的字样)

  c、cmd--输入命令(启动cmd,最好用管理者身份启动)

  netshwlan set hostednetwork mode=allow ssid=zhangyu1 key=123456789(ssid和key对应共享网络的名称和密码,key不能低于8位)

  netshwlan start hostednetwork

  至此手机就会搜索到电脑共享的网络,然后连接即可。

  3、clumsy参数说明及使用

  界面如下:

  clumsy 首先根据用户选择的 filter 来拦截指定的网络数据。在 filter 中可以设定你感兴趣的协议(tcp/udp),端口号,是接收还是发出的端口。你也可以通过简单的逻辑语句来进一步缩小范围。当 clumsy 被激活时,只有符合这些标准的网络数据会被进行处理,而你不感兴趣的数据仍然会由系统正常传输。

  当被 filter 的网络数据包被拦截后,你可以选择 clumsy 提供的功能来有目的性的调整网络情况:

  1.   延迟(Lag),把数据包缓存一段时间后再发出,这样能够模拟网络延迟的状况。

  2.   掉包(Drop),随机丢弃一些数据。

  3.   节流(Throttle),把一小段时间内的数据拦截下来后再在之后的同一时间一同发出去。

  4.   重发(Duplicate),随机复制一些数据并与其本身一同发送。

  5.   乱序(Out of order),打乱数据包发送的顺序。

  6.   篡改(Tamper),随机修改小部分的包裹内容。

  类似模拟网络环境的软件很多,大家可以针对自己的情况选择,不要找环境搭建过于繁琐的工具,简单易用就好。

  定位常用软件

  在发现问题后,定位分析时,可以借助以下常用软件。

  1、traceview使用简介

  TraceView 是 Android 平台特有的数据采集和分析工具,它主要用于分析 Android 中应用程序的 hotspot,可以方便的查看线程的执行情况,某个方法执行时间、调用次数、在总体中的占比等,从而定位性能点。 

  使用方法: 

  使用Android studio->Android Device Monitor->进入DDMS->点击开始按钮 

  Case: 在微粉首页上下滑动,滑动过程中等待图片、视频加载完成 。

  点击结束按钮出现结果如下(划分为上下两个面板,即Timeline Panel(时间线面板)和Profile Panel(分析面板): 

  Timeline Panel又可细分为左右两个部分: 

  (1)左边显示的是测试数据中所采集的线程信息。 

  (2)右边所示为时间线,时间线上是每个线程测试时间段内所涉及的函数调用信息。 

  (3)可以在时间线中移动时间线纵轴。纵轴上边将显示当前时间点中某线程正在执行的函数信息。 

        

  Profile Panel(分析面板)

  按调用次数由高到低排列结果如下图

  按照占用CPU时间从高到低排列结果如下图: 

  2、Systrace使用简介

  Systrace是Android4.1中新增的性能数据采样和分析工具。它可帮助开发者收集Android关键子系统(如surfaceflinger、WindowManagerService等Framework部分关键模块、服务,View系统等)的运行信息,从而帮助开发者更直观的分析系统瓶颈,改进性能。Systrace的功能包括跟踪系统的I/O操作、内核工作队列、CPU负载以及Android各个子系统的运行状况等。 

  使用方法: 

  使用Android studio->Android Device Monitor 

   

  进入DDMS->打开微粉APP->点击开始systrace 

  设置参数->点击OK 

  case: 在微粉首页滑动列表,滑动过程中需等待图片视频加载完成 

  在chrome地址栏中输入chrome://tracing 点击load打开trace.html文件 

  通过工具抓取的数据用浏览器打开后显示如下:

  查看Frames这一行,可以看到这里展示了被绘制出来的每一帧,并且用绿、黄、红三颜色来区分它们在绘制时的性能 

  选一个红色帧在底部给出Alter信息: 

  展开“Inflation during ListViewrecycling”这条警告(警告部分的总耗时155毫秒,远高于了我们对保障60fps所需的16毫秒绘制时间): 

  选择这一帧中最长的一块,对其进行进一步分析整个区块耗时98毫秒,而在这之中CPU只消耗了65毫秒的时间去运算。


本文由职坐标整理发布,学习更多的相关知识,请关注职坐标IT知识库!


本文由 @从安 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程