一、什么是Fiddler
Fiddler是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据。
其工作原理为:Fiddler是一个抓包工具。当从浏览器上访问服务器时会形成一个请求request,此时Fiddler在中间监视抓取这个request数据包。同样地,当这个request抵达服务器,服务器对这个request作出response返回到个人浏览器时,Fiddler也会抓取到这个response数据包。
如下图所示:
二、实操
1.下载Fiddler
方式一:直接在腾讯软件中心下载Fiddler4
方式二:在Fiddler官网上下载
注意不是Fiddler Everywhere
安装过程不再赘述。
2.打开Fiddler4
在没有网上冲浪下,Fiddler4的页面时空的 如下图:
如果在其上端跳出黄色字条 及时按其指示点击即可。
proxy是代理服务器不用理会。
(这英文看得懂的啊 不点 后面冲浪啥操作都不会有反应)
3.在网页上打开教务网站
此时可以看到fiddler4会跳出许多条sessions。(下图左边栏)
这些就是fiddler抓取到的数据包 原理前文已述。
每次在浏览器的点击操作fiddler都会抓取 并在边栏的会话列表中展现出来。
另一边来到选课界面:
另:此时可能在fiddler4的会话列表里有非常多条的sessions。
这时可以点击上边的一个×图标 并点击Remove all 让会话列表里干净一些。
4.找到抢课时从自己客户端发送学校教务服务器的request
此时点击“提交选课信息”。
在fiddler中可以看到如下图的session。
从HOST和URL也可以看出是发送到教务的。
此时点击这条#1的session 显示如下图:
①板块是客户端发出的request
②板块是教务服务器的response
可以明显地看到在response中
msg=系统不在开放时间内,请稍后再试!
很熟悉对吧
那么就可以得知这个session里的request就是在抢课的时候发给教务服务器的。
这个就是我想要的。
5.抢课crazily
右击该session 点击replay中的Reissue Sequentially。
随便输入数字 点击ok 就可以看到fiddler在重复执行这项session。
这可以理解为向教务服务器发送100次“我要选这课”的request。
相当于100位同学同时(严格讲之间还是有毫秒级的时间间隔)点击“提交选课信息”按钮
其优越性就体现在此:正常在教务抢课发送一个request后,教务服务器需要对其作出反应。在众多crazy同学的请求下,学校的土豆服务器往往不堪重负。此时页面通常会处于一个loading状态,每一个点击都会卡得要命。那么在fiddler上操作不需要等待response的到来,它提供了一个能不断发送request的平台。那么这个抢课成功的可能性就会大大提高(不过网速仍是关键)
如果选课成功,那么在response的JSON中的msg(如前文截图)就不会再是“系统不在开放时间内”或“人数已满”。而会是“选课成功”或“你已经选过该课程”。
在实际抢课中,让fiddler重复的命令在能开始选课的前一两秒就可以让fiddler开始执行了。即18:00开始选课,fiddler在17:59:58开始重复操作。那么结果,打个比方,在100条session的response中,前50条可能是“时间不在开放时间内”,第51条为“选课成功”,52-100条是“你已经选过该课程”。
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理