APP性能测试——流量测试(一)

article/2025/10/24 7:28:22

写在前面:

        第一期主要介绍如何通过anyproxy工具进行流量测试,二期介绍如何通过adb 命令实时监控wifi、4G下的上行以及下行流量值。

 

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

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

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

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

 

        AnyProxy是一个开放式的基于nodejs的一款可以高度定制的代理服务器,支持https明文代理,提供web界面,随时观测请求情况,同时适用于IOS设备,不足点:由于需要设置代理,本地测试无法抓取4G情况下的流量信息。

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

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

 

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

 

测试App:某安全类手机app

测试环境: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'

    测试中我们主要操作场景:打开app,随机点击几个功能模块进行测试

 

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

图片

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

图片

 

五、数据统计分析

    由于可能涉及到app的隐私数据,敏感数据打了马赛格处理。

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

 

总体消耗流量占比:

图片

请求次数排行:

 

图片

 

总体数据流量消耗排行:

图片

 

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

 

图片

 

请求图片消耗的流量:

图片

 

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

图片

 

请求网页消耗的流量:

图片

 

其他资源消耗的流量:

图片

 

六、结论

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

 

七、总结:

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

 

 

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

-▼-

长按二维码关注QuTest,定期分享技术干货,欢迎投稿!

图片

QuTest


http://chatgpt.dhexx.cn/article/gUk7f8rd.shtml

相关文章

软件测试简历包装我们会了,但测试人的自我“包装”呢?HR自我介绍包装小技巧【建议收藏】

小编热衷于收集整理资源,记录踩坑到爬坑的过程。希望能把自己所学,实际工作中使用的技术、学习方法、心得及踩过的一些坑,记录下来。也希望想做软件测试的你一样,通过我的分享可以少走一些弯路,可以形成一套自己的方法…

软件测试人员应该如何介绍自己测试过的项目

测试人员在找工作的过程中,通常有一个问题是很难绕开的。就是要如何向别人介绍自己之前做过的项目。下面我们就这个问题简单的做一些分析。 要解决这个问题,大体上可以分为如下几个步骤: 1、对项目进行基本介绍 2、说明自己负责测试的模块 …

安装Node出现2502问题

安装nodejs时出现2502/2503错误解决方法 解决方法: 1.以管理员身份运行cmd 2.在cmd中打开msi文件的目录 切换d盘符为: d: 返回上一文件夹:cd … 打开文件夹:cd 文件夹名称 3.执行命令 msiexec /package msi文件名 4.弹出nod…

安装应用程序遇到2503、2502解决办法

原因:主要是权限不够。 方法一:右键,管理员身份运行。 方法二:管理员命令提示符,输入“msiexec /package E:download\SmarTTY.msi”

window系统下**Node环境安装失败: 错误代码: 2502 、2503

Window系统**Node环境安装失败: 错误代码: 2502 、2503 失败原因: 系统账户权限不足 如下图所示: 解决办法: 以管理员身份运行powershell命令行工具输入运行安装包命令msiexec /package node 安装包位置 例如:  复制的文件路径不用Ctrlv, 在命令行工具点击右键…

MT2502开发环境搭建

MT2502 patch merge、编译环境搭建、编译及版本flash ( 文档中所有安装包都可以从这里获取到:链接: http://pan.baidu.com/s/1qW8warM 需要的私聊 编译环境搭建 运行环境:windows xp、windows7(环境需要做一些更改) windows…

如何修复 Windows 中的 2502 或 2503 错误

1、问题描述 在安装 node-v12.16.1-x64 -win64.msi 软件时报2502/2503错误,导致安装失败。 2、分析解决 2502/2503 错误通常会在 Windows 上安装或卸载程序时出现。 2502/2503 错误的根源来自 Windows 上的 MSI 安装服务。无论何时卸载或安装程序,都必…

window 10 安装node.js时遇到2502 2503错误(已解决)

node安装失败2503的解决办法:1、在WIN搜索框搜索powershell并右击;2、点击使用管理员身份运行powershell命令行工具;3、输入“msiexec /package node”;4、打开安装包,根据提示安装即可。 本文操作环境:Win…

Windows安装Go/Python报2503/2502问题解决

关注【潇湘信安】、【Hack分享吧】公众号,一起学网络安全知识! 0x01 问题描述 我们在Windows安装Golang和Python等环境时出现下图报错:the install has encountered an unexpected errer installing this package.this may indicate aproble…

node安装或卸载报错2502,2503问题解决

node安装或者卸载报错2502,2503 一、需求 大概需求是node版本过低需要升级版本,操作是将高版本node覆盖掉原版本node。 二、报错原因 出现原因可能是因为电脑系统权限没有给到node安装包,究其根本还是系统权限问题。 三、解决 方法一 1.winr 后输…

安装或卸载时错误 2502 和 2503修复

Windows11安装Python的时候出现的错误,导致安装失败。 解决办法: 管理员运行cmd 将安装的Python程序包,右键发送到桌面 右键桌面快捷方式,属性 拷贝文件路径 在cmd中右键,复制 回车运行,完美安装

MT2502 Wearable长按PWRKEY关机和复位问题

MT2502智能穿戴芯片模块解决方案资料分享:[FAQ14052][MT2502 PWRKEY]长按PWRKEY关机和复位问题 该功能是新增的,主要是为了让Wearable无法拔电池的产品,在系统死机,SW不起作用后,有个强制关机或重启的方法&#xff0c…

ds2502的stm32程序及分析

ds2502在一次性器件上应用较多,通过写入时间或特定的信息做限时使用(一次性)保证, 因为ds2502 每位只能由逻辑 1 编程为逻辑 0,但永远不能从逻辑 0 改为逻辑 1(Individual bits can be changed only from a…

mt2502穿戴芯片模块方案,mt2502开发板原理图资料介绍

MTK LinkIt Assist mt2502 v1.0.3 开发板原理图 Autocad mt2502平台智能穿戴模块定制开发,mt2502方案开发,mt2502开发技术资料,可到一牛网论坛 http://bbs.16rd.com/thread-24867-1-1.html mt2502平台资料:

MT2502处理器参数,MT2502智能穿戴芯片资料介绍

MT2502家族芯片采用高度整合、超轻薄的系统封装,支持双模蓝牙功能及整合式2G modem,微型控制器单元采用ARM v7架构,具备整合内存控制器。专为单一功能型可穿戴设备所打造的高度整合式系统单芯片,体积超轻薄,采用ARM7EJ…

mysql中2502_mysql出现错误代码2502怎么办

mysql出现错误代码2502的解决方法:首先运行CMD;然后输入命令【msiexec /package "D:\搜狗高速下载\mysql-installer-community-5.7.10.0.msi"】即可。 mysql出现错误代码2502的解决方法: 解决办法一: 1.运行CMD(管理员) 2.输入以下…

MT2502 datasheet,MT2502硬件设计,MT2502芯片资料

MT2502家族芯片采用高度整合、超轻薄的系统封装,支持双模蓝牙功能及整合式2G modem,微型控制器单元采用ARM v7架构,具备整合内存控制器。专为单一功能型可穿戴设备所打造的高度整合式系统单芯片,体积超轻薄,采用ARM7EJ…

代码优化③——Android Studio自带代码扫描工具Lint

前言 前面介绍了AlibabaIDE插件和通过JenkinsSonarQube 两种方式审查书写代码规范的方式,今天介绍下AndroidStudio 自带的代码扫描工具。 按图所示运行Lint检查项目工程: 点击OK,等待扫描结果: 由于当前安装了Alia的扫描插件&…

代码质量提升,代码扫描 review 之 Codacy 工具使用

目录 一、什么是Codacy二、GitHub 上使用 Codacy三、Codacy上导入GitHub项目 一、什么是Codacy Codacy 是用于代码 review 检测(即代码审查)的工具,目前支持对40多种编程语言检测,如 c、c、c#、java 、python、javascript 等。 Codacy 可用于 GitHub 和…

Android 自定义 Lint 实现静态代码扫描工具

文章目录 关于静态代码扫描工具Lint的简单使用一、Lint 与 IDE 的结合使用二、Lint 与 gradle 命令的结合使用具体位置如下图:生成的HTML在浏览器打开如图: 自定义 Lint为什么需要自定义 Lint?Lint 需要自定义检查的问题参考美团的方案针对 Lint 实施的…