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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 超好玩的vbs代码 (恶作剧代码)

    超好玩的vbs代码 (恶作剧代码)VBScript是VisualBasicScript的简称微软公司可视化BASIC脚本版),即VisualBasic脚本语言,有时也被缩写为VBS。它是一种微软环境下的轻量级的解释型语言,它使用COM组件、WMI、WSH、ADSI访问系统中的元素,对系统进行管理。同时它又是asp动态网页默认的编程语言,配合asp内建对象和ADO对象,用户很快就能掌握访问数据库的as…

    2022年6月14日
    50
  • executescalar mysql_ExecuteScalar

    executescalar mysql_ExecuteScalar这两个答案和一点点思考使我想到了一个接近答案的东西。首先再澄清一下:该应用程序是用C#(2.0+)编写的,并使用ADO.NET与SQLServer2005进行通信。镜像设置是托管主体和镜像的两个W2k3服务器以及托管作为监视器的快速实例的第三个服务器。这样做的好处是,故障转移对于使用数据库的应用程序几乎是透明的,它将对某些连接引发错误,但从根本上讲一切都会很好地进行。是的,我们得到了奇怪的误报…

    2022年6月30日
    18
  • 交换机vlan配置实例_h3c vlan配置

    交换机vlan配置实例_h3c vlan配置锐捷交换机vlan配置示例,能够帮助理解vlan原理

    2022年9月16日
    3
  • 花生壳安全吗_花生壳ddns怎么一直连接不上

    花生壳安全吗_花生壳ddns怎么一直连接不上dyndns和花生壳组织文化中最强大的方面以最小的个体姿态来实现,有时甚至不及花生。不久前,当我坐在达拉斯机场等待航班延误时,我看到另一个乘客在吃一些花生时感到不安。它们的贝壳掉落在地板上,几分钟后,乘客将它们踢入过道,大概是供机场清洁人员稍后收集。直到最近的一次内部RedHat活动中,有人问我有关我的宠物怒气冲冲,我才对花生壳没多加考虑。我开始考虑在RedHat浴室的地板…

    2025年6月11日
    2
  • Linux 防火墙开放特定端口 (iptables)

    Linux 防火墙开放特定端口 (iptables)查看状态:iptables-L-n下面添加对特定端口开放的方法:使用iptables开放如下端口/sbin/iptables-IINPUT-ptcp–dport8000-jACCEPT保存/etc/rc.d/init.d/iptablessave重启服务serviceiptablesrestart查看需要打开的端口是否生效?/etc/init.d/iptablesstatus法2:或直接编辑/etc/sysconfig/iptables-AINPUT

    2022年10月19日
    1
  • 关于2020最新Kali无法使用arpspoof命令解决(在源和包都已经安装的情况下)

    关于2020最新Kali无法使用arpspoof命令解决(在源和包都已经安装的情况下)第一步可以参照这个https://hlynford.com/565.html如果你按照上面的步骤安装了相应的包,还是没有相应的命令,那多半就是路径的问题了第二部[root@server~]#echo$PATH/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin如果输出的东西和上面不一样…

    2022年10月6日
    3

发表回复

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

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