Fiddler

——位于客户端和服务器端的HTTP代理

代理:客户端所有请求都先经过fiddler,然后转发到相应服务器

服务器端所有相应都先经过fiddler,然后发送到客户端

1. 常用的HTTP抓包工具:fiddler、charles

2. 功能

  记录客户端和服务器之间的所有HTTP请求,可以针对特定的请求,分析请求数据、设置断点、调试web应用、修改请求数据、修改服务器返回数据等

3. 使用

  默认监听127.0.0.1:8888

1)Firefox设置服务器代理

2)访问目标网站

   F5强制刷新页面时,再次发出请求

3)录制的请求显示在session请求面板

   Session——代表一次浏览器的会话

   

常见的请求资源:

常见的响应结果:

200:服务器响应成功

202:服务器已接受请求,但尚未处理

302:重定向,临时移动

401:请求参数非法(前端bug)

404:服务器上找不到请求的资源

405:请求方法不允许(不支持post、get等)

500:服务器发生内部错误,请求方法不允许(后端代码抛出异常)

503:服务没启动,服务器超时

HTTP常见状态码:http://blog.sina.com.cn/s/blog_69081e0601013dj8.html

过滤器:

1) 设置特定域名

录制指定域名的网站的HTTP请求,过滤其他域名请求

2) 设置发出请求的进程

3)设置正则表达式过滤请求头

录制满足正则表达式的那一部分请求

4) 根据http状态屏蔽请求

5) 设置请求类型和大小

6) 设置响应头

Statistic数据统计器

基本性能数据:DNS解析时间、建立TCP/IP连接时间消耗等

Inspectors观察器

传入参数及响应结果

Composer设计器

拷贝Raw中的请求信息,放到Composer的头部,请求参数放在Request Body中

点击发出请求

更改Request Body中的请求参数值,结果做出响应改变

AutoResponder自动回复器

Fiddler可用于拦截某一请求,并重定向到本地资源。

生成环境服务器上某个css/JavaScript文件有问题需要修改时,通常需要修改文件、重新发布再验证,易影响到生产环境的稳定性。又或者在开发环境中修改文件并验证,然后发布到生产环境,安全却繁琐。

利用Fiddler可修改HTTP数据的特性,可以敏捷的基于生产环境修改并验证,确认后发布。

尽量在真实环境下调试,可最大限度的减少bug发生的可能性。

使用:

1) 将请求文件保存在本地

2)选择AutoResponder,Add Rule,重定向到本地文件

此时再发出请求,请求的是本地资源

断点调试

Before Request:发送请求后,fiddler代理中转之前,此时可以修改请求的数据

设置断点:bpu xxx(对url中包含了xxx的请求设置断点,请求在到达服务器前被中断)

再次发出请求,登录无响应

取消断点:bpu(无携带参数)

再次发出请求,登录正常响应

After Request:服务器响应之后,在fiddler将响应中转给客户端之前,此时可以修改响应断点结果

设置断点:bpafter xxx(对url中包含了xxx的请求设置断点,响应在到达客户端前被中断)

取消断点:bpafter(无携带参数)

Fiddler常用命令

Select xx:筛选出请求类型

如:select image  筛选出所有图片请求

?text:匹配出所有url中包含text的请求

>size、<size:选择响应大小符合size条件的请求

=status:选择响应状态等于给定状态status的所有请求

@host:选择包含指定host的全部请求

分析测试中的bug

若未抓到请求:先查看过滤器的设置,若设置没问题,则可能是前台未发起后台的请求

若有正常提交的请求,查看请求的响应状态码(404,405,401,500等)

具体使用_参考地址:http://www.cnblogs.com/ink-marks/p/6363275.html

最新文章

  1. ngrok反向隧道--获取内网IP
  2. 转 Selenium+Python+Eclipse网页自动化集成环境配置(附简单的测试程序)
  3. Scrum - BB项目日志
  4. SharePoint Online 创建门户网站系列之母版页
  5. P/Invoke .NET调用win32API
  6. hive复杂类型与java类型的对应
  7. SQLite使用教程6 创建表
  8. hdoj 1898 Sempr == The Best Problem Solver?
  9. 两台主机打通ssh
  10. 【转】开始使用Mac OS X——写给Mac新人
  11. July-程序员面试、算法研究、编程艺术、红黑树、数据挖掘5大经典原创系列集锦与总结
  12. javascript中的继承方法
  13. Dynamics CRM 后台通过组织服务获取时间字段值的准确转换
  14. java io系列17之 System.out.println(&quot;hello world&quot;)原理
  15. 虚拟机下hadoop1.1.2安装(单机版)与(集群版)
  16. 《ProgrammingHive》阅读笔记-第二章
  17. Codeforces 1072 C - Cram Time
  18. SDI视频采集过程
  19. javascript 判断是否移动客户端 userAgent isMobile
  20. L1-027 出租(20)(STL-map代码)

热门文章

  1. 基于Docker搭建大数据集群(四)Spark部署
  2. mysql 版本引起的 utf8mb4 问题(linux centos6.9下升级mysql)
  3. 2017CCSP-01 五子棋 简单模拟
  4. sklearn 标准化数据的方法
  5. webpack原理
  6. GitHub项目徽标
  7. Map(映射)
  8. Java通过JDK动态代理简单的实现一个AOP
  9. slf4j输出变量
  10. 导图梳理springboot手动、自动装配,让springboot不再难懂