接口测试的基础(网络传输知识与协议篇)

2023-10-27

接口测试的基础

测试人员对于接口测试的理解总是停留在工具使用层面。很多情况下,测试人员会花很大的 代价去学习一个工具。而测试工具本身的局限性,又导致测试人员陷入想直接用现成的测试框架 却又无法进行扩展的僵局。最后由于项目的特殊性等客观因素,测试人员只能放弃工具,脱离了 工具的可视化界面友好操作,发现自己连接口是什么都不明白,更不要说自行完成接口自动化测 试了。随即接口自动化测试由于项目成本及人员能力问题宣告失败。所有客观原因导致的结果都 有其主观原因存在,急于求成、依赖工具就是测试人员在这个问题上的错误。希望测试人员在从 事接口测试相关工作前能熟练掌握本章的内容,接口相关的技术理论会非常枯燥,所以我会以故 事的形式帮助大家理解。

网络传输知识

测试人员开始学习接口测试时,总会先关注HTTP协议。这点没有错,理解HTTP协议的确 是绝大多数接口测试的基础。但大家在学习HTTP协议的过程中会发现一个问题,RFC 2616 官 方给出的 HTTP协议的定义为以下内容。

超文本传输协议(HTTP)是一种分布式、合作式超媒体信息系统。它是一种通用的、无状态 (stateless)的协议,除了应用于超文本传输外,它也可以应用于诸如名称服务器和分布对象管理 系统之类的系统,这可以通过扩展它的请求方法、错误代码和报头来实现。HTTP的一个特点是 数据表现形式是可输入的和可协商性的,这就允许系统能被建立而独立于数据传输。

看了这么大一段文字后,测试人员肯定对HTTP 协议是什么还是一知半解。什么是无状 态?什么是请求方式和报头?这些基础知识的缺失造成测试人员无法通过教材式的理论清晰 理解网络协议,甚至在测试任务中也无法灵活运用,除了影响测试的本职工作,也造成与开 发等技术人员的沟通不便。所以在具体讲解 HTTP协议前,测试人员需要先掌握网络传输的 基础知识。

协议

在接口测试中,从客户端发送request至服务器反馈 response,网络传输的数据就是接口测试 中最主要的部分,而数据传输的本质就是基于网络传输协议。网络传输很显而易见,是指数据在 网络上的传输过程。我会以工作场景故事的形式帮助大家理解网络传输相关的知识。

最近测试部门连续承接几个大项目,整个测试部都在忙忙碌碌中度过。时间过得很快,又到了下班时间。世界500强哎呦喂公司的测试总监开心看了看时间和眼前的工作,长长地叹了一口 气,哎,又是一个加班日。公司为了体恤员工多日的加班辛苦,特意与五星级酒店A签订了订餐 协议。各部门可以根据各自的情况申请加班餐。

开心在统计了加班人数后,填写加班餐的申请单。 订餐申请表中包含以下几项。

开心在统计了加班人数后,填写加班餐的申请单。加班餐申请单如图所示。 订餐申请表中包含以下几项。

“由公司向酒店A订餐”这个业务场景,引发以下几个问题由公司行政及酒店A负责人协商 决定。

1.酒店A需要根据公司反馈的信息进行配菜。这些信息如何传递?

解答:

1.酒店A根据公司传递来的订餐申请单的内容进行配菜。

2.申请单中的字段放置的位置?(格式)

解答:

3.申请单由几个部分组成?

解答:

申请单分为2个组成部分。

(1)订餐的概要信息(头文件),包括以下5个字段

①订餐类型

②时间

③部门ID

④菜系名称

⑤菜系值

(2)订餐的详细信息(正文)

包含订餐数量,是否需要发票,其他需要酒店A提供的服务等内容。

4.每个字段表达什么含义?

解答:

①订餐类型:可以分为加班餐、年会餐、团队活动餐等。

②时间:用餐的时间,格式为年后两位+月+日,例如,171011。

③部门ID:申请的部门ID,格式为公司ID(由酒店A提供给公司)+部门ID,例如,1001。

④菜系名称:需要订餐的种类名,例如,烩饭、意面pasta等。

⑤菜系值:该订餐种类的套餐值,例如,烩饭类型中的第二个套餐值为hf—002。

⑥正文:可以随意填写需要酒店A提供的服务,例如,订餐数量,是否需要发票等内容。

5.是否需要酒店A进行配送?如需要,何时配送?

解答:

是否需要配送根据订餐类型决定,当订餐类型为加班餐时,酒店A完成配菜后即时配送至公司地址。其他订餐类型无需配送,根据用餐时间,由公司员工到酒店A用餐。

以上这些公司与酒店A协商后的约定,就称为协议。酒店A收到公司发送的订餐申请单时会根据申请单协议的内容为公司提供订餐服务,向公司提供订餐申请中的加班餐食物等。信息通过协议准确无误地传达申请人与服务方间互相需要表达的意思,用以清晰地得到各自所需的服务及数据。这就是协议的作用,协议可以分为加班餐协议、宴会餐协议等。每个协议可能需要获取不同的信息,即格式及传输的数据内容不同。所以协议可以分为很多种类,网络传输协议可以分为HTTP 协议、HTTPS协议以及 WebSocket协议等。

END绵薄之力

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

加入我的软件测试交流群:110685036免费获取~(同行大佬一起学术交流,每晚都有大佬直播分享技术知识点)

软件测试面试小程序

被百万人刷爆的软件测试题库!!!谁用谁知道!!!全网最全面试刷题小程序,手机就可以刷题,地铁上公交上,卷起来!

涵盖以下这些面试题板块:

1、软件测试基础理论 ,2、web,app,接口功能测试 ,3、网络 ,4、数据库 ,5、linux

6、web,app,接口自动化 ,7、性能测试 ,8、编程基础,9、hr面试题 ,10、开放性测试题,11、安全测试,12、计算机基础

获取方式 :

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

接口测试的基础(网络传输知识与协议篇) 的相关文章

  • Request.Form 和 Request.QueryString 之间的区别?

    有人可以告诉我两者之间的确切区别吗Request Form and Request QueryString 我知道一个区别 比如 如果HTTP请求方式为POST 则用户提交的数据在申请表 收藏 如果HTTP请求方法是GET 则用户提交的数据
  • golang中默认的HTTP拨号超时值

    我正在运行 golang http 客户端来对服务器进行压力测试 有时我会收到错误 拨号 tcp 161 170 xx xxx 80 操作超时 错误 我认为这是 HTTP 客户端超时 我正在考虑增加超时值https stackoverflo
  • Java Servlet 中限制 HTTP 请求

    在 java servlet 中 如何根据客户端的 IP 地址限制来自用户的 http 请求 我不想每秒处理来自特定源 IP 地址的超过 X 个请求 其中 X 是可配置的并且具有 0 1 中的实际值 10 范围 从 10 秒内 1 个请求到
  • HTTP 响应可以省略 Reason-Prase 吗?

    正常的 HTTP 响应如下所示 HTTP 1 0 200 OK 可以省略什么吗RFC http www w3 org Protocols rfc2616 rfc2616 sec6 html称为原因短语 就像是 HTTP 1 0 200 RF
  • CXF 增加连接池大小而不更改 http.maxConnections

    最近我被要求将 CXF 配置为与我们旧的 XFire 服务相同的参数 这些参数之一是Keep Alive timeout 60 max 20 然而 我做了一些研究 看来 CXF 使用 JVMHttpURLConnection引擎盖下的对象
  • 志愿者匹配 API Objective C

    我正在使用 AFNetworking 对 VolunteerMatch API 执行 Web 请求 当我执行请求时 我收到 200 代码 但没有收到响应 典型的 VolunteerMatch 请求如下所示 GET api call acti
  • 如何在纯 HTML 页面中返回特定的 HTTP 状态代码

    Google 建议当网站暂时不可用时返回 503 HTTP 响应 我有一些纯 HTML 网站 如何在纯 HTML 网站中返回 503 状态 我使用的是带有 Apache 的 Linux 机器 您必须在服务器上而不是在 HTML 文件中设置状
  • 发送压缩文件 Spring

    我想通过我的 spring 控制器发送一个已经存在的压缩文件 但我不断收到这些错误消息org springframework web HttpMediaTypeNotAcceptableException Could not find ac
  • Java HttpURLConnection:内容长度计算

    我目前正在为 bitbucket issues RESTful API 开发一个库 我取得了很大的进步 现在我要解决这个部分更新问题 http confluence atlassian com display BBDEV Issues Is
  • 如何自定义解析错误的 HTTP 400 响应?

    我编写了一个 REST API 服务 要求所有响应均为 JSON 但是 当 Go HTTP 请求解析器遇到错误时 它会返回 400 作为纯文本响应 而不会调用我的处理程序 例子 gt curl i H Authorization Basic
  • Spring Security (3.2.5) HTTP POST 身份验证后不转发到原始请求

    我有一个示例 Spring MVC 应用程序 由 Spring security Spring 版本 4 0 1 RELEASE Spring security 3 2 5 RELEASE 保护 当我作为未经身份验证的用户发送 HTTP G
  • DefaultHttpClient GET 和 POST 命令 Java Android

    好的 这是我的应用程序 一个 Android 应用程序 允许我从移动应用程序 而不是从网站 将 CokeZone 代码提交到 CokeZone co uk 所以我编写了这部分代码来执行登录后命令 然后检查我是否登录后 问题是 发送 post
  • 身份验证中的随机数使用

    在基于摘要的身份验证中 随机数由服务器生成 然而 在基于 OAuth 的身份验证中 随机数是由客户端生成的 我想知道是否有人知道差异的原因 随机数用于使请求唯一 在没有随机数的身份验证方案中 恶意客户端可以生成一次请求并重放多次 即使计算成
  • 如何在C++中使用Curl获取HTTP响应字符串

    我对 HTTP 命令和 libcurl 库非常陌生 我知道如何获取 HTTP 响应代码 但不知道如何获取 HTTP 响应字符串 以下是我为获取响应代码而编写的代码片段 任何有关如何获取响应字符串的帮助将不胜感激 curl easy seto
  • 是否有管理 __utma、__utmz 等 cookie 的标准?

    无论我登录 Facebook 还是 Twitter 我都会受到以下名称的 cookie 轰炸 utma utmb utmc utmv 它们的功能是什么 是否有一个标准来管理这些在服务器端的使用方式 这些 cookie 通常与谷歌分析 htt
  • 由于请求的资源上不存在“Access-Control-Allow-Origin”标头,无法获取与 Axios 的链接请求

    我正在尝试使用 cryptocompare api 来获取 axios 的 coindata 列表 但我不知道如何解决这个问题 我相信这是一个 CORS 问题 但我不确定 完整错误如下 加载失败https www cryptocompare
  • Chrome 在传输一定量的数据后挂起 - 等待可用的套接字

    我有一个浏览器游戏 最近我开始向游戏添加音频 Chrome 无法加载整个页面并卡在 91 requests 8 1 MB transferred 并且不再加载任何内容 它甚至破坏了所有其他选项卡中的网站 说Waiting for avail
  • 由于浏览器设置的标头,Safari 拒绝重定向的 CORS 请求

    Summary Safari 拒绝一些涉及重定向的 CORS 请求 声称某些标头是不允许的 但该标头从来不是由脚本请求的 而是由浏览器添加的 所以我认为这应该不重要 Safari 的行为是一个错误吗 规格有问题吗 或者 事情变成这样是有原因
  • HTTP代理服务器

    我开始研究一个用 C 编写的非常基本的 HTTP 代理服务器 Edit 只是转发我的请求的东西 此时我很难理解如何继续 任何帮助都会有益的 看一眼micro proxy http acme com software micro proxy
  • 从 HTTP 登录到 HTTPS

    我的网站默认使用 HTTP 我确实有一个启用 HTTPS 的证书 但只有其上的某些区域强制建立安全连接 登录是通过 Ajax 处理的 我想开始使用 SSL 即使请求来自 HTTP 我尝试强制请求的地址具有 HTTPS 并且它完美地回复 然而

随机推荐

  • 基于Spring + Spring MVC + Mybatis 高性能web构建

    原文地址 http blog csdn net zoutongyuan article details 41379851 参考地址 http blog csdn net gebitan505 article details 44455235
  • @PathVariable注解的简单使用,常用于restful传参

    1 测试代码的控制层 GetMapping getChapterInfo1 id name public R getChapterInfo1 PathVariable id String chapterId PathVariable nam
  • 秒杀系统(二)——商品模块展示技术难点

    秒杀系统 商品模块展示技术难点 商品详情页 商品详情页是展示商品详细信息的一个页面 承载在网站的大部分流量和订单的入口 京东商城目前有通用版 全球购 闪购 易车 惠买车 服装 拼购 今日抄底等许多套模板 各套模板的元数据是一样的 只是展示方
  • 设备全生命周期管理系统软件平台

    设备全生命周期管理系统软件平台 设备全生命周期管理系统构建设备全生命周期管理平台是解决当下设备管理问题 实现设备效能利用最优化的重要举措 设备全生命周期管理系统哪些特点 设备全生命周期管理系统传统意义上的设备管理工具或软件 往往局限在业务层
  • 如何利用Python中实现高效的网络爬虫

    目录 怎么提高爬虫效率 代码示例 使用合适的库 并发和异步 使用缓存 优化请求频率 错误处理和重试 测试和调优 注意事项 在数字化时代 网络爬虫已成为获取和分析数据的重要工具 Python作为一种功能强大的编程语言 拥有丰富的库和工具 可以
  • MATLAB小技巧(14)三角函数作图

    MATLAB小技巧 14 三角函数作图 前言 一 MATLAB仿真 二 仿真结果 三 小结 前言 MATLAB进行图像处理相关的学习是非常友好的 可以从零开始 对基础的图像处理都已经有了封装好的许多可直接调用的函数 这个系列文章的话主要就是
  • win7/win10安装Ubuntu20.04双系统详细操作步骤

    0 磁盘分区 我的电脑 右键 管理 磁盘管理 选择一个盘 安装Ubuntu 我选的是F盘 右键 压缩卷 选择压缩大小 20G以上 1 Ubuntu安装包下载 方法一 官网下载20 04最新版本 URL https ubuntu com 方法
  • 数据库课程设计------书店管理系统

    书店会员管理系统 具体的效果图看博客 书店管理系统2 https blog csdn net qq 45981397 article details 124062654 spm 1001 2014 3001 5502 需求分析 1 信息需求
  • oracle游标双循环

    oracle双循环 循环资源表 T SYS RESOURCE 和角色表 T SYS ROLE 插入角色资源表t sys role resource declare a表游标定义 cursor a SYS RESOURCE cur is SE
  • 傻白入门芯片设计,史上最最最全DRAM介绍(十二)

    目录 1 DRAM单元阵列 1 1 DRAM基本单元 1 2 cell阵列 1 3 cell阵列的读取 1 4 DRAM刷新 2 DRAM芯片的读写 2 1 必须的周围逻辑 2 2 完整的读过程 重点 2 3 完整的写过程 2 4 时间消耗
  • javascript 数组一键乱序

    方法1 给数组原生的sort方法传入一个函数 此函数随机返回1或 1 达到随机排列数组元素的目的 const arr1 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 const shuffleArray arr g
  • MAC机后端开发必备

    开篇 相信很多日常使用 MAC 进行软件开发的同学会有一种感受 在换 MAC 机的时候 拿到的都是一些裸系统 有一些常用必备的软件需要重新来安装一遍 我也遇到几次这样的问题 发现每次配置开发环境时都要安装这么几个方便好用的工具 在这总结一下
  • 获取url中的参数

    获取url 后的参数 location对象 含有当前URL的信息 属性 href 整个URL字符串 protocol 含有URL第一部分的字符串 如http host 包含有URL中主机名 端口号部分的字符串 如 www cenpok ne
  • 使用openssl_encrypt方法替代mcrypt_encrypt做AES加密

    mcrypt encrypt在php7 1中已被废弃 需要使用openssl encrypt代替 mdecrypt generic版 public function encrypt cbc str iv encryptKey module
  • java8中stream()的使用案例

    Test public void t1 List
  • VS2008中的 fatal error C1902: 程序数据库管理器不匹配

    因为VC Bin 下没有 msobj80 dll mspdb80 dll mspdbcore dll mspdbsrv exe 这四个文件 解决的方法 1 gt 直接从Common7 IDE 下复制这四个文件到VC Bin 下即可解决 2
  • Android-四大应用组件之Activity

    一 理论概述 Activity的理解 二 Intent和IntentFilter的理解 显示意图 当目标组件是当前应用的 则用显示意图 隐式意图 当目标组件是其他应用的 则用隐式意图 三 相关API 四 Activity的启动流程 通过Ac
  • 网络安全工具——Wireshark抓包工具

    文章目录 一 Wireshark抓包介绍 1 WireShark简介 2 WireShark的应用 3 WireShark抓数据包技巧 二 Wireshark抓包入门操作 1 常见协议包 2 查看本机要抓包的网络 3 混杂模式介绍 4 如何
  • stratascratch刷题1 salaries difference && Finding Updated Records

    1 解题 select select max salary from db employee join db dept on db employee department id db dept id where department mar
  • 接口测试的基础(网络传输知识与协议篇)

    接口测试的基础 测试人员对于接口测试的理解总是停留在工具使用层面 很多情况下 测试人员会花很大的 代价去学习一个工具 而测试工具本身的局限性 又导致测试人员陷入想直接用现成的测试框架 却又无法进行扩展的僵局 最后由于项目的特殊性等客观因素