作者:精典伏击 | 来源:互联网 | 2023-07-27 14:39
原文:https:blog.csdn.netweixin_48520816articledetails125205162 为什么要用抓包,那就是为了更好的定位问题,让测试看起来更加
原文:https://blog.csdn.net/weixin_48520816/article/details/125205162
为什么要用抓包,那就是为了更好的定位问题,让测试看起来更加的专业
2、协助做接口测试。没有接口文档的情况下,先抓包,再调用接口测试
3、协助做接口自动化测试。看下网站或app内真实的传参情况,模拟传参去做接口自动化测试
三、fiddler的配置-抓包准备阶段
3.1 证书配置,点击Tools->Options->HTTPS
打开Fiddler菜单项Tools->TelerikFiddler Options->HTTPS,
勾选CaptureHTTPS CONNECTs–捕获 HTTPS 连接,
勾选Decrypt HTTPS traffic和Ignore servercertificate errors两项–HTTPS 请求解密和忽略服务器端验证错误
,点击OK(首次点击会弹出是否信任fiddler证书和安全提示,直接点击yes就行)
当然抓取https是需要先安装并信任证书的

信任证书


设置端口号,并保存,重启fiddler

3.2 配置fiddler允许远程连接抓包
点击Tools->TelerikFiddler Options->Connections,勾选allow remote computers to connect–允许远程电脑连接,默认监听端口为8888,端口号也可以改成其他

3.3 移动端(手机或pad)代理设置
1、确保你连的wifi和你的电脑在同一局域网,手机点击:设置-WiFi-高级,代理选择手动,主机名就是fiddler的电脑ip地址,端口号,就是fiddler的端口号ttps://img-blog.csdnimg.cn/c96ed7aa6e5943b298e511d62d17595e.png)
2、打开手机浏览器,输入:ip:端口号,回车,浏览器会自动带上http://去请求,即:http://ip:端口号
ip 可以在这里看:

3、前往之后会跳转到证书下载页,点击FiddlerRootcertificate下载证书

4、点击下载之后,安装证书,证书名字最好不要写默认,预防其他人使用你手机会把你的证书覆盖
5、安卓端直接安装,ios端证书安装后需要信任证书:设置–通用–关于本机–证书信任设置–(对应证书的开关)
安卓7.0.0以上版本 证书不太好安装,可以参考一下方法:
方法一:

方法二:
使用wifi的高级设置进行安装。以华为EMUI8.0.0(Android8.0.0)为例:设置-》无线和网络-》WLAN-》更多-》高级WLAN设置-》安装证书。
以上总结:

四、fiddler主要功能的使用
4.1 Fiddler 抓包 显示server ip
显示出现serverIp方便看当前是否走到了测试环境,是否是开发部署的IP
1、快捷键Ctrl+R ,打开 Customize Rules.js文件, 或者在工具栏Rules–》Customize Rules…点击打开
2、查找static function Main() 这个函数,在FiddlerObject.StatusText = " CustomRules.js was loaded at: " + today; 这行下面新增一行:FiddlerObject.UI.lvSessions.AddBoundColumn(“ServerIP”, 120, “X-HostIP”);保存重启 Fiddler ,则fiddler可以看到server ip一栏


4.2 返回报文乱码处理
有时候我们看到Response中的HTML是乱码的, 这是因为HTML被压缩了, 我们可以通过两种方法去解压缩。
点击Response Raw上方的"Response is encoded any may need to be decoded before inspection. click here to transform"
选中工具栏中的"Decode"。 这样会自动解压缩

4.3 fiddler过滤域名
有时候我们只想抓取自己想要的请求
我们可以在Filers面板中勾选“Use Filters”
1.Hosts第一项默认“No zone filter”
2.Hosts第二项选择“Show Only The Following Hosts”只显示过滤到的域名,多个域名使用”;“分号分割

4.4 查看响应时间
在class Handlers 最前面(也可以其他位置,最前面仅仅是不容易被{}弄乱)添加以下代码:
// 显示每行请求的发起时间:时分秒毫秒
public static BindUIColumn("BeginTime", 80)
function BeginTimingCol(oS: Session){
return oS.Timers.ClientDoneRequest.ToString("HH:mm:ss.fff");
}
// 显示每行请求的响应时间:时分秒毫秒
public static BindUIColumn("EndTime", 80)
function EndTimingCol(oS: Session){
return oS.Timers.ServerDoneResponse.ToString("HH:mm:ss.fff");
}
// 显示每行请求的服务端耗时时间
public static BindUIColumn("Time Taken", 80)
function CalcTimingCol(oS: Session){
var sResult = "0";
if ((oS.Timers.ServerDoneResponse > oS.Timers.ClientDoneRequest)) {
sResult = (oS.Timers.ServerDoneResponse - oS.Timers.ClientDoneRequest).TotalMilliseconds.ToString("N0");
}
return sResult + "ms";
}

在保存该代码,重新打开fiddler,有请求后即可看到接口耗时,可以按自己的需求把此参数往前移动,移动到方便查看的地方

4.5 拦截修改返回,模拟http响应
1.打开Fiddler 找到AutoResponde
2.选择Enable rules 和Unmatched requests passthrough–求匹配不到的话,就会请求原地址,Enable Latenc可以设置延时
3.选中左侧的http请求,然后点击Add Rule
4.在下面的Rule Editor 下拉选择要模拟的响应类型,200、404、502等(也可以自己创建Response,选中Create New Response…,如果是要替换掉某些页面文件,选中Find a file). 最后点击Save 保存下。
基本规则:
前缀为“EXACT:”表示完全匹配(大小写敏感)
无前缀表示基本搜索,表示搜索到字符串就匹配
前缀为“NOT:”表示发现就不匹配
前缀为“REGEX:”表示使用正则表达式匹配
前缀为“REGEX:(?insx)”表示匹配方式其中:
i表示不区分大小写
n表示指定的唯一有效的捕获是显式命名或编号的形式
s表示单行模式
x表示空格说明的
举例:regex:.+getGeetestCaptcha.do*

拦截成功后的请求,接口会有颜色标识
