文章目录
- 一、Fiddler详解及抓包并定位后端Bug
-
- [1.1 Fiddler概述](#1.1 Fiddler概述)
- [1.2 过滤器](#1.2 过滤器)
- [1.3 抓包需要关注的部分(重要):](#1.3 抓包需要关注的部分(重要):)
- [1.4 抓包和定位包:定位它是前端还是后端的Bug(重要)](#1.4 抓包和定位包:定位它是前端还是后端的Bug(重要))
- 二、Fiddler抓取Https协议数据及APP的包/Reqable抓取Https协议数据
-
- [2.1 Fiddler抓取Https协议数据及APP的包](#2.1 Fiddler抓取Https协议数据及APP的包)
- [2.2 Reqable抓取Https协议数据(重要)](#2.2 Reqable抓取Https协议数据(重要))
- 三、网络挟持或篡改返回结果及弱网测试
-
- [3.1 篡改返回结果](#3.1 篡改返回结果)
- [3.2 弱网测试](#3.2 弱网测试)
- 四、接口测试
- 五、Charles入门:简介,优势
-
- [5.1 Charles原理与功能:抓包机制与六大功能详解](#5.1 Charles原理与功能:抓包机制与六大功能详解)
一、Fiddler详解及抓包并定位后端Bug
1.1 Fiddler概述
基本的功能测试:点点点(必备技能)
加入Fiddler:这个相当于代理 ,只要打开Fiddler就会自动拦截请求。其他代理工具同理

也就是说客户端给Web服务器发送请求是通过Fiddler发,响应同理。中间代理的作用。
BUG: 关闭Fiddler之后,系统的代理没有自动关闭,导致无法上网。
解决办法:自己手动关闭。
Inspectors:常用页签
AutoResponse:自动响应,篡改和拦截。
FiddlerScript:脚本,经常用于做弱网测试
Filters:过滤器
1.2 过滤器
如果不使用过滤器,那么就是抓取所有的包。但是我们一般只需要抓取我们自己所需要的包即可 ,所以用到的就是过滤器,仅仅展示项目需要的包即可。

在 Fiddler 的 "Hide if URL contains" 中,过滤无用信息的常用固定写法(基于正则表达式)是:
REGEX:(?insx)/[^?/]*\.(css|ico|jpg|png|gif|bmp|wav)(\?.*)?$
综上:过滤的两点:
- 过滤ip
- 过滤css,图片等不要的包
不建议用这个软件,难用--->推荐:Reqable :

1.3 抓包需要关注的部分(重要):
请求:请求方式(get,post,put,delete),请求路径(url),请求头,请求数据
响应:响应码,响应头,响应数据,Cookie
1.4 抓包和定位包:定位它是前端还是后端的Bug(重要)
开发团队:前端开发(HTML,CSS,JS,VUE,)和后端开发(Java,Python,开发框架,数据库,设计架构)
前后端分离开发:页面是前端的,但是页面里面的数据是来自后端的接口,然后做前后端联调
如果:请求的数据是没有问题的,但是响应的数据是有问题的,那么是后端处理数据的问题。一般还要结合后端的日志和数据库去判断,看日志里面是否有exception和error。tail-f 日志文件。
如果:请求的数据没有问题,然后返回的数据也没有问题,那么就是前端显示的问题。
二、Fiddler抓取Https协议数据及APP的包/Reqable抓取Https协议数据
2.1 Fiddler抓取Https协议数据及APP的包
https=http+ssl安全加密协议,所以要去看APP必须先要破解ssl安全协议
需要有模拟器/真机
第一步:捕获和解密,Fiddler默认是不会捕获的
第二步:允许外部设备连接到Fiddler
第三步:更新你的CA根证书。需要根证书才能破解。
第四步:注意模拟器的ip要和本机在同一个网段。---ipconfig
能抓取Https的包就能抓取APP的包,因为二者是同一个协议。
2.2 Reqable抓取Https协议数据(重要)

能抓取Https的包就能抓取APP的包,因为二者是同一个协议。
三、网络挟持或篡改返回结果及弱网测试
3.1 篡改返回结果
不确定某个数据出现在的位置是否正确,不确定后台发给前台的某个报文数据是否就是前台某个地方显示的数据,可以篡改返回结果进行测试。如果篡改之后就可以100%确定数据信息。
3.2 弱网测试
在脚本里面,开启弱网测试--->速度很慢

整个页面加载起来特别慢,在页面做操作的时候,要看功能、页面有没有报错--->整个功能都很慢
if (m_SimulateModem) {
// Delay sends by 300ms per KB uploaded.
oSession["request-trickle-delay"] = "300";
// Delay receives by 150ms per KB downloaded.
oSession["response-trickle-delay"] = "150";
}
四、接口测试
需要经验比较丰富
接口测试用例:接口测试用例并评审。
接口功能用例设计:
- 正例:
单接口返回成功场景!链路接口(业务流接口)逻辑实现! - 反例:
鉴权反例:鉴权码为空,错误的鉴权码,鉴权码已过期......
参数反例:参数为空,参数类型异常,参数长度异常,
错误码反例:(根据业务而定)
其他反例场景:
如接口黑名单,单接口调用次数限制等,分页场景:(0,第一页 1,中间页 5,最后一页 10,100) - 兼容性用例:比如一个接口需要兼容多个版本的前端调用。
其他业务异常
功能测试必备:测试理论,项目实战,Linux,Mysql,Fiddler,App测试。
接口测试:Jmeter,Postman,Apifox
五、Charles入门:简介,优势
简介:它是一个基于http/https协议的代理服务器,半免费
优点:
- 1.跨平台:windows,mac,linux
- 2.支持按域名或按接口两种方式查看报文
- 3.对于弱网测试非常友好,能直接选择网络类型
5.1 Charles原理与功能:抓包机制与六大功能详解
抓包机制:

六大功能详解:

Recording settings:过滤器设置SSL
proxying settings:SSL 安全协议代理设置
Throttling setting:弱网设置
Breakpoints settings:断言设置
Proxy settings:代理设置
Access control settings:访问控制设置