文章目录

  • 总目录
  • 功能测试与数据库、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,十余项黑科技,很轻狠快”的商品名称,在前台页面看到变化

      修改数据库中“小米手机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%’

    
    - 修改数据库中'力士精油香氛幽莲魅肤沐浴乳1000ml(新老包装随机发货)'的商品价格,在前台页面看到变化```sql
    修改数据库中'力士精油香氛幽莲魅肤沐浴乳1000ml(新老包装随机发货)'的商品价格,在前台页面看到变化1、数据表    tp_goods
    2、字段      shop_price
    3、操作语句  update 表名 set 字段名 = 字段值 where 条件修改前:   -- 精确查询
    select * from tp_goods where goods_name like '力士精油香氛%'                      -- 模糊查询修改:
    update tp_goods set shop_price = 9.9 where goods_name like '力士精油香氛%' 修改后:
    select * from tp_goods where goods_name like '力士精油香氛%'
    

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

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

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

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

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

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

BUG定位----前台后性别不一致(保密和女)
SELECT sex from tp_users where mobile = 13488888888;页面设置为保密,点击保存显示为【男】。
(1)数据库查询结果是【0】,前端bug
(2)数据库查询结果是【1】,后端bug

1.2.3 借助数据库构造测试场景(需要特定的测试数据)

  • 构造某种测试场景时,可以在数据库里直接修改数据,要比使用界面更有效率


select goods_num from tp_cartupdate tp_cart set goods_num = 99999

1.2.4 借助数据库数据备份更新

  • 软件升级过程中,有时会涉及到历史数据的处理,这种情况需要执行升级SQL,并验证结果

    用户表新增蚂蚁积分字段(myjf),每个用户默认100积分
    ALTER TABLE tp_users ADD COLUMN myjf int(3) DEFAULT 100;
    

2、功能测试与抓包工具

  • 抓包:(package capture)就是将网络传输发送与接收的数据包进行截获、重发、编辑、转存等操作,也用来检查网络安全。抓包经常被用来进行数据截取等。

  • 功能测试用到抓包工具的场景:

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

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

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

  • 常用的抓包工具:Fiddler、Charles、F12开发人员工具等

2.1 HTML与HTTP协议

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

2.1.1 URL

  • 示例:http://localhost/index.php?m=Home&c=Goods&a=goodsInfo&id=46

  • 格式:

    • 协议:客户端和服务器通讯的标准,http、https、ssh等
    • ip或域名
    • 端口号:协议默认的端口号是可以省略的
      • http:默认端口80
      • https:默认端口443
      • ssh:默认端口22
    • 资源路径:资源存放的位置,资源可以是各种超文本信息,如音频、视频等
    • 参数(如?m=Home&c=Goods&a=goodsInfo&id=46
      • 格式:

        • 用?与URL的主体部分分开
        • 参数的格式参数名=参数值,有多个参数时用&拼接即可

2.1.2 HTML

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

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

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

2.1.3 HTTP

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

2.2 HTTP请求与响应

2.2.1 基本概念

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

2.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接收请求后转发给服务器
    • 服务器处理请求后将响应数据返回给Fiddler,Fiddler在转发给客户端(浏览器)

2.3.2 Fiddler安装

  • 安装依赖

    • Miscrosoft .Net Framework
  • 安装步骤

    1. 点击【I Agree】
    2. 选择安装目录,默认即可,点击【Install】
    3. 等待安装完成,点击【Close】
  • 启动Fiddler:以Windows10系统为例说明
    • Windows ==》Fiddler 》右键【更多】》打开文件所在位置 ==》找到Fiddler图标 ==》右键【发送到桌面快捷方式】

2.3.3 Fiddler使用

2.3.3.1 抓包(Inspectors)

详情见我另一篇博文

  • 请求

    • 请求行

    • 请求头

    • 请求体

  • 响应

    • 响应行
    • 响应头
    • 响应体
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”的勾选

2.3.3.4 设置断点

  • 修改请求

    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.6 Composer(扩展)

2.3.3.7 弱网测试(扩展)

  • 概念:在当今移动互联网盛行的时代,网络的形态除了有线连接,还有2G/3G/Edge/4G/Wifi等多种手机网络连接方式。不同的协议、不同的制式、不同的速率,使移动应用运行的场景更加丰富。

    从测试角度来说,需要额外关注的场景就远不止断网、网络故障等情况了。对于弱网的数据定义,不同的应用所界定的含义是不一样且不清晰的,不仅要考虑各类型网络最低速率,还要结合业务场景和应用类型去划分。按照移动的特性来说,一般应用低于2G速率的都属于弱网,也可以将3G划分为弱网。除此之外,弱信号的Wifi通常也会被纳入到弱网测试场景中。

  • 为何要进行弱网测试?

    例如:进地铁、上公交、进电梯等,如果app没有对各种网络异常进行兼容处理,那么用户可能在日常生活中遇到APP闪退、ANR、数据丢失等问题。因此,app网络测试,特别是弱网测试显得尤为重要。

    我当前所在项目的产品是一款适配于低资源环境的医疗IT系统,目前主要是在坦桑尼亚地区使用。根据资料显示,在坦桑尼亚等东非国家,普遍使用的都是2G网络,覆盖率达到40%以上,3G网络的覆盖都非常少,并且稳定性较差。由此,对于当前的App应用交付要求即至少在弱网以及无网状态下能正常运行。

  • 步骤

    • 打开Fiddler,设置代理,并允许远程连接

    • 手机连接电脑的热点网络,或者同在一个局域网内

    • 手机网络连接中,设置网络代理,IP是电脑的同网段IP地址,端口是8888

    • 打开网速模拟模式开关(Rules → Performances → Simulate Modem Speeds )

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

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

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

2.3.3.8 HTTPS请求(扩展)

点击【OK】,重启Fiddler。

今日总结

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

  • 了解HTML和HTTP协议

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

  • 熟悉HTTP请求方法get和post

  • 了解fiddler的应用场景

  • 掌握fiddler过滤功能的使用

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

项目作业

1、结合自己的兴趣/知识/工作/经历, 找到两款软件(一个web,一个APP或者更多)
(1)管理类、购物、社交等,不能是工具软件(即功能不能太单一)a. App类 -- https://www.qimai.cn/rank/indexb. Web类 -- https://top.chinaz.com/hangye/
(2)应用可以实际操作, 或者具体的文档a. 页面原型 -- https://www.axureshop.com/(演示免费)b. 需求文档 -- http://www.woshipm.com/tag/prd(常见应用)2、结合找到的应用按照熟悉项目的方法熟悉项目内容, 要求产出
(1)项目的用来做什么的? -- 有哪些主要业务 -- 主要用户 -- 整理流程图
(2)项目有哪些功能模块? -- 使用思维导图画出结构图 -- 确认核心模块
(3)核心模块如何确认? -- 主要业务流程覆盖到功能模块(核心模块)3、挑选主要业务,按照主要业务编写业务流程测试用例,要求产出
(1)业务类型的测试用例(覆盖流程图)4、挑选核心模块,按照需求文档定义编写功能测试用例,要求产出
(1)功能测试用例(需求覆盖 / 相关业务验证 /  异常逆向操作)5、按照需求文档 , 设计非功能测试用例
(1)要求产出非功能测试用例(按照项目分类 --- 兼容 -- 易用性 -- 专项等)6、尝试编写测试计划,测试方案,测试报告
(1)产出内容测试计划(方案)
(2)测试报告

WEB手工阶段复习

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

功能测试Ⅸ——功能测试、数据库、抓包工具Fiddler相关推荐

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

    文章目录 功能测试与数据库 项目与数据库的关系 功能测试与抓包工具 HTML与HTTP 协议 URL HTML HTTP HTTP请求与响应 基本概念 HTTP请求 HTTP响应 抓包工具 Fiddl ...

  2. 功能测试必备:抓包工具之谷歌开发者工具介绍及使用场景

    大家好啊,我是大田 2022.03.31,日更第 54 / 365 天. 如果想在 Web 端抓取网络报文,就打开一个浏览器页面,按快捷键 F12 ,点击 NetWork,即可看到. 一.四个操作: ...

  3. 【爬虫】网页抓包工具--Fiddler

    [爬虫]网页抓包工具--Fiddler Fiddler基础知识 Fiddler是强大的抓包工具,它的原理是以web代理服务器的形式进行工作的,使用的代理地址是:127.0.0.1,端口默认为8888, ...

  4. 抓包工具 - Fiddler(详细介绍)

    原文:抓包工具 - Fiddler(详细介绍) Fiddler的详细介绍 一.Fiddler与其他抓包工具的区别 1.Firebug虽然可以抓包,但是对于分析http请求的详细信息,不够强大.模拟ht ...

  5. 使用抓包工具fiddler和apipost进行接口测试

    一.进行接口测试准备的东西 1.接口测试工具:apipost.jmeter等 2.接口文档,没有接口文档就用接口信息获取工具 3.接口信息收取工具:fiddler抓包工具.浏览器开发者工具(f12)等 ...

  6. 抓包工具fiddler使用与理论的理解

    抓包工具fiddler使用与理论的理解 抓包工具是运行在本地,客户端与服务器之间的一层,可以很好的抓取两者交互的信息 关于http协议 :http是一个简单的请求-响应协议,它通常运行在TCP之上 请 ...

  7. 抓包工具Fiddler抓取手机包和修改接口数据

    抓包工具Fiddler抓取手机包和修改接口数据 安装成功界面 点击Tools->Options 弹出该页面 Allow remote-勾选上,意思为允许远程计算机连接,端口随意设置(默认8888 ...

  8. 【解决抓包工具fiddler不抓取360浏览器的数据的问题】

    抓包工具fiddler不抓取360浏览器的数据 fiddler可以抓到Firefox浏览器的包,但是抓不到360浏览器的包. 操作步骤: 打开Fiddler -> 菜单栏 工具(Tools )- ...

  9. api 数据 App 抓包工具 fiddler

    from   :  http://www.heyuan110.com/2015/06/17/App抓包工具fiddler/ App抓包工具fiddler Charles fiddler 抓包 确保安装 ...

最新文章

  1. 系统无法正确检测到盘符
  2. Nginx(四)------nginx 负载均衡
  3. 瞄准千亿个护市场,纸业龙头们下半场战役已经打响
  4. Linux学习进阶!!
  5. uni-app动态绑定class和style
  6. Java并发编程-线程安全基础
  7. 川大计算机专业导师冯子亮,问问川大计算机研究生招收的小专业有哪些
  8. 一步一步使用 DialogFragment 封装链式调用 Dialog
  9. Mysql 时间类型整理
  10. Spring在SSH中的角色和作用
  11. Ubuntu安装Beyond Compare(crack)
  12. c语言程序仪表称重编程,基于WinCE的双台面动态汽车称重装置仪表设计
  13. macbook air 安装双系统windows10手册及避坑技巧
  14. linux双硬盘硬件raid,双硬盘组建Raid0磁盘阵列图文教程
  15. 法国三家银行加入R3 Corda区块链贷款平台
  16. ui和ux的区别_UX和UI设计之间有什么区别?
  17. 解决Mac笔记本电脑自带录屏软件没有声音问题
  18. xlwings库的基本使用笔记
  19. 一个有用的Win32消息处理宏HANDLE_MSG
  20. 【总结】Java 日期时间

热门文章

  1. 情人节微信公众号图文排版应该用哪些素材?
  2. VINS-Mono详解
  3. coreldraw13出来了
  4. java计算机毕业设计高考志愿智能辅助填报系统源码+数据库+系统+lw文档+部署
  5. self-attention机制
  6. oracle中raise是什么意思,Oracle中RAISE异常深入分析
  7. 计算机水平英语,英文简历计算机水平
  8. 高通在美国安卓市场的份额落后于联发科
  9. 【原创-更新完毕】|日历拼图游戏的解决方案(C语言-进阶应用)-详解连载1
  10. linux嵌入式主要学什么,学嵌入式linux,用什么开发板,请大家推荐一下