接口测试 fiddler,手机抓包,mock接口,手机设置代理后无法上网,无法打开证书下载页面

时间:2024-10-26 07:45:57

端口号范围:0~65535
默认端口号:http 80;https 443;mysql 3306;oracle 1521;sqlserver 1433
请求方法:
get用于查询,搜索数据
post用于提交数据(增删改),数据有变动的
put用于修改数据,修改数据的全部字段
patch用于修改数据(部分数据字段)
delete用于删除数据
参数之间用&连接
#接口请求组成
协议 方法 域名/ip 端口号 接口地址 参数
参数名1=值1&参数名2=值2&。。。。。
get 没有请求类型
参数在接口地址里,,数据传输不安全
post 有请求类型:json字符串类型:Content-Type:application/json 特点:参数以参数名1=值1&参数名2=值2&。。。。。在请求体中(与get可不一致啊,这个参数在请求体,get的参数在请求地址里)
表单类型:Content-Type:application/x-www-form-urlencoded
参数在请求体里,数据传输安全
网页格式字符串类型:Content-Type:text/html
xml格式字符串类型:Content-Type:xml
#接口响应组成
响应类型:
json字符串类型:Content-Type:application/json
网页格式字符串类型:Content-Type:text/html
xml格式字符串类型:Content-Type:xml
响应由响应头和响应体组成
响应状态码:
200响应结果成功返回客户端,内容是否正确不保证
400请求有误,域名或者参数错误
403请求有误,客户端无访问权限(IP被封,无读写权限,证书错误)
404请求有误接口地址错误
500服务器错误,重启,宕机等
#接口测试:
功能:能否正常完成其功能,能做什么,做的对不对。有无多做少做错做
性能:做事情的快慢,耗费的资源(cpu,内存,网络,硬盘等)
安全:是否加密敏感数据
借用工具
fiddler
官网下载:/fiddler
#抓包http
##放大字体
tools-options-appearance-Font size,如图:
在这里插入图片描述
在这里插入图片描述
##开启抓包
点击左下角按钮出现capturing字样,即为已开启抓包
在这里插入图片描述
再点击一次无capturing字样,则不再抓包
在这里插入图片描述
点击左侧一个会话请求后,再点击右侧测inspectors,即可查看抓取到的数据
#抓包https
tools-options-https-勾选capture…,勾选Decrypt…,勾选Ignore…
勾选Decrypt https traffic 时候可能会弹窗,一路确定yes
这样设置好后就可以抓包https协议
在这里插入图片描述
在这里插入图片描述

#抓取特定ip/域名的协议
当fiddler抓取的数据太多了,只想显示某些特定IP的数据时,点击右侧Filters,勾选use Filters,选中第二个下拉框选择show only the following hosts ,再在输入框中输入要过滤显示的主机ip/域名,输入多个ip用英文分号;分隔
再点击actions按钮,点击run filters now (每次过滤ip修改后都要做这一步才会生效)
再点击工具栏的decode按钮,点亮后就可以抓取https并且查看数据啦(不做这部抓取数据后显示乱码),选中此按钮后需重新抓取请求数据,之前抓取的没有进行解码显示乱码
在这里插入图片描述
在这里插入图片描述
#处理抓取到的数据
fiddler左侧会话区选中没有箭头的行点击delete删除就行,
点击rules,勾选HIDE connects (过滤掉日志,css,js等数据) ,hide 304s (过滤掉重定向)

在这里插入图片描述
分析数据
在这里插入图片描述
主要关注:
charset编码
content-type请求/响应类型
referer,这个说明请求的来源验证接口安全性的,一般不太关注
请求地址,数据
响应数据
set-cookie 服务器返回的cookie,重要数据一般在set-cookie之后与第一个分号之前
#cookie和session区别:
http无状态,第一个网页的数据只能传给第二个网页,到第三个网页时就已经丢失
cookie和session就是解决无状态问题的,一定是前面的接口的响应数据里有set-cookie,在下一个接口才会在请求头发送cookie
cookie是存储在客户端的文本文件,内容一般有账号密码等
session会话,从登录网站到退出前一直生效,退出后失效,存储在服务器上
token用于安全,可与任意接口关联,判断是否合法有权限访问接口,可能在响应头也可能在响应体,也不一定叫token
在右侧请求或者响应区点击raw,再右键点击word wrap可自动换行数据,防止数据过长不便于查看
在这里插入图片描述

#断点调试
断点调试请求:发送请求前,点击左下角第三个框点击处向上的箭头此时断点打在请求上,再发送请求,切回fiddler,点击run to completion ,继续向服务器发送请求
在这里插入图片描述
断点调试响应:发送请求前,点击左下角第三个框点击出向下的箭头此时断点打在响应上,再发送请求,切回fiddler,点击run to completion ,继续将服务器返回的响应向前端发送
在这里插入图片描述
#发送请求
有更好用postman,Jmeter
点击composer-options-inspect session点击这个后可以在发送请求后自动打开inspectors窗口查看响应结果
在这里插入图片描述
点击parsed编辑发送给数据后点击右侧execute发送请求

在这里插入图片描述
右侧histoery窗口显示历史调用的接口点击可进行查看并再次调用
在这里插入图片描述
##上传文件
方法多数是post的,点击右下角的upload file 上传文件,可上传多个文件
在这里插入图片描述
上传多个文件时请求体里的name字段的值需要进行修改不重复,否则上传成功的就只有一个文件
---------------------------acebdf13572468
Content-Disposition: form-data; name=“fieldNameHere”; filename=“”
Content-Type: application/msword

<@INCLUDE C:\Users\W^2\Desktop\@>
---------------------------acebdf13572468
Content-Disposition: form-data; name=“fieldNameHere”; filename=“”
Content-Type: application/msword

<@INCLUDE C:\Users\W^2\Desktop\@>
---------------------------acebdf13572468–
###上传文件测试点:
上传文件类型限制
上传文件大小限制
上传文件速度快慢
上传文件内容是否正确
上传文件如果被重命名了需要检查上传后的文件名
上传文件路径在数据库中的显示或者在存储服务器上的位置是否正确
上传文件后根据需求是否会对源文件产生影响
#关联接口
一般上一个接口的数据后面的接口要用即为关联接口,一般为cookie
然后将获取的需要发送到下一个接口的字段及数据保存放在下一个接口进行测试

#mockc模拟测试(相当于提供假接口,为请求返回响应数据)
1.首先编写响应的json文件,保存编码格式为utf-8防止汉字显示乱码
在这里插入图片描述
2.点击右侧auto responser -enable rules ,unmatchde request passthrough -addrule (或者从左侧会话区拖取会话添加过来)
再点击rule editor的第二个下拉列表选择find a file ,选择对应请求的mock响应json文件,再点击save
在这里插入图片描述
3.点击composer去进行测试
#抓包手机app测试
连接手机弱网测试
(1)首先保证手机和电脑连接在同一wifi
(2)设置fiddler
为了抓取https协议
tools-options-https-勾选capture…,勾选Decrypt…,勾选Ignore…
勾选Decrypt https traffic 时候可能会弹窗,一路确定yes
在这里插入图片描述
tools-options-connections-allow remote computers to connect
fiddler listens on port :8888(设置监听端口,多少都可以别被占用就行)
在这里插入图片描述

在这里插入图片描述
(3)设置手机代理
先查看本机ip,win+r,输入cmd,确定
在这里插入图片描述
弹出的命令行窗口输入ipconfig,找到本机上网ip(IPv4地址)i,
(4)设置手机wlan代理,点击手机设置-wlan选择自己连接的wifi长按,弹出修改网络,再点击代理,选择手动,IP输入上一步找到的本机ip,端口输入步骤(2)中fiddler中设置的(一般设置为8888)
(5)手机安装证书
手机打开浏览器,输入找到的代理中设置的本机ip:端口号打开后会进入证书下载
页面,点击 FiddlerRoot certificate 下载证书,并进行安装,安装完后就可进行手机app抓包啦
问题:手机设置代理后无法上网,无法打开证书下载页面
原因:可能是fiddler证书过期,点击fiddler-tools-https-actions-reset all certificates
在这里插入图片描述
打开Fiddler,Rules->Performance->勾选 Simulate Modem Speeds
可在fiddler statics中查看各个请求发送及接受数据的大小及时间
在这里插入图片描述
#弱网测试
打开Fiddler,Rules->Performance->勾选 Simulate Modem Speeds
在这里插入图片描述
设置弱网参数
点击rules-customize rules
在这里插入图片描述
主要看这几行代码
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”; }
首先判断m_SimulateModem是否为true(是否开启Simulate Modem Speeds),也就是是否设置了弱网模式。默认没有开启, 当勾选了Simulate Modem Speeds时, var m_SimulateModem: boolean = false;会变成 var m_SimulateModem: boolean = true;
Delay sends by 300ms per KB uploaded:上传1KB内容需要300ms,转化一下上传速度:1Kb/0.3s = 3.3KB/s,即网络上行速度只有3.3KB。
oSession[“request-trickle-delay”] = “300”;
Delay receives by 150ms per KB downloaded:下载1KB内容需要150ms,转化后的下载速度:1KB/0.15s=6.6KB/s,也就是说网络下载速度只有6.6KB。
oSession[“response-trickle-delay”] = “150”;
如果你想设置下载的速度为50KB/s,你则需要设置Delay 时间为 20ms。也可以限制上传的速度,调整oSession[“response-trickle-delay”]的值即可。
弱网速率参数转换公式:
1000/下载速度 = 需要delay的时间(毫秒) //比如50kb/s 需要delay200毫秒来接收数据。

2g3g4gwifi网络参数:
在这里插入图片描述

还可以自己修改脚本实现随机延时量设置,使得网络带宽不是恒定为一个低速的值,而是会在一定范围内随机变化,randInt(1,500)代表1-500中的一个随机整数,这样就可以实现偶尔有延迟偶尔网络又良好的情况(修改代码如下)
if (m_SimulateModem) {
// Delay sends by 300ms per KB uploaded.
oSession[“request-trickle-delay”] = “”+randInt(1,500);
// Delay receives by 150ms per KB downloaded.
oSession[“response-trickle-delay”] = “”+randInt(1,500);
}