app流量测试
来源:互联网 发布:局域网时间同步软件 编辑:程序博客网 时间:2024/04/28 21:02
流量测试的意义
流量测试可以给我们带来什么?
1.可以让我们很清楚的知道用户在某种场景下使用我们的产品需要消耗多少流量。
2.流量数据分析可以指导我们去做优化。
比如cgi的调用和参数设置是否合理,有些资源或者配置是否可以本地化?
3.流量的优化可以带来速度的优化
减少tcp数据包的个数,或者直接减少请求数都可以带来速度的优化。
场景:
APP性能场景典型的无非三种
首次启动,非首次启动(比如后台运行状态切换),后台运行
1、使用安卓系统自身的TCP流量计数人工计算。
场景举例: 测试某APP首次启动到彻底加载完成的流量消耗,被测包名为com.newsplus.tr
1.1安装被测APP到测试机,不启动APP。
1.2使用adb连接到测试机,
cat /data/system/packages.list | grep com.newsplus.tr
图中10216即为该包UID
1.3使用命令查看当前下行(下载)流量情况
cat /proc/uid_stat/10216/tcp_rcv
(结果中4390单位为bytes,其中10216为我们获取到的UID)
1.4启动APP到APP彻底启动
再次执行执行命令cat/proc/uid_stat/10216/tcp_rcv
1.5 rcv代表上行流量,把tcp_rcv换为snd可以查看上行流量。例子如下
cat/proc/uid_stat/10216/tcp_sed
1.6计算实际tcp上下行流量
(78145-4390)/1024计算出下行(下载)流量的大小单位KB
(25413-4338)/1024计算出上行(上传)流量的大小单位KB
注意:启动APP后的流量记录多尝试几次,当不操作APP且流量值不变化时为准。
该方法优势:简单,容易上手,容易测出对应场景下上下行流量,容易封装为脚本。
该方法劣势:协议限制性,无法进行具体的剖析。
2、使用tcpdump+wireshark抓包分析
首先使用adb发送tcpdump文件到设备,如
adb push d:\tcpdump /data/local/tmp
tcpdump常见参数
-i指定网卡(interface),any表示不限网卡;
-c指定接收的packets数量,接收完成后自动停止抓包;
-w指定输出文件,输出文件的格式为pcap;
-s(--snapshot-length)指定在每个packet中最多截取的字节数,设置为0时表示截取上限取默认值262144;
-v/-vv/-vvv,指定输出的详细程度,针对流量测试,我们不需要非常详尽的输出数据,取-v即可。
su-c /data/local/tmp/tcpdump -v -i any -s 0 –c 3000 -w /sdcard/us.pcap
使用上方命令就会调用指定位置的tcpdump把抓包的数据保存到制定文件中
然后使用adb发送文件到PC本机
adb pull /sdcard/us.pcap D:/
使用wireshark打开抓取的pcap文件
使用过滤器过滤需要显示的内容如:
ip.addr == 192.168.10.101
显示源或者目标IP为192.168.10.101的相关信息。
可以按照时间顺序查看具体的网络通讯情况
包括源IP、目标IP、协议、长度、信息
可以根据此进行具体情况进行细节的分析。
点击统计---》捕获文件属性
使用“已显示”下分组的数据*平均分组大小/1024即可计算出被过滤的数据的数据大小。
如上图就是
260*503.5/1024=127.84
优势:可以更深层次的判断具体的网络交互情况以定位网络问题。
劣势:成本较高,耗时较久,且不容易和场景事物或者操作结合。
个人平时使用一些第三方工具等进行整体流量测试,然后使用adb进行具体场景/操作的流量测试,当存在流量问题或者怀疑出现流量问题后使用tcpdump结合wireshark进行具体剖析
- app性能测试--流量
- 手机app流量测试
- app流量测试
- 安卓APP流量测试小结
- Android的app性能测试--流量
- 测试APP中的CPU、内存、流量、功耗
- APP的CPU,内存,耗电,流量测试工具
- Android APP专项测试整理-流量(net)
- Android App性能测试| 流量、电量、弱网环境
- APP的CPU,内存,耗电,流量测试工具
- APP的CPU,内存,耗电,流量测试工具
- android App流量统计
- app流量优化
- app流量查看
- Android手机APP性能测试-CPU内存流量监测工具--Emmagee
- CHARIOT测试流量1
- CHARIOT测试流量2
- CHARIOT测试流量3
- 操作系统课程记录(2)————制作grub启动盘(1)
- 最近因为项目需要,所以配置了linux下面的eclipse平台配置opencv3.0的环境,参考了一些正真有用的网页,记录
- oracle 实现 存在记录就更新,不存在就插入 merge into
- JSTL获取当日时间与数据时间比较
- VMware虚拟机的三种联网方法及原理
- app流量测试
- Maven Jetty Plugin 配置指南(翻译)
- JS实现钟表效果
- 进化之路
- Retrofit流程
- Leetcode 209 Minimum Size Subarray Sum
- 3.15 排列对称串
- 使用Java组件itext生成pdf介绍
- 学习成长