因为公司项目业务需要,前不久测试老大需要我这边对我们的性能测试apk做一下弱网测试,虽然以前弱网测试都有所了解。但是还没有实操过,作为一个三年工作经验的软件测试工程师确实是有点菜了,这里我就讲一下我根据网上教程自己去在公司内部做的一个弱网测试
这里我就先说一下我对性能测试apk关注的弱网测试点,整理了一份测试方案,测试方案就不方便放上来了,但是主要内容其实就是看各类请求耗时最多,从而让开发去对页面的访问进行访问速度的优化
做弱网测试的话单纯网络上提供的工具就有,fiddler,charles,httpwatch,Wireshark,这几个弱网工具功能是各有千秋,挑选适合自己的工具就可以了,因为公司使用的win10电脑,我就用了fiddler工具,简单好用还免费
正常下载安装fiddler的教程的网上有很多,这里提供一个CSDN的我喜欢的博主的链接去下载安装教程fiddler的安装与使用
因为我是针对app做的弱网测试,fiddler还需要另外去设置
首先你的fiddler所在的电脑和手机必须处在同一个局域网内
查看你自己的本机ip地址,win电脑可以直接cmd命令ipconfig得到
配置连接信息的话可以直接进入Tools-Options-Connections
设置手机里的代理
1.进入到手机设置-WLAN设置-选择该wifi,点击右边的箭头进去
2.点击代理选择手动
3.配置好主机名(也就是你的ip地址),与端口8888(就是之前让你设置的)
因为我需要测的app是我们的安卓开发的一个小工具app上报一些异常数据的,里面的请求都只是http请求,所以不需要另外去安装下载证书,如果你们测试的app里是有https协议的就需要自己去下载证书了
下载证书的方法也很简单我这里就顺便说一下,直接在你手机浏览器里输http://10.224.xx.xx:8888 ,这个中间的host地址就是前面查到的本机地址,然后会出现一个html的页面,单纯点击其中发蓝颜色的字体进行下载就可以了
1.手机上设置代理后,这时候fiddler上抓到的是pc和app所有的请求,如果pc上打开网址,会很多,这时候就需要开启过滤功能了。
2.打开fiddler>Tools>Fiddler Options>HTTPS>…from remote clients only,勾选这个选项就可以了
…from all processes :抓所有的请求
…from browsers only :只抓浏览器的请求
…from non-browsers only :只抓非浏览器的请求
…from remote clients only:只抓远程客户端请求
(千万注意:如果手机设置代理后,测完之后记得恢复原样,要不然手机无法正常上网。)
下面就开始步入正题了,弱网测试正式开始,之前都只是将环境布置好
接下来我们先抓取正确的接口数据,我们的app上报数据接口是post,很轻易的就能抓取到,这时可以直接查看到此接口的一个statistics分页去统计请求和响应的一些信息
这时候我们就可以进行一个弱网测试了,不过弱网测试之前你得知道2G,3G的一个上下行带宽与一个DNS延迟,这里我就直接为大家提供这份数据,因为后续修改fiddler其中的一个延迟参数需要用到。
1.设置模拟调制器的速度:
2.手动设置上行,下行速率,模拟网路速度的原理,每上传/下载1kb要delay(延迟)多久,手动进入Customize Rules里查找代码如下
//Delay sends by 300ms per KB uploaded. //每延迟300ms发送1kb的数据,也就是每1s发送3kb的数数据(每上传1kb数据,延时0.3s) oSession["request-trickle-delay"] = 300 //Delay receives by 150ms per KB downloaded. oSession["response-trickle-delay"] = 150//每延迟150ms下行1kb的数据 }
这里我们使用计算公式不难得出上行延迟与下行延迟,2G的取近似整值3000ms与1000ms,3G的就取20ms与2.5ms
请注意,当你存档之后,原本已经勾选的SimulateModem Speeds 会被取消勾选,要记得再到Rules → Performances → Simulate Modem Speeds 勾选喔!
作者:王大宝
链接:https://zhuanlan.zhihu.com/p/187044723