文章目录
前言
fiddler在不知道接口时可以利用fiddler抓包来结合jmeter进行测试。
fiddler可以进行接口调试、接口测试、线上环境测试、web性能分析、开发环境host配置、弱网断网测试等
配置了解fiddler
配置端口和代理
下载好fiddler后配置端口
设置fiddler的代理后就默认设置为系统代理了,谷歌浏览器和ie浏览器会自动读取系统代理。
使用抓包ie和谷歌浏览器的请求的时不用设置浏览器的代理但是火狐浏览器需要(或者设置为使用系统代理)。
安装证书
配置好端口后不能抓到https的请求只能抓到http请求,因为https请求加密了,这时就需要安装证书了
Tool-->Options
请求和响应乱码
响应信息乱码点击信息上部的提示。
请求数据中文乱码
1、windows按钮+R
2、输入regedit +回车+是
3、HKEY_CURRENT_USER\Software\Microsoft\Fiddler2
4、右键新建,选字符串值 加上HeaderEncoding 然后值输入UTF-8
基本工具功能
隐藏无用请求
抓包的信息总有很多不需要的 Tunnel to信息,可以隐藏起来方便观察信息。
断点功能
抓取请求后在重新发送请求前可以设置断点
点一下是请求前断点,点两下是响应后断点
设置全局请求前断点,设置请求前断点就是客户端发送请求到fiddler,fiddler让请求暂停了还没有发送到服务器
点击工具栏行上的go就会发送到服务器
响应后断点是指响应数据已经发送到fiddler上面了,点击go后就会返回到客户端
另外一种设置全局断点方法就是点击Rules-->Automatic Breakpoints里面的请求前断言和响应后断言
可以通过断点进行网络中断的测试,全局断点会让所有的请求断点。
局部断点通过命令行执行,bpu:请求前断点,例如:bpu login (断点包含login的请求)执行完后再次写入bpu就取消断点了
bpafter:响应后断点,例如:bpafter login (断点包含login的请求)执行完后再次写入bpafter就取消断点了
选择监听的程序
url编码
利用TextWizard进行编码,选择URLEncode进行编码,URLDecode进行解码
也可以进行其他的编码(MD5)
自动响应器 AutoResponder
修改响应
当请求出现了错误要去修改,直接在生产环境上修改会影响其他用户的使用,于是使用自动响应器拦截下来,在采用重定向到本地或者指定的响应位置去
利用AutoResponder修改图片,原界面如下:
先复制自己项目的图片地址
还得勾选第三个不然会出现如下的错误(会使浏览器没有网络)
把选择状态码改为选择新的图片路径作为自己的响应(find a file)保存之后,去页面刷新背景会变成新的图片
修改js文件在访问时弹出询问窗口,点击是或者否都跳转到别的页面,填入网址后,选择文件为我们修改后的js文件
模拟响应
如果一个功能没有写完无法响应数据可以进行响应模拟(以登录为例)
先把抓到的登录的请求拖进AutoResponder里面,选择请求右键选Edit response,然后在弹出来的窗口写响应数据,在去页面重新执行,得到响应
composer设计请求
点击composer后就可以写入get或者post请求等等各种请求信息以及参数和请求头,写完后就可以发送请求
发包测试
将想要发包的请求直接拖到composer里面,它会对请求的相关信息进行自动的填充,修改请求后由fiddler直接发包请求来测试。
如果出现了“调用 SSPI 失败,请参见内部异常。 < 要求的函数不受支持”的错误就去Rules-->Options-->Https里面添加tls1.2
默认的协议tls1.2是没有的,需要手动添加下;
点击上图中的红色方框内容,之后见下图,然后写入tls1.2就行
filters过滤器
不同的域名间用分好分隔开,或者直接换行之后写入
理论准备以及基础实操
快捷键
快捷键:F12启动或停止抓包
ctrl+X :清空所有记录
Ctrl+F:查找
选中一个请求后Shift+delete只保留这一个请求,其他的删除
按R键可以重放,按Shift和R在弹出窗口设置重播次数,请求是串行的,顺序执行
Shift+F5去缓存刷新
HTTP知识
fiddler可以抓到请求也可以抓到页面的资源以及请求的资源,例如网页的图片(png等)以及css文件和js文件(以百度为例)
http或者https协议的域名是为了更好的找到主机,一般在cmd里面ping一下就可以找到主机IP
get请求没有请求体,post请求有
HTTP报文信息一般是由请求行、请求头部、空一行、请求正文(请求体)组成,响应信息由响应行、响应头部、空一行、响应正文组成
get请求的请求体可以以参数的形式拼接到信息下面来传递
请求有其他的参数要输入时也可以添加参数
fiddler也可以阻塞一些请求信息
抓包固定的IP的请求
设置抓包固定IP的项目,不抓包其他不需要的IP
设置好后选择现在就启动
添加列
Rules--> Customize Rules...打开fiddler的脚本(c#写的)
Ctrl+F查找static function Main()字符串,然后添加以下代码:FiddlerObject.UI.lvSessions.AddBoundColumn("ServerIP", 120, "X-HostIP");
保存后重启fiddler
也可以自定义添加列,点击一列的列名之后右键,选择Customize columns
Referer处理
fiddler抓包后到jmeter里面创建、调试、执行脚本时,未执行成功,看有没有cookie,是否有信息头,信息是否正确
三个都没问题还是无法执行成功就看有没有Referer信息
Referer是HTTP请求header的一部分,当浏览器(或者模拟浏览器行为)像web发送请求的时候,头信息里面包含Referer。Referer是指明当前的连接时从哪里来的
Referer的作用就是防盗链以及防止恶意请求
在fiddler的raw里面有Referer时就把Referer信息加入请求头里面去
form-data表单类型数据
fiddler抓包后到jmeter里面创建、调试、执行脚本时遇到表单类型数据,首先找准key和value
弱网测试
Rules-->Performance里面的模拟网络限速,点击之后再去抓包就是弱网条件下的测试
打开这个网络延迟就是满足了fiddler脚本中的一个if条件设置了请求和响应延迟,可以修改参数模拟更长时间的延迟(要重启fiddler)