接口测试中可以借助浏览器的抓包功能,除此之外还有如fiddler、charles等专业的抓包工具(主要也是http/https抓包)。
一、fiddler简介
1、fiddler工作原理
fiddler免费的应用层的抓包工具-http/https的协议报文,也是以自动代理(jmeter是手动代理)的形式抓包的。
2、下载安装
下载建议官网下载,最新的版本。
安装的时候,找盘符下创建fiddler文件夹,并自定义安装。
安装路径中不应出现中文、空格、特殊字符等,尽量也不要使纯数字。
安装过程基本就是下一步、下一步即可。
安装后打开fiddler
3、fiddler的基本功能
自动代理:capturing,再点一下这个单词就关闭了。
fiddler默认抓取http协议,如果希望抓到https协议,需要进行设置:
全程点是或者确定按钮。千万别点否。
二、fiddler的核心功能
就是抓包,可以抓http、https的报文。
1、抓http协议
电商系统首页的请求:
2、抓https的协议
抓取百度首页的请求:
三、fiddler的过滤功能
就是将会话区域的请求记录进行过滤筛选,只显示我们希望看到的、关注的东西。
1、主机过滤
zone过滤:
no zone filter:不使用该过滤
show only intranet host:只展示局域网内容请求报文,电商系统(localhost)
show only internet host:只展示互联网内容请求报文,百度首页(www.baidu.com)
host过滤:
no host filter:不使用过滤功能
hide the following hosts:下方的文本中指定的地址要隐藏
show the following hosts:下方的文本中指定的地址要在会话区显示
flag the following hosts:下方的文本中指定的地址在会话区加粗显示
2、请求头字段过滤
hide if url contains:如果url中包括后面指定的字符的话,就隐藏(不显示)
flag requests with headers:如果请求头部字段包括某个指定头字段,就加粗显示出来
delete requests headers:删除请求中某个指定的头字段。
set request header:设置请求头中的某个字段及值。
3、响应状态码过滤
hide success:隐藏所有的200状态码的请求
hide redirects:隐藏所有的重定向的请求
hide Authentication demands:隐藏所有401、407相关响应状态码的请求
四、quick exec命令行的用法
1、基础指令
?sometext:查询指定字符串的请求
>size:size是数字,表示字节数2000,2K
>2000
>2k
=200:后面跟状态码,就是过滤显示指定状态码的请求
=get:后面跟请求方式,解释过滤显示指定请求方式的请求
2、bpu的使用
断点请求报文,并修改请求报文的方式。
通过浏览器发送登录请求(bk2105_001),fiddler可以拦截请求,并修改用户名为(bk2105_002),继续发送,服务会返回登录失败结果到浏览器上。
bpu http://localhost:8088/verydows/user/login.html?step=submit
在浏览器中http://localhost:8088/verydows/user/login.html中进行登录操作(bk2105_001),一直卡在正在登录上,是因为请求被fiddler拦截了(没法到达服务器)
在fiddler中做如下设置,选择被拦截的请求,设置其表单时间为bk2105_002,点击下方的run to completion。
最后结果是到达服务器的是bk2105_002(没注册的),所有浏览器显示登录失败。
案例完成之后需要解除对请求的拦截:输入bpu,回车即可
3、bpafter的使用(mock挡板测试)
断点响应报文,并修改响应报文的内容的方式。
更改被拦截请求的响应结果。
bpafter http://localhost:8088/verydows/user/login.html?step=submit
在浏览器中输入登录信息,现在是被拦截的状态
选择要返回给浏览器的响应结果为404,点击run to completion。
查看浏览器上的结果:
取消bpafter断点,在quick exec中输入:bpafter,回车即可。
五、auto-responder
也是一种mock挡板测试的方式,给指定地址返回一个指定的响应结果的用法。
启动aotoresponder:
enable rule:勾选才能用下面的规则
unmatched requests passthrogh:不符合规则的要放行
设置mock的规则:
只要访问www.baidu.com,则返回www.qq.com
浏览器刷新百度首页,结果为腾讯页面的内容:
六、弱网测试
在网络较差的情况下,web、app的接口就会出现各种问题,需要模拟一种网络较差的情况来尽心那个测试。
实现如果的方式:
一般2g、3g
地铁、高铁、隧道等
路由器设置上行下行的速度(wifi)
软件模拟(fiddler、charles模拟网络延时)
1、设置参数
fiddler实现弱网:rules-->custom rules:
oSession["request-trickle-delay"] = "500";表示500ms上传1k字节的内容,2k/s
oSession["request-trickle-delay"] = "200";表示500ms上传1k字节的内容,5k/s
oSession["response-trickle-delay"] = "500"; 表示500ms下载1k字节的内容,2k/s
oSession["response-trickle-delay"] = "200"; 表示500ms下载1k字节的内容,5k/s
2、启动设置
3、浏览器开启百度网页
结果加载非常缓慢,用完之后记得关闭弱网功能。
七、使用fiddler抓取手机app的报文
app前端也是通过http/https协议向web服务器发送请求的。