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


相关推荐

  • android 测试用例模板下载,app测试用例模板.doc

    android 测试用例模板下载,app测试用例模板.docapp测试用例模板APP基本测试用例个人首页1.我的页面2.个人信息页面3.个性标签页面4.TA的页面消息页面消息页面发布商品和图片发布商品分享图片买买买页面买买买页面一级分类页面买手热荐品类二级分类页面侧边栏页面购物车页面我的钱包页面一、编号条件步骤预期结果实际结果1打开我的页面?出现我的信息(头像、昵称、签名、关注数、粉丝数、入手、出手)、中部出现切换我发表的与我喜欢的tab、下部列表出现内容…

    2022年7月17日
  • reduce实现数组求和_js数组reduce

    reduce实现数组求和_js数组reducereducereduce收敛4个参数,返回的是叠加后的结果,原数组不发生变化,回调函数返回的结果//从左向右//prev代表前一项,cur代表当前项【求和】letarr=[1,3,5,8,9,7];letsum=arr.reduce(function(prev,cur,index,arr){ //return100;//本次的返回值…

    2022年9月27日
  • 基于javaweb的客户信息管理系统搭建「建议收藏」

    基于javaweb的客户信息管理系统搭建「建议收藏」在写这篇博客之前,特意写下,本人暂时学生一名,也是趁暑假时间,学习一些新的技术,正好学习完拿来练手,花了一个星期多写好了完整的基于javaweb的客户信息管理系统,之所以花了很多时间,原因当然各种了,好了不在累赘。项目:ecclipse+tomcat7+mysql项目简介:基于javaweb的在线客户信息管理,主要实现了客户信息的增删改查基本功能。切入正题,从一开始敲代码开

    2022年10月16日
  • vb教程编程实例详解pdf_vb程序设计教程答案第四版实验

    vb教程编程实例详解pdf_vb程序设计教程答案第四版实验实验8-3VB程序题:设计一个如图2.8.4所示的应用程序,要求如下:(1.)单击“打开文件”按钮弹出一个通用对话框,选择文件后显示在文本框中(2).单击“保存文件”按钮后弹出通用对话框,确定文件名后保存。(3)单击“查找下一个”按钮后在文本文件中查找单词“VB”,找到后以高亮度显示。解题,画4个按钮,1个文本框控件,再加上一个通用对话框控件,代码如下:PrivateSub…

    2022年10月7日
  • QListWidget用法

    QListWidget用法一、参考https://blog.csdn.net/qq_37233607/article/details/78145118QListWidget类重要的函数:1.voidaddItem(constQWidgetItem*);//加入一个项.需要自己先创建一个项的对象.示例如下:QListWidgetItem*ite=newQListWidgetItem;ite->setText(QString::fromLocal8Bit(“杭州”));ui.listWidge

    2022年6月6日
  • 使用nodejs进行微信公众号网页开发(一)验证服务器「建议收藏」

    使用nodejs进行微信公众号网页开发(一)验证服务器「建议收藏」微信公众号网页开发(一)验证服务器前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言微信公众号网页开发第一步是验证服务器这一步是必不可少的。我是用的是liunx系统搭配宝塔面板,基于node.js+nginx进行开发的。一、pandas是什么?示例:pandas是基于NumPy的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):importnumpyasnpimportpandasaspdimportmatpl

    2022年6月3日

发表回复

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

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