功能测试Ⅸ——功能测试、数据库、抓包工具Fiddler

文章目录

  • 总目录
  • 功能测试与数据库、Fiddler
    • 今日目标
    • 1、功能测试与数据库
      • 1.1 项目与数据库的关系
      • 1.2 数据库典型应用场景(重点)
        • 1.2.1 验证数据的准确性与完整性
        • 1.2.2 借助数据库进行缺陷定位
        • 1.2.3 借助数据库构造测试场景(需要特定的测试数据)
        • 1.2.4 借助数据库数据备份更新
    • 2、功能测试与抓包工具
      • 2.1 HTML与HTTP协议
        • 2.1.1 URL
        • 2.1.2 HTML
        • 2.1.3 HTTP
      • 2.2 HTTP请求与响应
        • 2.2.1 基本概念
        • 2.2.2 HTTP请求
        • 2.2.3 HTTP响应
        • 面试题:GET和POST的区别
      • 2.3 抓包工具
        • 2.3.1 Fiddler原理
        • 2.3.2 Fiddler安装
        • 2.3.3 Fiddler使用
          • 2.3.3.1 抓包(Inspectors)
          • 2.3.3.2 删除请求
          • 2.3.3.3 设置过滤
          • 2.3.3.4 设置断点
          • 2.3.3.5 AutoResponder(扩展)
          • 2.3.3.6 Composer(扩展)
          • 2.3.3.7 弱 测试(扩展)
          • 2.3.3.8 HTTPS请求(扩展)
    • 今日总结
    • 项目作业
    • WEB手工阶段复习

总目录

测试开发系列(功能+接口+性能+自动化)

功能测试与数据库、Fiddler

今日目标

  • 掌握功能测试涉及到的四种数据库场景
  • 了解HTML和HTTP协议
  • 熟悉HTTP请求和响应的内容
  • 熟悉HTTP请求方法get和post
  • 了解fiddler的应用场景
  • 掌握fiddler过滤功能的使用
  • 掌握fiddler修改请求数据方法

1、功能测试与数据库

1.1 项目与数据库的关系

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-P5xmyfun-1619756942684)(image/image-20200625114930401.png)]

  • 项目中的数据是存储在数据库中的

  • 对数据库修改(增删改查)会影响项目页面显示

  • 实操练习:

    • 修改数据库中“小米手机5,十余项黑科技,很轻狠快”的商品名称,在前台页面看到变化

    1、数据表 tp_goods
    2、字段 goods_name
    3、操作语句 update 表名 set 字段名 = 字段值 where 条件

    修改前:
    select * from tp_goods where goods_name = ‘小米手机5,十余项黑科技,很轻狠快’ – 精确查询
    select * from tp_goods where goods_name like ‘小米手机5%’ – 模糊查询

    修改:
    update tp_goods set goods_name = ‘小米手机55’ where goods_name = ‘小米手机5,十余项黑科技,很轻狠快’

    修改后:
    select * from tp_goods where goods_name = ‘小米手机5,十余项黑科技,很轻狠快’ – 精确查询
    select * from tp_goods where goods_name like ‘小米手机5%’

1.2 数据库典型应用场景(重点)

  • 验证数据的准确性与完整性
  • 借助数据库进行缺陷定位
  • 借助数据库构造测试场景(需要特定的测试数据)
  • 借助数据库数据备份更新

1.2.1 验证数据的准确性与完整性

  • 执行用例过程中,有时需要到数据库验证数据的准确性与完整性

1.2.2 借助数据库进行缺陷定位

  • 进行BUG定位时,有时需要到数据库查看数据的详细信息

  • 示例:

  • 格式:

    • 协议:客户端和服务器通讯的标准,http、https、ssh等
    • ip或域名
    • 端口 :协议默认的端口 是可以省略的
      • http:默认端口80
      • https:默认端口443
      • ssh:默认端口22
    • 资源路径:资源存放的位置,资源可以是各种超文本信息,如音频、视频等
    • 参数(如)
      • 格式:
        • 用RL的主体部分分开
        • 参数的格式,有多个参数时用&拼接即可

2.1.2 HTML

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

  • 超文本:声音、视频、图片、超链接等
  • 标记:就是通过【内容标记符>】的格式让内容具有不同的表现形式,从而达到超文本的目的
    • 如:

    • 互联 上浏览的 页,本质上就是超文本标记语言。

2.1.3 HTTP

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

2.2 HTTP请求与响应

请求方式(GET 和 POST)

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

2.2.3 HTTP响应

  • 响应内容

    • 响应行:位置是在第一行,包含协议及版本、响应状态码、状态消息

    • 响应头:位置是在第一行之后,到空行之前,告诉客户端服务器相关信息,如web服务器类型等

    • 响应体:位置是在空行之后,如登录成功

  • 响应状态码:由3位数字组成,第一位数字代表响应消息的级别

    • 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中。

2.3 抓包工具

功能测试与Fiddler

  • 通过抓包工具截取观察 站的请求信息,帮助我们更深入的了解 站

  • 通过抓包工具截取、观察 站的请求与返回信息,帮助测试进行BUG定位与描述

  • 通过抓包工具拦截修改请求信息,绕过界面的限制,测试服务端的功能

2.3.1 Fiddler原理

  • 原理:
    • 请求先发送给Fiddler,Fiddler接收请求后转发给服务器
    • 详情见我另一篇博文

      • 请求

        • 请求行

        • 请求头

        • 请求体

      • 响应

        • 响应行
        • 响应头
        • 响应体
      2.3.3.2 删除请求
      • 菜单删除:

      • 命令行删除:cls、clear

      • 键盘delete

      • 快捷键:Ctrl + X

      2.3.3.3 设置过滤
      1. 点击Filters页签,勾选“Use Filters”

      2. Hosts下方的第二个下拉框,选择“Show Only the following Hosts”

      3. 在下方输入框中输入要抓包的主机地址(多个地址用英文分 隔开,如:localhost;127.0.0.1)

      4. 点击右上角的“Actions”,选择“Run Filterset Now”

      5. 如果取消过滤,去掉“Use Filters”的勾选

        • 修改请求

          1. 进入添加会员的页面,填写正确的手机 码和其他信息

          2. 打开fiddler拦截开关:Rules ==》 Automatic Breakpoints ==》 Before Requests

          3. 回到添加会员界面,点击提交按钮

          4. 回到Fiddler,修改【请求体】,如修改手机 码内容

          5. 点击Fiddler中请求下方的绿色按钮“Run to Completion”

          6. 关闭Fiddler拦截开关:Rules ==》 Automatic Breakpoints ==》 Disabled

        • 修改响应(扩展)

          1. 进入添加会员的页面,填写正确的手机 码和其他信息
          2. 打开fiddler拦截开关:Rules ==》 Automatic Breakpoints ==》 After Responses
          3. 回到添加会员界面,点击提交按钮
          4. 回到Fiddler,修改【响应体】,如修改【操作提示】的内容
          5. 点击Fiddler中请求下方的绿色按钮“Run to Completion”
          6. 关闭Fiddler拦截开关:Rules ==》 Automatic Breakpoints ==》 Disabled
          2.3.3.5 AutoResponder(扩展)
          • 自动响应

            1.进入AutoResponder

            2.选择列表左侧请求,点击【Add Rule】添加mock请求(或点击【Add Rule】手动填写请求地址)

            3.选择响应结果,模拟测试场景(此处支持打开本地文件,根据文件内响应数据(例如json文件)进行mock)

            4.点击右下角【save】,保存响应设置

            5.勾选上方选项:

            (1)Enable rules:开启或禁用自动重定向功能,勾选上时,激活规则

            (2)Unmatched requests passthrough:未匹配的请求穿透,即勾选上时,不影响那些没满足我们处理条件的请求

            (3)勾选了这个选项,在规则里面就可以设置是立即返回响应,还是隔多少毫秒返回响应

            2.3.3.7 弱 测试(扩展)

          • 手机访问APP,或者用手机浏览器访问 络,观察功能响应或者页面刷新速度

          • 如果需要自定义 络的速度,需要到自定义规则中配置(Rules → Customize Rules)

            络环境测试机带宽参考测试数据:

            今日总结

            • 掌握功能测试涉及到的四种数据库场景

            • 了解HTML和HTTP协议

            • 熟悉HTTP请求和响应的内容

            • 熟悉HTTP请求方法get和post

            • 了解fiddler的应用场景

            • 掌握fiddler过滤功能的使用

            • 掌握fiddler修改请求数据方法

            项目作业

            WEB手工阶段复习

            • 手工测试复习:xmind
            • 面试题

            文章知识点与官方知识档案匹配,可进一步学习相关知识MySQL入门技能树数据库组成32114 人正在系统学习中

            声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年3月27日
下一篇 2021年3月27日

相关推荐