功能测试与抓包工具Fiddler(http与fiddler)

本文详细介绍了功能测试如何与数据库交互,包括HTTP协议的基础知识,如URL、请求与响应的概念,以及常用的抓包工具如Fiddler的使用。此外,还探讨了GET和POST请求的区别,并介绍了Fiddler的断点设置与HTTPS请求。通过对网络通信的深入理解,有助于提升功能测试的效率和质量。
摘要由CSDN通过智能技术生成

功能测试与数据库

项目与数据库的关系

  • 浏览器<—>(请求/响应)Web服务器Apache<—>(转发/响应)PHP网站框架ThinkPHP<—>(请求/响应数据)数据库MySQL

功能测试与抓包工具

  • 抓包:(package capture)就是将网络传输发送与接收的数据包进行截获、重发、编辑、转存等操作,也用来检查网络安全。抓包经常被用来进行数据截取等。
  • 功能测试用到抓包工具的场景:
    • 通过抓包工具截取观察网站的请求信息,帮助我们更深入的了解网站
    • 通过抓包工具截取、观察网站的请求与返回信息,帮助测试进行Bug定位与描述
    • 通过抓包工具拦截修改请求信息,绕过界面的限制,测试服务端的功能
  • 常用的抓包工具:Fiddler、Charles、F12开发人员工具等

HTML与HTTP 协议

  • URL:统一资源定位符
  • HTML:超文本标记语言
  • HTTP:超文本传输协议

URL

  • 示例:http://localhost/index.php?m=Home&c=Goods&a=goodsInfo&id=46
  • 格式:
    • 协议:客户端和服务器通讯的标准,http、https、ssh等
    • IP或域名
    • 端口号:协议默认的端口号是可以省略的
      • http:默认端口80
      • https:默认端口443
      • ssh:默认端口22
    • 资源路径:资源存放的位置,资源可以是各种超文本信息,如音频、视频等
    • 参数
      • 格式:用?与URL的主体部分分开
      • 参数格式参数名=参数值,有多个参数时用&拼接即可

HTML

HTML:HyperText Markup Language,超文本标记语言

  • 超文本:声音、视频、图片、超链接等
  • 标记:就是通过【<标记符>内容</标记符>】的格式让内容具有不同的表现形式,从而达到超文本的目的
    • 如:<title>百度一下,你就知道</title>
    • 互联网上浏览的网页,本质上就是超文本标记语言

HTTP

HTTP:HyperText Transfer Protocol,超文本传输协议,是互联网上最常用的协议之一

HTTP请求与响应

基本概念

  • 客户端:用户发送请求,如浏览器、APP等
  • 服务器:处理客户端请求并返回数据,如apache,nginx等
  • 请求:客户端向服务器索要数据
  • 响应:服务器处理完以后,返回给客户端的数据与信息

HTTP请求

  • 请求内容

    • 请求行:
      • 位置是在第一行
      • 请求方式、请求地址
      • 协议及版本
    • 请求头:
      • 位置是在第一行之后,到空行之前
      • 用来描述客户端信息的相关参数,一般以键值对的形式存在,如描述浏览器类型等
    • 请求体:位置是在空行之后
      在这里插入图片描述
  • 请求方式(GET和POST)

    • get:用于查询,如搜索商品
    • post:用于提交数据,相对比较安全,如登录、注册

HTTP响应

  • 响应内容
    • 响应行:位置是在第一行,包含协议及版本、响应状态码、响应消息
    • 响应头:位置是在第一行之后,到空行之前,告诉客户端服务器相关信息,如web服务器类型等
    • 响应体:位置是在空行之后,如登陆成功
      在这里插入图片描述
  • 响应状态码:由三位数字组成,第一位数字代表响应消息的级别
    • 2XX:成功,如200
    • 3XX:重定向,如301
    • 4XX:客户端存在问题,如404
    • 5XX:服务器端有问题,如501
  • 面试题:GET和POST的区别
    • 最直观的区别就是GET把参数包含在URL中,POST通过request body(请求体)传递参数
    • GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息
    • GET在浏览器回退时是无害的,而POST会再次提交请求
    • GET请求只能进行URL编码,而POST支持多种编码方式
    • GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留
    • GET请求在URL中传送的参数是有长度限制的,而POST没有(这个限制是由浏览器导致)
    • 多参数的数据类型,GET只接受ASCII字符,而POST没有限制
    • GET参数通过URL传递,POST放在Request body中

抓包工具

Fiddler原理:

  • 请求先发送给Fiddler,Fiddler接受请求后转发给服务器
  • 服务器处理请求后将响应数据返回给Fiddler,Fiddler再转发给客户端(浏览器)
    在这里插入图片描述

Fiddler使用

  • 删除请求
    • 菜单删除
      在这里插入图片描述
    • 命令行删除:cls、clear
      在这里插入图片描述
    • 键盘:delete
    • 快捷键:Ctrl+X
  • 设置过滤
  1. 点击Filter页签,勾选“Use Filters”
  2. Hosts下方的第二个下拉框,选择“Show Only the following Hosts”
  3. 在下方输入框中输入要抓包的主机地址(多个地址用英文分号隔开,如:localhost;127.0.0.1)
  4. 点击右上角的“Actions”,选择“Run Filterset Now”
  5. 如果取消过滤,去掉Use Filters的勾选
    在这里插入图片描述
  • 设置断点
    在这里插入图片描述
  • 自动响应
  1. 进入AutoResponder
  2. 选择列表左侧请求,点击【Add Rule】添加mock请求(或点击【Add Rule】手动填写请求地址)
  3. 选择响应结果,模拟测试场景(此处支持打开本地文件,根据文件响应数据(例如json文件)进行mock)
  4. 点击右下角【save】,保存响应设置
  5. 勾选上方选项:
    (1)Enable rules :开启禁用自动重定向功能,勾选上时,激活规则
    (2)Unmatched requests passthrough:未匹配的请求穿透,即勾选上时,不影响那些没满足我们处理条件的请求
    (3)勾选了这个选项,在规则里面就可以设置是立即返回响应,还是隔多少毫秒返回响应
    在这里插入图片描述

HTTPS请求(扩展)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值