移动应用测试篇(4)——App测试技术(2)

APP专项测试——流量测试

移动互联产品给用户带来了很大的便利,但是在未来的一段时间内,移动 络的带宽还是比较有限,毕竟流量也是用户要付费的。这使得用户会关心他使用的App使用了多少流量,因为这直接关系到用户的资费账单。一些不好的App设计,或者缺陷,比如频繁在后台联 去服务端获取信息等,这些都会导致用户卸载App,或者引起投诉。因此进行软件的流量测试是很有必要的。

接下来我们就讨论如何针对Android和ios平台进行流量测试。

以下讲述3种流量测试,方法:手机上抓包、基于WiFi代理的fiddler工具抓包、Android自带的抓包方式。

1:手机上抓包 tcpdump+wireshark(参考adt结合使用)

在后台系统开发和测试中,借助工具抓取 络包(简称:抓包)来进行 络层的分析师一种常用的技术手段,常常使用的抓包工具有Wireshark和linux下的tcpdump。

由于Android系统是基于Linux的,所以可以使用tcpdump这个工具,但有一点特殊要求是手机一定要获取ROOT权限,下面就来详细给大家讲解一下如何使用Android的tcpdump获取流量信息。

前要:先使用adt安装android,然后打开虚拟机,详情参考资料(android开发

环境的搭建)

步骤1::先下载Android版tcpdump文件(

https://www.androidtcpdump.com/android-tcpdump/downloads)

步骤2::将tcpdump通过adb shell命令上传到Android虚拟机上去:

adb push tcpdump /data/local/tcpdump (上传数据包)

adb shell chmod 6755 /data/local/tcpdump (权限)设置

Tcpdump

? 语法:adb push [ tcpdump的window绝对路径] [/data/local/tcpdump]

adb shell chmod +[权限值] [data/local/tcpdump]

? 步骤3:使用tcpdump抓取流量数据包

adb shell—进入adb shell

su root–切换到root账户

/data/local/tcpdump -s 0 -w /data/capture.pcap -v

data/local/tcpdump -s 0 -w /data/capture.pcap -v

详解:

-s 0:抓取数据包时默认抓取长度为68字节。加上 –s 0表示抓取完整的数据包信息

-w /data/capture.pcap:表示把抓取的数据包文件保存在Android虚拟机的/data 文件夹下,

-v:表示在命令执行中显示当前的包的数量

? 步骤4:使用adb pull /data/capture.pcap下载文件到windows系统下

? 步骤5:使用wireshark打开capture.pcap数据包文件,并分析数据

? 步骤6:wireshark打开刚刚的抓包文件,使用filte做过滤,根据wireshark显示过滤器的语法,假设APP对应的目标服务器的地址是(121.14.76.22)

? Filter的语法:

“入流量” ip.src == 121.14.76.22

“出流量” ip.dst == 121.14.76.22

? 统计总流量的方法Statistics菜单:

– 简单查看流量统计可以看第一个Capture File Properties

file:显示总体信息

time:显示抓取第一个、最后一个的时间和整体时间间隔

capture:OS名称、抓包的接口

interfaces:所有抓到流量与接口的详细情况

statistics:提供各种详细的数据

? 2:使用fiddler工具分析 络流量(ios/android通用流量测试方法)

步骤1:被测手机和电脑要在同一局域 或者电脑开热点,手机连接在手机上设置wifi代理为:手动.代理主机填写window电脑的ip代理端口填写:8888

? 查看本机电脑ip

? 如果是和手机在同一局域 :

? 无线局域 适配器WLAN的ip

? 如果是电脑端开的热点:

? 无线局域 适配器本地连接*数字的ip

? 步骤2::设置fiddler工具,如下图所示:

在tools下的fiddler options的https栏勾选3个选项

? 在 connection上全部勾选上,并默认端口为8888

? 注意设置好之后最好重启fiddler

? 抓取APP上的HTTPS请求

? 1.如果app都是http请求,是不需要安装证书,能直接抓到的,如果是https请求,这时候手机就需要下载证书了。

? 2.打开手机浏览器输入:http://192.168.xx.xx:8888 ,这个中间的host地址就是前面查到的本机地址。

? 3.出现如下画面,点箭头所指的位置,点击安装就可以了。

? 步骤3:下面使用fiddler抓取的手机打开微博时请求和响应时的流量大小

? 3:通过系统自带的统计功能统计流量

? Android使用ADB通过uid可以查询到流量统计

? 具体方法:proc/Uid_stat/{uid}/tcp_snd

? proc/Uid_stat/{uid}/tcp_rcd’

? 限制条件:

? 1:要在真机环境下

? 2:真机要获取root权限

2、对应的情况是,在Mac上可以使用Charles作为代理,以及请求、响应显示的工具,同学们可以自行在课下研究。除了使用抓包工具进行流量的获取之外,还可以使用其他方法获取 络流量,比如App内部通过代码统计接口的数据量等,由于此部分的讲解过于复杂,这些测试方法将由同学们在

今后的工作中自己去逐步深入的了解和学习。

常见的流量节省方法

1:数据在不影响体验和功能下进行压缩,比如 页js文件压缩、图片压缩。

2:不同数据格式的采用,比如采用json格式作为接口返回格式通常比XML格式要小。

3:优化数据的下载,比如采取分屏加载的方式来减少流量的损耗。

4:本地缓存, 可以将客户端获取的一些图片、js文件都暂时的缓存起来,减少 络数 据加载。

5:针对不同 络类型设计不同的策略,比如2g/3g 络手动下载图片等方法来优化 络。

? 3.流量测试应该注意的测试项:

1:应用首次启动的流量提示

2:应用后台连续运行2小时的流量值

3:应用在运行极限的平均流量值

4:针对场景法涉及的应用主流程方面的测试

5:在首次登陆时的平均值

(未完待续…)

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年4月25日
下一篇 2022年4月25日

相关推荐