Rpc接口测试_Python接口测试

Rpc接口测试_Python接口测试本发明涉及RPC(RemoteProcedureCallProtocol,远程过程调用协议,通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议)接口测试领域,具体涉及一种RPC接口测试方法及系统。背景技术:接口测试(对系统组件间接口进行测试)主要用于检测外部系统与系统(包括各个子系统)之间的交互点,接口测试重点为检查数据的交换、传递和控制管理过程,以及系统间的相互逻辑依赖关系…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

本发明涉及RPC(Remote Procedure Call Protocol,远程过程调用协议,通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议)接口测试领域,具体涉及一种RPC接口测试方法及系统。

背景技术:

接口测试(对系统组件间接口进行测试)主要用于检测外部系统与系统(包括各个子系统)之间的交互点,接口测试重点为检查数据的交换、传递和控制管理过程,以及系统间的相互逻辑依赖关系等。

目前,Web测试中的接口测试主要关注前端服务中基于http协议的post(传送数据)和get(获取数据)请求,而对后端服务中较通用的RPC接口测试研究不多,RPC接口的测试方法尚无,进而会使得RPC服务使用时存在以下缺陷:

RPC服务在创建和初期使用时出现的问题比较隐蔽,无法及时修复,若该问题在RPC服务完善后再来修复,则会重新大幅度修整RPC服务,不仅操作过程比较复杂,而且修复成本较高。

技术实现要素:

针对现有技术中存在的缺陷,本发明解决的技术问题为:提供一种RPC接口测试方法及系统,本发明能够在RPC服务出现问题时及时发现并修复,简化了后期的操作过程和维修成本。

为达到以上目的,本发明提供的RPC接口测试方法,包括以下步骤:

S1:在服务器上建立Socket连接,通过Socket与RPC接口进行通信,读取预先设置的RPC服务的服务器配置信息、测试数据配置文件和数据库配置文件,转到S2;

所述服务器配置信息包括用于写入RPC调用语言的命令行终端和公共RPC的调用方法;

S2:运行测试所需的驱动数据后,加载所述测试数据配置文件和数据库配置文件,通过公共RPC的调用方法在服务器上进行RPC服务登录,转到S3;

S3:在命令行终端上写入测试数据配置文件的测试参数,根据测试参数进行测试。

在上述技术方案的基础上,S3中所述根据测试参数进行测试的具体流程为:读取测试数据配置文件中预先定义的不正确或正确的用户数据;执行S3的过程中,若出现异常,则捕获异常信息。

在上述技术方案的基础上,S3之后还包括以下步骤:根据预先设置的测试场景恢复配置,进行测试场景恢复。

在上述技术方案的基础上,S1中所述通过Socket与RPC接口进行通信之后,还包括以下步骤:读取预先设置的Socket的服务器配置信息。

在上述技术方案的基础上,S1中所述服务器配置信息还包括服务器ip、RPC服务的端口号和RPC服务的消息码。

本发明提供的实现上述方法的RPC接口测试系统,包括测试连接建立模块、测试驱动登陆模块和RPC接口测试模块;

测试连接建立模块用于:在服务器上建立Socket连接,通过Socket与RPC接口进行通信,读取预先设置的RPC服务的服务器配置信息、测试数据配置文件和数据库配置文件,向测试驱动登陆模块发送测试驱动登陆信号;

所述服务器配置信息包括用于写入RPC调用语言的命令行终端和公共RPC的调用方法;

测试驱动登陆模块用于:收到测试驱动登陆信号后,运行测试所需的驱动数据,加载所述测试数据配置文件和数据库配置文件,通过公共RPC的调用方法在服务器上进行RPC服务登录,向RPC接口测试模块发送RPC接口测试信号;

RPC接口测试模块用于:收到RPC接口测试信号后,在命令行终端上写入测试数据配置文件的测试参数,根据测试参数进行测试。

在上述技术方案的基础上,所述RPC接口测试模块根据测试参数进行测试的具体流程为:读取测试数据配置文件中预先定义的不正确或正确的用户数据;测试过程中,若出现异常,则捕获异常信息。

在上述技术方案的基础上,该系统还包括测试测试场景恢复模块,其用于:在RPC接口测试模块测试完成后,根据预先设置的测试场景恢复配置,进行测试场景恢复。

在上述技术方案的基础上,所述测试连接建立模块通过Socket与RPC接口进行通信之后,还包括以下工作流程:读取预先设置的Socket的服务器配置信息。

在上述技术方案的基础上,所述测试连接建立模块读取的服务器配置信息,还包括服务器ip、RPC服务的端口号和RPC服务的消息码。

与现有技术相比,本发明的优点在于:

本发明根据自行创造的测试方式,能够完成RPC接口的测试,进而使得RPC服务出现问题时能够及时发现并修复,简化了后期的操作过程和维修成本。

附图说明

图1为本发明实施例中RPC接口测试方法的流程图。

具体实施方式

以下结合附图及实施例对本发明作进一步详细说明。

本发明实施例中的RPC接口测试方法,借鉴了数据驱动的测试自动化思想(以数据来控制自动化测试的流程和动作的测试,其中数据是独立于测试用例脚本的,通常以文本文件形式、Excel文件形式、XML文件等形式存在),以Python语言(面向对象、解释型计算机程序设计语言)为主实现了后端服务器的Socket通信和RPC调用,并结合软件测试中的边界值、等价类、正交试验设计等方法编写接口测试用例。

其中Socket通信通常也称作”套接字”,用于描述IP地址和端口,是一个通信链的句柄,可以用来实现不同虚拟机或不同计算机之间的通信。在Internet上的主机一般运行了多个服务软件,同时提供几种服务。每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务。

本发明实施例进行RPC接口测试之前,需要实现与后端服务器的Socket进行通信、以及通过Python语言调用具体的RPC服务(RPC接口承载的是RPC服务)。

与后端服务器的Socket进行通信的流程为:

(1)定义socket管理类,包括创建连接-create Socket()、发送数据-send Data()、接收数据-recvData()、和关闭连接-close Socket()。

(2)定义数据包处理类,包括数据包解码-decode()、编码-encode()、字符过滤-filter()。

(3)定义RPC调用类,RPC调用类包括读取后端服务器配置信息:-processServerInfo()、读取测试数据配置-processYaml()、读取数据库配置-processMysql()、后端服务登录-loginClient()、公共的RPC调用方法-callRPC()。

通过Python语言调用具体的RPC的流程为:

(1)定义具体RPC的调用方法:call_RPC_A(args[])。

(2)定义执行RPC调用类,执行RPC调用类类包括场景初始化-init()、执行具体RPC调用-test_RPC_A()、测试场景恢复配置-cover()。

(3)定义驱动数据。

在此基础上,本发明实施例中的RPC接口测试方法,包括以下步骤:

S1:在后台服务器上建立Socket连接,通过Socket与RPC接口进行通信,分别读取预先设置的RPC服务的服务器配置信息、RPC服务的测试数据配置文件、RPC服务的数据库配置文件、以及Socket的服务器配置信息,转到S2。

S1中RPC服务的服务器配置信息包括服务器ip、RPC服务的端口号port、RPC的消息码、用于写入RPC调用语言的命令行终端和公共的RPC调用方法。

S2:运行测试所需的驱动数据后,加载S1中的测试数据配置文件和数据库配置文件,通过公共的RPC调用方法在后台服务器上进行RPC服务登录,转到S3。

S3:在命令行终端上写入测试数据配置文件的实际测试参数,根据测试参数进行测试test_RPC_get_member_ban_info(),转到S4。

S3中根据测试参数进行测试可以为以下2种中的任意1种流程:

(1)test_case_error_uid:读取测试数据配置文件中预先定义的不正确的用户数据;

(2)test_case_correct_uid:读取测试数据配置文件中预先定义的正确的用户数据。

S3中若测试过程中出现异常(例如读取测试数据配置文件错误等),则捕获并打印异常信息。

S4:根据预先设置的测试场景恢复配置,进行测试场景恢复(例如将测试场景恢复为RPC的正常工作场景等)。

本发明实施例提供的实现上述方法的RPC接口测试系统,包括测试连接建立模块、测试驱动登陆模块、RPC接口测试模块和测试测试场景恢复模块。

测试连接建立模块用于:在服务器上建立Socket连接,通过Socket与RPC接口进行通信,读取预先设置的RPC服务的服务器配置信息、测试数据配置文件、数据库配置文件、以及Socket的服务器配置信息,向测试驱动登陆模块发送测试驱动登陆信号。

所述服务器配置信息包括服务器ip、RPC服务的端口号port、RPC的消息码、用于写入RPC调用语言的命令行终端和公共的RPC调用方法。

测试驱动登陆模块用于:收到测试驱动登陆信号后,运行测试所需的驱动数据,加载所述测试数据配置文件和数据库配置文件,通过公共RPC的调用方法在服务器上进行RPC服务登录,向RPC接口测试模块发送RPC接口测试信号。

RPC接口测试模块用于:收到RPC接口测试信号后,在命令行终端上写入测试数据配置文件的测试参数,根据测试参数进行测试,测试的具体工作流程为:读取测试数据配置文件中预先定义的不正确或正确的用户数据;测试过程中,若出现异常,则捕获异常信息。

测试测试场景恢复模块用于:在RPC接口测试模块测试完成后,根据预先设置的测试场景恢复配置,进行测试场景恢复。

本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/182321.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 调用usb摄像头_usb监控

    调用usb摄像头_usb监控在使用DirectShow控制USB摄像头的技术方面,需要做几件准备工作:1、安装DirectShowSDK,这个比较繁琐,具体可以网上搜索。2、配置开发工具的路径,如VS2008的相关包含的路径设置3、网上有示例代码,我的资源也上传了一个示例代码。主要对代码中可能遇到的问题进行总结:一般实现功能,包含两个,一个是实时预览,一个是控制拍摄一张图像。问题就是,这两个功能单

    2022年8月31日
    0
  • 汇编 常用_汇编指令详解

    汇编 常用_汇编指令详解
    常见的基本汇编书籍 

    Windows.环境下32位汇编语言程序设计(第2版) 
    http://www.happycampus.cn/docs/957100583237@hc10/275980/ 

    汇编语言编程艺术 

    Intel汇编语言程序设计(第四版) 

    Intel汇编语言程序设计(第五版)范例 
    http://download.csdn.net/source/1523425 

    2022年10月13日
    0
  • 反应java程序并行机制的特点_Java语言具有许多优点和特点,下列选项中能反映Java程序并行机制特点的是()。…[通俗易懂]

    反应java程序并行机制的特点_Java语言具有许多优点和特点,下列选项中能反映Java程序并行机制特点的是()。…[通俗易懂]语言优点与Windows相比Linux在哪个方面应用相对较少?如果要检测是否按下的是方向右键,具有机制此时我们要定义键盘的什么属性?许多下列选项下面的代码是检测【Ctrl】和【V】是否同时按下的是?和特在ActionScript3.0中使用KeyboardEvent类来处理键盘操作事件。它有两种类型的键盘事件:KeyboardEvent.KEY_DOWN和KeyboardEvent.KEY_U…

    2022年7月8日
    17
  • OpenCV—python 颜色直方图与直方图均衡化[通俗易懂]

    OpenCV—python 颜色直方图与直方图均衡化[通俗易懂]一、读取图片并展示:颜色直方图OpenCV-Python中调用的直方图计算函数为cv2.calcHist。"""hist=cv2.calcHist([image],#传入图像(列表)[0],#使用的通道(使用通道:可选[0],[1],[2])…

    2022年8月30日
    0
  • 串行通信(USART/UART)「建议收藏」

    串行通信(USART/UART)「建议收藏」USART支持同步模式,因此USART需要同步始终信号USART_CK(如STM32单片机),通常情况同步信号很少使用,因此一般的单片机UART和USART使用方式是一样的,都使用异步模式。UART作为串口的一种,其工作原理也是将数据一位一位的进行传输,发送和接收各用一条线,因此通过UART接口与外界相连最少只需要三条线:TXD(发送)、RXD(接收)和GND(地线)**空闲位:**数据线在空闲状态的时候为逻辑“1”状态,也就是高电平,表示没有数据线空闲,没有数据传输。**起始位:**.

    2022年5月18日
    31
  • jetbrains全家桶激活码 淘宝上卖的怎么来的【2021最新】

    (jetbrains全家桶激活码 淘宝上卖的怎么来的)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月22日
    43

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号