IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> 互联网服务端测试之RPC接口测试 -> 正文阅读

[开发测试]互联网服务端测试之RPC接口测试

开篇碎碎念:

????????18年的时候写过一篇《互联网服务端测试是个啥(入门科普)》(指路https://blog.csdn.net/wangyueshu/article/details/81944250),主要面向的是那些没有接触过服务端测试,尤其是已有端上测试经验、而面对服务端测试时急需转换测试思维的那部分读者。

????????3年过去了,转一圈再回来做服务端测试时,内容也有了扩展。原篇的接口更多的是指代HTTP接口,服务也更多的指代数据服务。而随着算法模型应用的逐渐深入,服务扩展到了模型、策略服务,RPC接口也变得更为普遍,成了服务端测试的对象之一。

? ? ? ? 正文将包含三部分,基础概念、服务输出(开发视角)和服务测试(测试视角)三个部分。

一、基础概念:

????????在正式介绍RPC接口测试之前,先明确几个基本概念,服务、语言、协议。

????????服务,即为达到一定的产品或技术目标而实现的一套软硬件系统或子系统。

????????语言,服务为了实现软件功能而采用的代码语言,如Java、php、python等。

????????协议,数据通信规范,可以是终端到服务端,也可以是服务端和服务端之间。两个软硬件各不相同的两个系统,只要采用相同的协议即可正常通信。

????????RPC(Remote Procedure Call Protocol),远程过程调用协议,其允许像调用本地服务一样调用远程服务。相比HTTP或socket一类的通信协议,更多的是表示一种技术框架,可以通过HTTP、socket或其它封装的私有协议来实现。

二、服务输出:

????????现在假设你是一个服务提供者,先选定了开发语言A开发了一套系统,为了实现对外服务,就需要通过API封装把服务接口提供出去。这时候可选的方案就有HTTP的接口、RPC的接口或其它协议基础的通信接口,至于具体如何选择我们不在此作展开。

????????对于接口调用,这里有一个隐藏概念,即server端和client端的协议数据收发模块。对于HTTP类型的接口,大多数的终端、浏览器、语言代码包都提供了完备的HTTP request功能,因此服务提供者不需要考虑对方如何调用的问题。

????????但对于RPC接口就需要显性的去考虑别人怎么调用的问题。要让别人像调用本地服务一样调用自己的server端,就需要提供一个负责RPC协议数据收发的client代码包给对方。对方引入代码包后,根据client代码包的request对象结构拼接数据,调用client代码包的方法以使用server的接口服务,并用client代码包的response对象结构来解析返回数据。

????????且考虑到对方的开发语言是多样的,为了更多的支持服务调用者,client代码包也会有多个语言版本。也就是说,你自己的服务可能是java写的,提供出去的client代码包可能是java的、php的等等。当然RPC大多在公司内部的大系统内相互调用,因此技术栈范围是有限的,固定支持一种或几种即可。

三、服务测试:

????????下面我们再回到测试视角。

????????测试靠调用RPC接口完成RPC服务的测试。而测试是没有固定的语言要求的,不需要RPC服务端来适配我们。因此我们在选测试脚本语言的时候需要看开发提供的client代码包的语言是什么,我们就用什么,跟开发的技术栈保持一致。

????????选定语言后就可以进行测试代码开发了,基本流程如图所示。

?

????????先进行环境配置,主要包括3个方面:

  1. RPC运行环境配置,包括一些协议、referer等配置。
  2. Client代码包的安装,例如maven通过pom文件的depedencies安装。
  3. 服务器地址配置,包括group、直连地址等(RPC一般起的云服务)。

????????环境配置完成之后开始代码编写。先引入代码包,进行环境上下文Context初始化(rpc框架不同,这部分的工作也会不一样),然后按照Client代码包中的类和方法定义,进行Request数据准备、service服务调用和Response结果校验。

????????同样,调用方式不是最关键的,服务端不等同于简单的接口测试,接口调用只是手段,用来帮助我们进行服务及系统本身的测试验收。所以,重要的是对于被测服务的理解。例如RPC接口大多提供的是模型及策略服务,因此我们要明确的是被测对象。如果是模型,核心需要关注的指标是什么?如何评估?测试数据有什么要求(各类型数据的构成比例及数量等)?如果是策略,针对的是什么输入数据?输出的期望是什么?这些才是RPC测试的根本所在。?

?

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-08-20 15:25:05  更:2021-08-20 15:25:15 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/17 20:50:47-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码