微信号:grzlwx

介绍:光荣之路官方资讯

基于fiddler插件开发的移动测试网络监控与分析

2015-12-24 22:19 光荣之路

吴老的《selenium webdriver 实战宝典》出版了!

一、背景和目的:

由于目前App前端业务测试很少关注后端网络接口的异常情况,客户端QA在项目测试时往往局限于关注测试功能,导致测试粒度较粗。即使按照CheckList过功能点,客户端QA对后端接口的覆盖情况也很难做到明确把握。

Fiddler是我们在客户端测试时使用比较普遍的工具,常用于HTTP抓包、构造请求等等。原生的fiddler插件,缺乏对包大小,网络请求时 长、接口访问频次、接口覆盖度等维度进行网络请求的分析,同时提供网速控制的功能,下文介绍开发定制fiddler插件辅助app业务测试。

二、工具实现原理

首先了解一下fiddler的实现http代理请求的原理,方便我们深入的研究。Fiddler实现的原理是截获了windows的winnet接口,在 转发服务器请求和响应的阶段,可以hook住传递的参数,达到监控甚至修改网络数据包的能力。如下图所示,fiddler提供了4个接 口,AutotamperRequestBefore,AutotamperRequestAfter,AutotamperResponseBefore,AutotamperResponseAfter。

我们在自己插件中实现这四个方法即可满足我们自己的测试需求。在我遇到的项目中,我们实现了以下功能。

1、 发现网络请求包的异常问题,例如,接口数据包大小过大,帮助分析接口是否存在冗余数据,从而节省用户使用app的网络流量负担。

2、 发现网络请求时间超时异常问题,例如,发现接口访问时间过大,帮助发现后端潜在的逻辑错误。

3、 发现网络请求访问频次异常问题,例如,app页面缓存机制是否正常;接口是否因为发送时机不对导致频繁发送。

4、业务测试可以分析接口覆盖度,指导后续测试重点,使测试点更完整,避免漏测。

5、修改请求响应延迟,模拟各种网速,如2,3g网络,断网等情况,方便测试各种网络异常case。

程序示例如下:

三、工具的主要功能:

  1. 包大小分析:

Packet Size tab 显示根据host.ini中配置的host过滤结果,按照请求的包的大小进行降序排列;用于分析异常的网络请求数据包。

Reset按钮前面的两个数字分别对应测试过程中,请求的总流量和总耗时;

两个窗口分别实时显示请求的包大小和请求的次数,并给出峰值;

2.请求时长分析:

过滤之后的URL按照请求耗时的降序排列,请求耗时为ClientBeginRequest与ClientDoneResponse之间的时间差值。根据网络请求耗时,判断异常请求。

<未完待续>

(作者:百度MTC 来源:http://www.cnblogs.com/baidumtc/p/5057176.html)

公益传播测试知识、技能与正能量!感谢作者!
分享测试生活,思考测试人生!欢迎投稿!
文章图片来自网络,如有侵权请见谅,请联系我们妥善处理。
735821166@qq.com

光荣之路
软件测试培训


官网:www.gloryroad.cn

微信公众号:gloryroadtrain

性能测试QQ群:415987441
测试招聘QQ群: 203715128
自动化3群QQ: 371211499

Python群:457561756


 
光荣之路 更多文章 今天晚上的 linux 公开课- Awk 编程 7月28日(今天)晚上的 linux 公开课- shell编程 8月4日(今天)晚上的 linux 公开课- shell编程 9月1日(本周一)晚8点半,光荣之路Web自动化系列基础课—javascript第二讲 推荐本好书《与机器赛跑》
猜您喜欢 你还在等什么,咱们去干管理吧(企业经营之道) 你花钱的那一刻,是你离有钱人最近的一刻 跨域资源共享 CORS 详解 推荐大家使用的CSS书写规范、顺序 学C++之前要先学C语言吗?