APP性能测试——流量测试

app的流量测试是性能测试中重要的指标,也是用户体验的重要部分,目前了解到的有三种方法:

1、通过安卓自带命令行获取,可能需要root权限,获取到的数据比较多、杂乱、不利于进一步的数据分析;

2、通过其他工具软件获取,例如 腾讯GT,Emmagee工具等,可能无法获取详细的网络流量信息;

3、通过代理抓包,winshark、fiddler等代理来获取流量详细信息,缺点是对于非WIFI 情况下需要想其他办法来处理。

AnyProxy是一个开放式的基于nodejs的一款可以高度定制的代理服务器,支持https明文代理,提供web界面,随时观测请求情况,同时适用于IOS设备。

Github主页:https://github.com/alibaba/anyproxy

了解AnyProxy:http://anyproxy.io/cn/

本文介绍如何使用AnyProxy代理抓包方法来测试流量:

测试App:360手机卫士(com.qihoo360.mobilesafe)

测试环境:Windows+Python3.6+Nodejs+Anyproxy开源框架

测试机型:Nexus 5X(安卓6.0.1)

一、环境安装:

python以及nodejs 安装这里就略过,主要讲下AnyProxy的安装,windows和linux都可以通过以下命令安装(建议使用cnpm,以免出现timeout):

'cnpm install -g anyproxy'

二、代理设置

手机需要与电脑在同一个局域网,如需要查看https请求,需要电脑和手机端同时安装证书文件:rootCA.crt ,手机代理主机设置成PC主机的ip,端口默认8001.

三、修改rule.js规则

我们过滤了:请求类型、请求地址、请求数据大小(字节)、接受数据大小(字节)):

四、启动服务:

命令行启动(默认端口是8001,web查看地址是http://127.0.0.1:8002)“--intercept”参数表示获取https流量:

'anyproxy --rule rule.js --intercept --port 8001'

测试中我们主要操作场景:打开手机卫士主界面,点击工具箱--更多工具--然后把实用工具里面的功能都添加上,然后返回,再对“我的工具”板块上的工具依次点击了一遍。

获取到的log.txt文件大致格式如下:

然后把得到的数据插入到Mysql:

五、数据统计分析

我们把得到的log文件插入到数据库后,可以分析出一些有用的数据:

总体消耗流量占比:

请求次数排行:

总体数据流量消耗排行:

请求app、jar包消耗的流量:

请求图片消耗的流量:

请求js、json和css消耗的流量:

请求网页消耗的流量:

其他资源消耗的流量:

六、结论

从上面的结果我们可以看出本次测试中消耗了约90MB的网络流量;其中apk文件和jar包消耗了大量的流量,占比约80%,原因可能是由于手机卫士工具箱里面的大部分工具是以插件形式下发的,请求次数在某一个接口高达64次,可能是在我们打开某个工具的时候都会优先去检测升级导致,本次测试中并没有发现严重的流量消耗。

七、总结:

在实际测试当中,我们会细分场景、细分app板块,保存不同的流量信息,并多次测试,来针对性分析,如果某个场景流量超出一定的阀值,表示这部分模块异常,则需要重点关注。当然,我们也可以结合遍历工具来测试app,这样可以做成自动化,节约时间人力成本,及时发现问题并解决,提高产品质量。

*完整代码,关注公众号后,留言获取!

-▼-

SuperTester

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180330G1L5H200?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券