Fiddler原理:
Fiddler就是以代理服务器的方式,监听系统的网络数据流动,它使用代理地址:127.0.0.1,端口:8888,启动Fiddler后,所发生的网络数据都会通过Fiddler进行中转,然后记录所有客户端和服务器的http和https请求,它允许监视,设置断点,甚至修改输入输出数据,Fiddler无论对开发人员或者测试人员来说,都是非常有用的工具。
如何使用Fiddler:
下载地址:https://www.telerik.com/download/fiddler
一、使用Fiddler获取Web数据:
首先,启动Fiddler,然后在浏览器中设置代理服务器,选择【手动】,设置127.0.0.1:8888代理,设置路径如下图:
设置HTTPS请求,否则只能获取到HTTP的请求,代理设置后在Fiddler菜单【Tools】→【Options…】设置HTTPS请求,勾选【Capture HTTPS CONNECTs】和【Decrypt HTTPS traffic】,然后根据需要选择截取流量路径,默认【…from all processes】,选择后页面证书相关提示,根据页面提示安装证书
二、使用Fiddler获取移动端数据:
首先,启动Fiddler,然后在Fiddler菜单【Tools】→【Options…】设置HTTPS请求,选择【…from remote clients only】,点击【Actions】→【Export Root Certificate to Desktop】导出证书到桌面
设置【Connections】,勾选【Allow remote computers to connect】允许远程计算机连接
移动端设置代理,首先导入桌面的证书发送到手机并安装证书;然后进入当前连接网络详情,点击【代理】,选择【手动】,主机名输入当前运行Fiddler的电脑IP,端口输入8888,保存退出,设置完成。手机端访问百度测试一下是否可正常访问网络且Fiddler是否获取到请求数据
Fiddler常用功能:
清除会话、过滤请求、清除请求——Remove all:清楚所有;Images:清除图片;CONNECTs:清除链接;……
复制链接——仅复制URL;复制消息头;复制Session;复制请求数据;……
捕获数据开关及数据来源——Capturing表示捕获开启,再次点击表示关闭捕获。All Processes:捕获所有进程数据;Web Browsers:仅捕获web浏览器数据;Non-Browser:捕获非浏览器的数据;Hide All:捕获开启,但隐藏所有数据
使用检查器【Inspectors】查看请求数据和响应数据。
请求数据中常用选项卡:Headers、WebForms、Cookies、Raw和JSON;
响应数据中常用选项卡:Headers、Cookies和JSON
组合器:类似postman
重新执行请求:常用Reissue Requests:重新请求;Reissue and Edit:编辑并执行请求——即打断点,修改请求参数后继续请求;Reissue and Verify:验证请求
断点:①断点开关,亦可通过上一步的Reissue and Edit打断点,②选择请求,③修改请求参数,④放行继续请求,查看请求结果以验证接口的正确性
标记:捕获数据时会出现大量信息,此时可使用【Mark】标记需要查看的请求
过滤器:点击选项卡【Filters】,勾选【Use Filters】
Hosts:
【No Zone Filter】不做过滤;【Show Only Intranet Hosts】只显示内部网主机;【Show Only Internet Hosts】只显示外网主机
【No Host Filter】不做过滤;【Hide the following Hosts】隐藏以下请求主机,在文本框输入主机地址;【Show Only the following Hosts】仅显示以下请求主机,在文本框输入主机地址

还可根据客户端进程、请求头、断点、状态码、响应类型和大小、响应头进行过滤,稍加尝试即可明白怎么使用,不再赘述
最后提供一个通过Fiddler导出jmx格式的文件,直接在Jmeter中打开,点击此处下载,提取码:6s6i
使用方法如下
①将文件拖拽至Fiddler安装目录的ImportExport目录下
②重启Fiddler,先抓取一些数据,通过过滤条件及手动移除一些不必要的数据后,点击File→Export Sessions→All Sessions
③选择JMeter脚本,点击Next
④保存jmx格式文件
⑤运行JMeter,将保存的文件拖拽着JMeter内,对请求稍作修改后再运行
以上的通过脚本录制的方式不推荐使用,工作中应以接口文档为主,同时配合抓包工具获得真实接口信息为辅,因为脚本录制会产生大量多余信息,或者过滤条件及人为因素导致必要信息缺失进而脚本无法运行,还是要有针对性的对某接口进行抓包,再通过JMeter进行测试较为稳妥,而不是直接修改使用录制脚本