【测试】详解接口测试(1)-常见的网络通信协议

      最后更新:2022-05-16 22:24:33 手机定位技术交流文章

      文章目录

      • 接口是什么
      • 接口协议的类型
        • 恢复的 API 协议和 HTTP 协议
        • Web Service
        • WebSocket
        • Dubbo
          • Dubbo的工作目的
          • 来自 Dubbo 协议的电文
          • Dubbo 接口
        • MQTT
          • MQTT服务质量
          • MQTT 的软件包格式
      • 结束语

      接口是什么

      我们所有人都听说过API(应用编程接口、应用编程接口)。

      通常当我在手机上打开APP应用程序并点击应用程序中的按钮时,我都会这样做。调用某个接口,向服务端发起HTTP请求接口返回数据然后将在申请中看到调查结果。

      例如访问查询天气站点, 点击“ 北京” 一词的按钮, 使用浏览器调试工具抓取包 。province/beijing/30界面是用来检索北京最后30天的天气, 最终又恢复到 HTML, 我们可以看到当浏览器重写时。

      在这里插入图片描述
      因此,一个用户搜索了电话。客户,如PC浏览器,执行APP、点击按钮等等。就会调用外部接口,它不会有效,它会通过API网关或Nginx, 它会通过API网关或Nginx。然后,该请求将抵达服务端群组。大多数主流服务终端结构目前都使用微服务。在服务与服务之间,也存在内部接口调用
      在这里插入图片描述

      接口协议的类型

      基于HTTP协议界面是我们在日常测试工作中最接触的界面,此外还有其他协议,如共同协议。WebServiceWebSocketDubboMQTT等最好也有所了解

      我们可能很难理解协议,所以在我们讨论之前, 我们希望你有一个不那么可怕的概念。

      所谓协议就是一组规则,所有行动都按照这套准则进行。好像路上有个停车牌红灯不该变成绿灯它可被视为一项合同。如果没有共识,全球将出现一片混乱。计算世界的情况也是如此。只有达成协议,才能使世界秩序有序。因此,需要了解各种计算机网络通信协议。而做软件测试也是,只有理解协议,我们才能有效地检验协议。

      恢复的 API 协议和 HTTP 协议

      HTTP( Hyper Text Transtop 协议) 是超文本传输协议的缩略语, 超文本传输协议是将超文本从 WW 服务器传输到本地浏览器的协议。 HTTP 是包含请求和回答的应用程序级协议 。

      对于HTTP请求,它由三部分组成:请求行、请求信头和请求机构。
      对于人道主义工作队的答复,分为三部分:反应线(状态线)、反应主管和反应机构。

      目前有8项频繁的HTTP请求,具体如下:
      在这里插入图片描述

      恢复式的API,它同样以HTTP协议为基础,但只遵循恢复式的设计风格,它有两个特点。

      • 每个联合资源倡议都指单一资源。

      • 客户使用动词 GET、 POST、 PUT 和 DELETE4 操作服务资源: GET 用于访问资源 。POST用于产生新的资源(也可用于更新现有的资源)。PUT 命令用于更新资源 。为了抹去资源,请使用DELETE。

      众所周知,我所描述的URI是一种资源, 这个请求是基于 HTTP, HTTP, POST, PUT, 和 DELETE4 作为四种运作模式的服务终端资源。

      例如,我现在将获得一个博客系统的界面, 这个系统与“休息”方法相容, 但与“休息”方法不完全相同。
      在这里插入图片描述

      Web Service

      Web Service这是一种远程呼叫技术,跨越计算机语言和操作系统平台,主要用于各系统之间的通信。

      Web Service通过SOAP网上服务、提供的网上服务(简单项目访问协议、简单物体访问协议)WSDL(网络服务语言、网络服务语言、网络服务语言、网络服务语言)UDDI登记(通用说明、发现和一体化、通用说明、发现和一体化、通用说明、发现和一体化、通用说明、发现和一体化、通用说明、发现和一体化)

      难道不难理解吗?
      请添加图片描述

      1. 网基服务提供方通过SOAP动态地向UDDI登记中心提供网络服务,并将服务记录为WSDL文件。
      2. 网基服务消费方通过SOAP向UDDI登记中心申请WSDL文件。
      3. UDDI 将 WSDL 文件归还给服务消费者,然后由消费者解决服务提供者提供的方法。
      4. 为了拨打网络服务电话,服务消费者根据已解析的WSDL文件构建SOAP信息,并将其传送给网络服务供应商。
      5. 根据SOAP信息,供应商提供相关的网络服务,并将服务结果发送给网络服务索取者。

      Web Service的互动逻辑可归纳为一句话:WebService使用SOAP协议将数据包装在XML,然后通过HTTP协议传输数据。

      让我们从交互逻辑转向三个网络服务组件,即:SOAPUDDIWSDL

      SOAP协议很容易理解。HTTP + XML

      当网络服务通过 HTTP 协议发送请求及其结果时,请求和结果均以XML格式密封。此外,还引入了某些新的HTTP信息。为了解释 HTTP 信件的内容,SOAP协议具体规定了HTTP信头和XML内容类型。

      WSDL的文件到底是什么?WSDL类似于指令书。这是我们第一次发现 向网络服务供应商提供什么服务。解释网络服务的方法、参数和返回值。就像我们去购物一样你已经知道这里有什么了然后再来购买,张贴海报和更多的海报是标准商业做法。WSDL类似于海报。

      网络服务器存储 WSDL 文件 。它可以通过一个 URL 地址达到 。消费方要调用一个网基服务之前,要使用此服务, 您必须知道 WSDL 文件的位置 。网基服务提供方可以通过两种方式来暴露它的WSDL文件地址:1.注册到UDDI服务器,2. 立即向客户通知打电话者,以便发现

      UDDI是一种目录服务。企业可以使用它登记和搜索在线服务。UDDI,英文,“通用描述、分类和整合”。也被称为“基因描述、发现和融合服务”。通过UDDI,公司可根据自己的需要寻找和使用在线服务。将网络服务动态上传到UDDI登记中心也是可行的。供其他用户使用

      WSDL 描述 UDDI 并有一个映射连接。 用户可以通过在 UDDI 注册表( 注册) 上搜索, 并通过 SOAP 调用, 获得 WSDL 服务描述 。

      WSDL和UDDI的主要区别是,WSDL用于描述服务,而UDDI用于登记和寻找服务。

      WebSocket

      当你想到WebSocket时, 你可能会想到Socket, 但是有一个显著的区别。

      Socket 是应用层与传输层之间的一个抽象层,它利用抽象的TCP/IP层复杂操作向各种简单的界面提供层,使该过程能够在网络中进行交流。

      WebSocket是一个OSI示范应用级协议,通过单一的TCP连接提供全时通信。

      WebSocket 允许服务器自己向客户端发送数据 。在使用 WebSocket 时,浏览器和服务器只需在 HTTP 协议上交换握手信息即可。两者可直接建立永久联系(长期联系)。以及双向数据传输。HTTP 短 HTTP 连接与长 HTTP 连接的比较

      请添加图片描述

      与HTTP协议相比,由于WebSocket协议是全职的双职工,服务器可以随时向客户提供数据,与HTTP的要求相反,请求必须等到客户提出请求后再对请求作出答复。

      此外,Websocket是一项尖端协定。来文中可省略某些状况信息。HTTP是非地位协议。也就是说,服务器在客户交易期间不会保存任何状态。也就是说,先前的请求对这一请求没有影响。没有处理客户最近请求的记录,也没有处理客户最近请求的记录。因此,HTTP查询可能需要包括每个Cookie请求的状况信息(例如身份等)

      Dubbo

      Apache Dubbo(孵化)是一个高性能、轻量级开放源码的Java RPC框架,有三个基本能力:远程接口电话、智能过错容和负载平衡以及无缝服务登记和发现。

      http://dubbo.org. 对不起, Apache.XII.A.1和Add.1.org/。

      Dubbo的工作目的

      请添加图片描述

      1. 在开办阶段,供应商在登记中心登记自己的服务。
      2. 请求远程援助服务的客户。当服务用户首次开始使用时,在注册中心,您也可订阅自己的服务。注册中心将消费者的地址 退回到服务供应商的地址列表如果有变更,根据延伸的连接,注册中心将向客户传送变化数据。
      3. 根据软负载平衡算法,服务消费者从服务供应商地址列表中挑选一个供应商接听电话,如果电话失败,服务消费者选择另一个电话。
      4. 最终服务的消费者和供应商、累计通话时间和通话时间(记忆中的累计通话时间和通话时间),以及每分钟经常向监测中心(监测中心)提交统计数据

      来自 Dubbo 协议的电文

      为了提高效率,研究与开发小组创建了Dubbo协议,这是一项基于TCP的申请级协议,由信头和身体部分组成。
      请添加图片描述

      Dubbo 接口

      Dubbo界面与Dubbo服务方法相对应,用于使用Dubbo协议传输数据。

      正如我们从上文Dubbo结构中了解到的,Dubbo界面是消费者“消费”生产者提供的一种服务,这是我们从上文Dubbo结构中了解到的,这就是我们测试Dubbo的主要前提,即测试的终点是消费者,而测试则是生产厂商“消费”生产者提供的服务的方式,正如我们从上文Dubbo结构中知道的那样,这是我们测试Dubbo的主要前提,即测试的终点是消费者,而测试则是生产厂商提供服务的方式。

      完成测试有三种方式:第一是使用编程语言创建消费者;第二是使用Dubbo给定的指挥线工具;第三是使用JMETET等第三方工具。

      MQTT

      当我们第一次了解到MQ时,人们应该想知道MQTT与MQ有什么关系。

      在中文中, MQ (Message Quue) 被称为“ 消息队列 ” 。 我不在乎“ 消息” 一词, 但是看看这个队列, 它是一个队列 。先进先出因此,可以简单地将信息队列定义为:将要传输的数据放在队列中。

      MQTT(Message Queuing Telemetry Transport,这篇文章是全球之声在线特稿的一部分。这是一个基于公众/订阅概念(出版/订阅)的“轻量级”通信协议。该协议以TCP/IP议定书为基础。属于应用层协议,IBM于199年发布。

      因此,MQ和MQTT包含两个类似的字母,但差别很大,前者是数据结构,后者是通信议定书。

      MQTT的最大优势是,它发送实时可靠的信息,用很少的代码和带宽连接远程设备。

      作为低成本、低带宽的即时通信协议,在物体网络、小型设备、移动应用等方面应用较大。

      MQTT 是一种以客户端服务器为基础的电文发布/订阅传输协议,它使用发行/订阅电文模式提供二对一电文发布机制,使应用程序脱钩。

      这是一种电文传输方法,其中电文不是从发件人直接传送给收件人(即点对点),而是通过 MQTT 服务器(又称 MQTT 服务器)传送。MQTT Broker)分发的

      当客户端向 MQTT 服务器发送信息时, 服务器是发送者, 客户端是接收者。 当 MQTT 服务器向客户端发送信息时, 服务器是发送者, 客户端是接收者 。
      请添加图片描述
      MQTT 服务器对发行订阅架构很重要, 由于服务器发布信件, 它必须是出版商, 而不是订阅者。 客户端可以发布信件( 发件人)、 订阅信件( 收件人), 也可以同时发布 。

      MQTT服务质量

      QoS(服务质量,MQTT强调服务级别质量的重要性。当我们采用TCP/IP时在某种程度上,连接得到了保障。但是在无线网络中,中断和干扰很频繁,MQTT协助避免信息损失和提高服务质量。确定服务质量的程度,在出版时,利用了这些数额。

      MQTT 协议提供了三个信息质量级别。QoS 0QoS 1QoS 2

      • QOS 0 : 发件人仅发送一条信息而不重试, MQTT Broker 也没有回复确认。 有了 QS 0, 经纪人可能没有收到消息 。
        请添加图片描述

      • 问题1:发件人至少发送一条信息,以保证电文到达Broker,而Broker必须回复PUBACK的确认。在 Qos1, 经纪人可以接收重复电文。
        请添加图片描述

      • 问题2:分两阶段确认用于保证信息不会丢失或重复。根据问题2,经纪人只收到一次电文。

      请添加图片描述

      MQTT 的软件包格式

      MQTT 信件格式分为三个关键组成部分。固定头可变头消息体

      • 固定头(固定页眉),它包含在所有 MQTT 数据集中,并标明数据包的类型以及数据包的子分类身份;

      • 变量页眉, 作为 MQTT 数据包的一部分发现; 数据包的类型影响变量的存在和内容 。

      • 有效载荷是MQTT数据包的一个组成部分,显示客户收到的确切内容。

      请添加图片描述

      MQTT的固定头目结构如下:
      请添加图片描述

      结束语

      本文为大家介绍了HTTPWebServiceWebSocketDubboMQTT这五个典型的协议 以及它们构成的界面 往往是我们的测试对象

      那么,我们如何将这些协定的接口置于检验标准之上呢?

      你可以阅读《关于2021年界面测试的白皮书》,该白皮书是由许多Testerhome社区成员撰写的,其中包括市场上几乎所有类型的界面测试方法,其中包括:

      • 恢复的 API 协议和 HTTP 协议 接口
      • 一项保健服务的效用
      • 数据库接口
      • SOCKET 和 WebSocket 的协议界面
      • Dubbo 的协议界面
      • Graphql 协议的接口
      • MQTT 协议接口
      • TCP 协议接口
      • ModBus 协议的界面

      访问:后阶段对公共编号的反应[白皮书]

      所以,这是文章。请有一个好的一篇文章,如果它能帮助你,请有一个好的一篇文章。

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/25026.html

          热门文章

          文章分类