CN113704114A - 功能接口的自动化测试方法、装置、设备及介质 - Google Patents
功能接口的自动化测试方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN113704114A CN113704114A CN202111007440.6A CN202111007440A CN113704114A CN 113704114 A CN113704114 A CN 113704114A CN 202111007440 A CN202111007440 A CN 202111007440A CN 113704114 A CN113704114 A CN 113704114A
- Authority
- CN
- China
- Prior art keywords
- message
- interface
- functional
- functional interface
- function interface
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/368—Test management for test version control, e.g. updating test cases to a new software version
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种功能接口的自动化测试方法、装置、设备及介质,方法包括:确定待测试的目标功能接口,并启动历史版本系统;当基于代理拦截器拦截到针对目标功能接口的测试请求时,通过代理控制器将测试请求转发至历史版本系统中输出第一报文;通过代理控制器将测试请求转发至当前版本系统中输出第二报文;当第一报文与第二报文存在差异报文时,记录并标记目标功能接口为差异功能接口。采用本申请实施例,可以增高系统测试的准确率,降低系统的安全风险。
Description
技术领域
本发明涉及数据一致性测试技术领域,特别涉及一种功能接口的自动化测试方法、装置、设备及介质。
背景技术
随着信息产业的不断发展,各信息技术公司中系统的功能节点日益增加,使得系统功能的迭代也愈加频繁。此时需要对系统进行不断改动来生成新版本进行上线,在大多的版本改动中,除了系统重构之外,版本大多数的功能还是期望不发生变化,特别是改动某些功能之后,要尽量避免不期望被改动的点不受影响。如何能识别这种影响点是测试工程师的主要任务。
在现有测试方案中,当测试环境进行了迭代更新后,该环境的旧版本也随之消失,即使测试人员想进行对比,也没有环境可以直接进行对比,这时就取决于测试人员的经验和记忆,质量风险不可控性再次增加。同时传统的自动化测试也是通过输入,校验输出来判断程序的逻辑,但实际上对于当前的系统规模,测试人员很难在自动化用例中完全控制输入参数,也许在我们调试用例过程中,是我们所期望的输出,但是当我们执行用例去校验程序时,时过境迁,可能隐性参数发生了变化,这就用可能造成结果的误差,从而导致降低了软件测试的准确率,增加了系统的安全风险。
发明内容
基于此,有必要针对软件系统上线后的安全性低的问题,提供一种功能接口的自动化测试方法、装置、设备及介质。
一种功能接口的自动化测试方法,方法包括:确定待测试的目标功能接口,并启动历史版本系统;当基于代理拦截器拦截到针对目标功能接口的测试请求时,通过代理控制器将测试请求转发至历史版本系统中输出第一报文;通过代理控制器将测试请求转发至当前版本系统中输出第二报文;当第一报文与第二报文存在差异报文时,记录并标记目标功能接口为差异功能接口。
在其中一个实施例中,确定待测试的目标功能接口,包括:接收针对当前版本系统的启动指令,基于启动指令启动当前版本系统;采用自动化加载器从启动后的当前版本系统中遍历查询功能接口,得到功能接口集合;按照预设的选取方法从所述功能接口集合中选取目标功能接口。
在其中一个实施例中,按照预设的选取方法从所述功能接口集合中选取目标功能接口,包括:将功能接口集合进行展示;接收针对展示的功能接口集合的选择指令,基于选择指令从功能接口集合中确定出目标功能接口;或者,获取功能接口集合中各功能接口的优先级;基于优先级的先后顺序从各功能接口中确定出目标功能接口。
在其中一个实施例中,获取功能接口集合中各功能接口的优先级,包括:获取功能接口集合中各功能接口的创建时刻;计算各功能接口的创建时刻距离当前时刻的时长,得到各功能接口的创建时长;根据所述各功能接口的创建时长将所述各功能接口进行降序排列,生成排列后的功能接口;按照排列后的所述功能接口确定优先级。
在其中一个实施例中,获取功能接口集合中各功能接口的优先级,包括:获取功能接口集合中各功能接口的代码行数;根据所述各功能接口的代码行数将所述各功能接口进行降序排列,生成排列后的功能接口;并按照排列后的所述功能接口确定优先级。
在其中一个实施例中,当第一报文与第二报文存在差异报文时,记录并标记目标功能接口为差异功能接口,包括:解析第一报文与第二报文;计算解析后的第一报文的字节码长度;计算解析后的第二报文的字节码长度;当第一报文的字节码长度与第二报文的字节码长度不相等时,确定第一报文与第二报文存在差异报文;记录并标记目标功能接口为差异功能接口。
在其中一个实施例中,当第一报文与第二报文存在差异报文时,记录并标记目标功能接口为差异功能接口,包括:解析第一报文与第二报文;计算解析后的第一报文的占用空间;计算解析后的第二报文的占用空间;当第一报文的占用空间与第二报文的占用空间不相等时,确定第一报文与第二报文存在差异报文;记录并标记目标功能接口为差异功能接口。
一种功能接口的自动化测试装置,装置包括:目标功能接口确定模块,用于确定待测试的目标功能接口,并启动历史版本系统;第一报文输出模块,用于当基于代理拦截器拦截到针对目标功能接口的测试请求时,通过代理控制器将测试请求转发至历史版本系统中输出第一报文;第二报文输出模块,用于通过代理控制器将测试请求转发至当前版本系统中输出第二报文;报文对比模块,用于当第一报文与第二报文存在差异报文时,记录并标记目标功能接口为差异功能接口。
一种设备,包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行上述功能接口的自动化测试方法的步骤。
一种存储有计算机可读指令的介质,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述功能接口的自动化测试方法的步骤。
上述功能接口的自动化测试方法、装置、设备和介质,功能接口的自动化测试装置首先确定待测试的目标功能接口,并启动历史版本系统,然后当基于代理拦截器拦截到针对目标功能接口的测试请求时,通过代理控制器将测试请求转发至历史版本系统中输出第一报文,再通过代理控制器将测试请求转发至当前版本系统中输出第二报文,最后当第一报文与第二报文存在差异报文时,记录并标记目标功能接口为差异功能接口。由于本申请通过代理拦截器实现当前版本系统与上一历史版本系统的共同管理,可以有效规避了因为测试不同版本时操作的时间差造成隐性输入一致而导致结果出现误差,同时,该方案并不需要测试人员提前准备用例,可以大大降低测试门槛,同时对全报文进行比对,比单纯覆盖面更广,因此本申请可以增高系统测试的准确率,降低系统的安全风险。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1为本申请一个实施例中提供的功能接口的自动化测试方法的实施环境图;
图2为本申请一个实施例中设备的内部结构示意图;
图3为本申请一个实施例中提供的功能接口的自动化测试方法的方法示意图;
图4为本申请一个实施例中提供的功能接口的自动化测试过程的过程示意图;
图5是本申请实施例提供的一种功能接口的自动化测试装置的装置示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。
图1为一个实施例中提供的功能接口的自动化测试方法的实施环境图,如图1所示,在该实施环境中,包括设备110以及客户端120。
设备110可以为服务器设备,例如为部署当前版本系统的服务器设备、还可以是用来部署上一历史版本系统的服务器设备。当需要进行功能接口的自动化测试时,客户端120确定待测试的目标功能接口,并启动设备110中部署的当前版本系统的上一历史版本系统,客户端120当基于代理拦截器拦截到针对目标功能接口的测试请求时,通过代理控制器将测试请求转发至历史版本系统中输出第一报文,客户端120通过代理控制器将测试请求转发至当前版本系统中输出第二报文,客户端120当第一报文与第二报文存在差异报文时,记录并标记目标功能接口为差异功能接口。
需要说明的是,客户端120可为智能手机、平板电脑、笔记本电脑、台式计算机等,但并不局限于此。设备110以及客户端120可以通过蓝牙、USB(Universal Serial Bus,通用串行总线)或者其他通讯连接方式进行连接,本发明在此不做限制。
图2为一个实施例中设备的内部结构示意图。如图2所示,该设备包括通过系统总线连接的处理器、介质、存储器和网络接口。其中,该设备的介质存储有操作系统、数据库和计算机可读指令,数据库中可存储有控件信息序列,该计算机可读指令被处理器执行时,可使得处理器实现一种功能接口的自动化测试方法。该设备的处理器用于提供计算和控制能力,支撑整个设备的运行。该设备的存储器中可存储有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行一种功能接口的自动化测试方法。该设备的网络接口用于与终端连接通信。本领域技术人员可以理解,图2中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的设备的限定,具体的设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。其中,介质为一种可读的存储介质。
下面将结合附图3-附图4,对本申请实施例提供的功能接口的自动化测试方法进行详细介绍。该方法可依赖于计算机程序实现,可运行于基于冯诺依曼体系的功能接口的自动化测试装置上。该计算机程序可集成在应用中,也可作为独立的工具类应用运行。
请参见图3,为本申请实施例提供了一种功能接口的自动化测试方法的流程示意图。如图3所示,本申请实施例的方法可以包括以下步骤:
S101,确定待测试的目标功能接口,并启动历史版本系统;
其中,功能接口是当前软件系统中存在的应用程序编程接口,是一些预先定义的接口(如函数、HTTP接口),或指软件系统不同组成部分衔接的约定。目标功能接口是软件测试工程师从当前待测软件系统中确定出需要测试的应用程序编程接口,需要测试的应用程序编程接口对应当前系统中的某一个功能。
例如,登录功能对应的应用程序编程接口可以为userRegister(),用户通过前端页面提交表单后通过点击确定按钮生成触发指令,该触发指令可携带表单参数响应到功能接口userRegister()中进行处理。
通常,目标功能接口的确定可以是软件测试工程师手动确定,也可以是通过预先设定的算法自动化确定,本申请为了提升测试效率,优选自动化确定。
在本申请实施例中,当进行功能接口的自动化测试时,首先接收针对当前版本系统的启动指令,基于启动指令启动当前版本系统,然后采用自动化加载器从启动后的当前版本系统中遍历查询功能接口,得到功能接口集合,最后按照预设的选取方法从所述功能接口集合中选取目标功能接口。
具体的,在按照预设的选取方法从所述功能接口集合中选取目标功能接口时,首先将功能接口集合进行展示,然后接收针对展示的功能接口集合的选择指令,基于选择指令从功能接口集合中确定出目标功能接口;或者,获取功能接口集合中各功能接口的优先级,再基于优先级的先后顺序从各功能接口中确定出目标功能接口。
进一步地,获取功能接口集合中各功能接口的优先级时,首先获取功能接口集合中各功能接口的创建时刻,然后计算各功能接口的创建时刻距离当前时刻的时长,得到各功能接口的创建时长,最后根据所述各功能接口的创建时长将所述各功能接口进行降序排列,生成排列后的功能接口;并按照排列后的所述功能接口确定优先级。
进一步地,获取功能接口集合中各功能接口的优先级时,首先获取功能接口集合中各功能接口的代码行数,然后根据所述各功能接口的代码行数将所述各功能接口进行降序排列,生成排列后的功能接口,最后按照排列后的所述功能接口确定优先级。
在一种可能的实现方式中,当进行功能接口的自动化测试时,测试工程师首先启动当前版本系统,然后通过功能接口的自动化加载器遍历查询该系统中存在的全部功能接口进行展示,再从展示的功能接口中挑选一个功能接口进行选中,最后将选中的功能接口确定为待测试的目标功能接口。
在另一种可能的实现方式中,当进行功能接口的自动化测试时,测试工程师首先启动当前版本系统,然后通过功能接口的自动化加载器遍历查询该系统中存在的全部功能接口,得到功能接口集合,再获取接口集合中各接口的优先级,并基于优先级的高低顺序从各接口中确定出待测试的目标功能接口。
进一步地,在确定各接口的优先级时,首先获取各接口的创建时间,然后计算各接口的创建时间与当前时刻的时长,得到各接口的时长,根据各接口的时长确定出各接口的优先级。
例如,接口集合中包括登录接口userLogin()接口与注册功能userRegister()接口,获取到的登录接口userLogin()的创建时间为2021年7月11日09:50:14,注册功能userRegister()接口的创建时间为2021年7月12日09:50:14,例如当前时间为2021年7月13日09:50:14,可知登录接口userLogin()距离当前时刻的时长为48小时,注册功能userRegister()接口距离当前时间为24小时,因此登录接口userLogin()的优先级大于注册功能userRegister()的优先级。由于登录功能创建的时间更早,创建越早的功能接口开发工程师急需直到自己开发功能是否可以上线,因此需要最先进行测试。
进一步地,在确定优先级时,首先获取各接口对应的代码行数,然后根据各接口对应的代码行数确定各接口的优先级。
例如,接口集合中包括登录接口userLogin()接口与注册功能userRegister()接口,获取到的登录接口userLogin()的代码行数为200行,注册功能userRegister()接口的代码行数为600行,因此登录功能的优先级大于注册功能的优先级,由于代码行数越多,逻辑越复杂,在系统中重要程度越高,因此需要将代码行数越高的功能接口最先测试,确定出问题后方便开发人员早点修改。
进一步地,当前版本系统是目前准备上线运行并交付客户的最新版本系统,上一历史版本系统是目前在工作环境中运行的版本系统,可以理解为,等最新版本系统测试完成后,将目前运行的版本系统下线,将最新版本系统上线。
在一种可能的实现方式中,启动上一历史版本系统时,首先启动测试环境,然后在测试环境中的服务器上部署上一历史版本系统的代码文件,最后通过命令行的方式启动服务器后将上一历史版本系统运行在服务器。
S102,当基于代理拦截器拦截到针对目标功能接口的测试请求时,通过代理控制器将测试请求转发至历史版本系统中输出第一报文;
其中,测试请求是用户输入的测试指令,该指令可以用来测试目标功能接口。代理控制器是用来将测试请求依次转发至当前版本系统与当前版本系统的上一历史版本系统的算法组件。
通常,在测试过程中,在启动当前版本系统的服务器同时,同步启动一个旧版本的系统的服务器,在测试过程中将测试的请求流量通过代理控制器进行拦截,拦截后先转发到旧系统服务器,等待旧系统服务器返回报文后,再同步将请求转发到当前版本的服务器中返回另一个报文。
在一种可能的实现方式中,当用户针对目标功能接口输入测试请求后,采用代理拦截器解析该请求,查看该请求中的标识是否为测试标识,如果是测试标识,通过代理拦截器拦截并获取该测试请求中的参数转发至历史版本系统中输出第一报文。
具体的,在查看该请求中的标识是否为测试标识时,通过代理拦截器将请求中的标识与自身绑定的多个测试标识中每个测试标识代入公式进行计算,算出多个判断因子,将多个判断因子进行加权求和取均值得到判断值,当判断值大于预设值时,说明该请求中的标识为测试标识。
判断因子计算公式为:
其中,Nw为测试请求中的标识,w为预设权重值,Cmotion是代理拦截器中测试标识的范围值。
S103,通过代理控制器将测试请求转发至当前版本系统中输出第二报文;
在本申请实施例中,当用户针对目标功能接口触发测试指令时,首先根据该指令生成测试请求,当代理控制器拦截到该测试请求时,通过代理控制器将该测试请求转发到上一历史版本系统后,输出上一历史版本系统处理后的第一报文,最后代理控制器将测试请求转发至当前版本系统后,输出当前版本系统处理后的第二报文。
S104,当第一报文与第二报文存在差异报文时,记录并标记目标功能接口为差异功能接口。
在一种可能的实现方式中,在得到第一报文与第二报文后,首先解析第一报文与第二报文,根据解析后的报文确定第一报文与第二报文是否存在差异,如果有差异时记录目标功能接口,如果无差异时,则继续执行步骤S101-S104,使得当前系统中的全部接口测试结束后,生成当前版本系统中存在差异的全部功能接口,将存在差异的全部功能接口中每个接口对应的差异信息发送至与其对应的开发人员客户端。
在本申请实施例中,首先解析第一报文与第二报文,再计算解析后的第一报文的字节码长度,然后计算解析后的第二报文的字节码长度,其次当第一报文的字节码长度与第二报文的字节码长度不相等时,确定第一报文与第二报文存在差异报文,最后记录并标记目标功能接口为差异功能接口。
具体的,根据解析后的报文确定第一报文与第二报文是否存在差异时,计算解析后的第一报文对应的字节码长度,计算解析后的第二报文对应的字节码长度,当解析后的第一报文对应的字节码长度与解析后的第二报文对应的字节码长度不一致时,确定存在差异,否则不存在差异。
在本申请实施例中,首先解析第一报文与第二报文,再计算解析后的第一报文的占用空间,然后计算解析后的第二报文的占用空间,并当第一报文的占用空间与第二报文的占用空间不相等时,确定第一报文与第二报文存在差异报文,最后记录并标记目标功能接口为差异功能接口。
具体的,根据解析后的报文确定第一报文与第二报文是否存在差异时,计算解析后的第一报文对应的占用空间,计算解析后的第二报文对应的占用空间,当解析后的第一报文对应的占用空间与解析后的第二报文对应的占用空间不一致时,确定存在差异,否则不存在差异。例如解析后的第一报文对应的占用空间为24K,解析后的第二报文对应的占用空间为25K,可见24K不等于25K,此时说明存在差异。
例如图4所示,图1是本申请提供的一种功能接口的自动化测试过程的过程示意图,首先软件测试工程师在测试过程中请求被测系统,测试请求先进入代理控制器的程序proxy,该程序先将请求转发到预先准备好的旧版本系统的服务oServer,oServer服务在处理后去请求数据库。其中,oServer请求数据库分为两者情况,当为只读请求时,就直接请求数据库,不做特殊处理,如果写的请求,利用数据库事务的特性,系统服务在完成这次请求的所有数据库请求后可以再进行回滚操作,这样实际上并不会改动数据库中的数据。
需要说明的是,关于数据库只能读不能写,其实可以理解一个mock服务,对于java类型的应该可以用java agent进行实现,当接入该agent时,篡改jdbc对应方法commit为rollback,这样在对数据库写的请求会自动回滚,不会实际修改数据。同事java agent对代码无侵入的特性亦可以保证落地的可行性。
oServer在完成所有的逻辑处理后,请求响应返回到代理proxy,proxy将响应报文暂存,然后proxy开始请求当前版本系统的服务nServer,nServer在在请求数据库时,将不对读写再做区分,写的操作也会改变数据库中数据。此时进行写的操作不与oServer进行写的操作进行回滚操作的原因是,可以保证业务的连续性,用户在进行做增删改的操作时,实际上只是期望数据的原子操作只发生一次改变,如果都回滚那就是0次,都提交就是2次,重复了。
nServer在完成所有的逻辑处理后,请求响应返回到代理proxy。nServer将nServer返回的请求在传回到用户端,虽然我们业务数据进行了一系列的流转,但实际上这套方案模型跟直连直接请求,无论是用户端的感知还是对数据库存储(写)的影响,都是一致的,最后新旧版本返回报文进行对比并记录存在差异的功能接口。
在本申请实施例中,功能接口的自动化测试装置首先确定待测试的目标功能接口,并启动历史版本系统,然后当基于代理拦截器拦截到针对目标功能接口的测试请求时,通过代理控制器将测试请求转发至历史版本系统中输出第一报文,再通过代理控制器将测试请求转发至当前版本系统中输出第二报文,最后当第一报文与第二报文存在差异报文时,记录并标记目标功能接口为差异功能接口。由于本申请通过代理拦截器实现当前版本系统与上一历史版本系统的共同管理,可以有效规避了因为测试不同版本时操作的时间差造成隐性输入一致而导致结果出现误差,同时,该方案并不需要测试人员提前准备用例,可以大大降低测试门槛,同时对全报文进行比对,比单纯覆盖面更广,因此本申请可以增高系统测试的准确率,降低系统的安全风险。
下述为本发明装置实施例,可以用于执行本发明方法实施例。对于本发明装置实施例中未披露的细节,请参照本发明方法实施例。
请参见图5,其示出了本发明一个示例性实施例提供的功能接口的自动化测试装置的结构示意图,应用于服务器。该功能接口的自动化测试装置可以通过软件、硬件或者两者的结合实现成为设备的全部或一部分。该装置1包括目标功能接口确定模块10、第一报文输出模块20、第二报文输出模块30、报文对比模块40。
目标功能接口确定模块10,用于确定待测试的目标功能接口,并启动历史版本系统;
第一报文输出模块20,用于当基于代理拦截器拦截到针对目标功能接口的测试请求时,通过代理控制器将测试请求转发至历史版本系统中输出第一报文;
第二报文输出模块30,用于通过代理控制器将测试请求转发至当前版本系统中输出第二报文;
报文对比模块40,用于当第一报文与第二报文存在差异报文时,记录并标记目标功能接口为差异功能接口。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请实施例中,功能接口的自动化测试装置首先确定待测试的目标功能接口,并启动历史版本系统,然后当基于代理拦截器拦截到针对目标功能接口的测试请求时,通过代理控制器将测试请求转发至历史版本系统中输出第一报文,再通过代理控制器将测试请求转发至当前版本系统中输出第二报文,最后当第一报文与第二报文存在差异报文时,记录并标记目标功能接口为差异功能接口。由于本申请通过代理拦截器实现当前版本系统与上一历史版本系统的共同管理,可以有效规避了因为测试不同版本时操作的时间差造成隐性输入一致而导致结果出现误差,同时,该方案并不需要测试人员提前准备用例,可以大大降低测试门槛,同时对全报文进行比对,比单纯覆盖面更广,因此本申请可以增高系统测试的准确率,降低系统的安全风险。
在一个实施例中,提出了一种设备,设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:确定待测试的目标功能接口,并启动历史版本系统;当基于代理拦截器拦截到针对目标功能接口的测试请求时,通过代理控制器将测试请求转发至历史版本系统中输出第一报文;通过代理控制器将测试请求转发至当前版本系统中输出第二报文;当第一报文与第二报文存在差异报文时,记录并标记目标功能接口为差异功能接口。
在一个实施例中,处理器执行确定待测试的目标功能接口时,具体执行以下操作:接收针对当前版本系统的启动指令,基于启动指令启动当前版本系统;采用自动化加载器从启动后的当前版本系统中遍历查询功能接口,得到功能接口集合;按照预设的选取方法从所述功能接口集合中选取目标功能接口。
在一个实施例中,处理器执行按照预设的选取方法从所述功能接口集合中选取目标功能接口时,具体执行以下操作:将功能接口集合进行展示;接收针对展示的功能接口集合的选择指令,基于选择指令从功能接口集合中确定出目标功能接口;或者,获取功能接口集合中各功能接口的优先级;基于优先级的先后顺序从各功能接口中确定出目标功能接口。
在一个实施例中,处理器执行获取功能接口集合中各功能接口的优先级时,具体执行以下操作:获取功能接口集合中各功能接口的创建时刻;计算各功能接口的创建时刻距离当前时刻的时长,得到各功能接口的创建时长;根据所述各功能接口的创建时长将所述各功能接口进行降序排列,生成排列后的功能接口;并按照排列后的所述功能接口确定优先级。
在一个实施例中,处理器执行获取功能接口集合中各功能接口的优先级时,具体执行以下操作:获取功能接口集合中各功能接口的代码行数;根据所述各功能接口的代码行数将所述各功能接口进行降序排列,生成排列后的功能接口;并按照排列后的所述功能接口确定优先级。
在一个实施例中,处理器执行当第一报文与第二报文存在差异报文时,记录并标记目标功能接口为差异功能接口时,具体执行以下操作:解析第一报文与第二报文;计算解析后的第一报文的字节码长度;计算解析后的第二报文的字节码长度;当第一报文的字节码长度与第二报文的字节码长度不相等时,确定第一报文与第二报文存在差异报文;记录并标记目标功能接口为差异功能接口。
在一个实施例中,处理器执行当第一报文与第二报文存在差异报文时,记录并标记目标功能接口为差异功能接口时,具体执行以下操作:解析第一报文与第二报文;计算解析后的第一报文的占用空间;计算解析后的第二报文的占用空间;当第一报文的占用空间与第二报文的占用空间不相等时,确定第一报文与第二报文存在差异报文;记录并标记目标功能接口为差异功能接口。
在本申请实施例中,功能接口的自动化测试装置首先确定待测试的目标功能接口,并启动历史版本系统,然后当基于代理拦截器拦截到针对目标功能接口的测试请求时,通过代理控制器将测试请求转发至历史版本系统中输出第一报文,再通过代理控制器将测试请求转发至当前版本系统中输出第二报文,最后当第一报文与第二报文存在差异报文时,记录并标记目标功能接口为差异功能接口。由于本申请通过代理拦截器实现当前版本系统与上一历史版本系统的共同管理,可以有效规避了因为测试不同版本时操作的时间差造成隐性输入一致而导致结果出现误差,同时,该方案并不需要测试人员提前准备用例,可以大大降低测试门槛,同时对全报文进行比对,比单纯覆盖面更广,因此本申请可以增高系统测试的准确率,降低系统的安全风险。
在一个实施例中,提出了一种存储有计算机可读指令的介质,该计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行以下步骤:确定待测试的目标功能接口,并启动历史版本系统;当基于代理拦截器拦截到针对目标功能接口的测试请求时,通过代理控制器将测试请求转发至历史版本系统中输出第一报文;通过代理控制器将测试请求转发至当前版本系统中输出第二报文;当第一报文与第二报文存在差异报文时,记录并标记目标功能接口为差异功能接口。
在一个实施例中,处理器执行确定待测试的目标功能接口时,具体执行以下操作:接收针对当前版本系统的启动指令,基于启动指令启动当前版本系统;采用自动化加载器从启动后的当前版本系统中遍历查询功能接口,得到功能接口集合;按照预设的选取方法从所述功能接口集合中选取目标功能接口。
在一个实施例中,处理器执行按照预设的选取方法从所述功能接口集合中选取目标功能接口时,具体执行以下操作:将功能接口集合进行展示;接收针对展示的功能接口集合的选择指令,基于选择指令从功能接口集合中确定出目标功能接口;或者,获取功能接口集合中各功能接口的优先级;基于优先级的先后顺序从各功能接口中确定出目标功能接口。
在一个实施例中,处理器执行获取功能接口集合中各功能接口的优先级时,具体执行以下操作:获取功能接口集合中各功能接口的创建时刻;计算各功能接口的创建时刻距离当前时刻的时长,得到各功能接口的创建时长;根据所述各功能接口的创建时长将所述各功能接口进行降序排列,生成排列后的功能接口;并按照排列后的所述功能接口确定优先级。
在一个实施例中,处理器执行获取功能接口集合中各功能接口的优先级时,具体执行以下操作:获取功能接口集合中各功能接口的代码行数;根据所述各功能接口的代码行数将所述各功能接口进行降序排列,生成排列后的功能接口;并按照排列后的所述功能接口确定优先级。
在一个实施例中,处理器执行当第一报文与第二报文存在差异报文时,记录并标记目标功能接口为差异功能接口时,具体执行以下操作:解析第一报文与第二报文;计算解析后的第一报文的字节码长度;计算解析后的第二报文的字节码长度;当第一报文的字节码长度与第二报文的字节码长度不相等时,确定第一报文与第二报文存在差异报文;记录并标记目标功能接口为差异功能接口。
在一个实施例中,处理器执行当第一报文与第二报文存在差异报文时,记录并标记目标功能接口为差异功能接口时,具体执行以下操作:解析第一报文与第二报文;计算解析后的第一报文的占用空间;计算解析后的第二报文的占用空间;当第一报文的占用空间与第二报文的占用空间不相等时,确定第一报文与第二报文存在差异报文;记录并标记目标功能接口为差异功能接口。
在本申请实施例中,功能接口的自动化测试装置首先确定待测试的目标功能接口,并启动历史版本系统,然后当基于代理拦截器拦截到针对目标功能接口的测试请求时,通过代理控制器将测试请求转发至历史版本系统中输出第一报文,再通过代理控制器将测试请求转发至当前版本系统中输出第二报文,最后当第一报文与第二报文存在差异报文时,记录并标记目标功能接口为差异功能接口。由于本申请通过代理拦截器实现当前版本系统与上一历史版本系统的共同管理,可以有效规避了因为测试不同版本时操作的时间差造成隐性输入一致而导致结果出现误差,同时,该方案并不需要测试人员提前准备用例,可以大大降低测试门槛,同时对全报文进行比对,比单纯覆盖面更广,因此本申请可以增高系统测试的准确率,降低系统的安全风险。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性介质,或随机存储记忆体(RandomAccess Memory,RAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种功能接口的自动化测试方法,其特征在于,所述方法包括:
确定待测试的目标功能接口,并启动历史版本系统;
当基于代理拦截器拦截到针对所述目标功能接口的测试请求时,通过代理控制器将所述测试请求转发至所述历史版本系统中输出第一报文;
通过代理控制器将所述测试请求转发至当前版本系统中输出第二报文;
当所述第一报文与所述第二报文存在差异报文时,记录并标记所述目标功能接口为差异功能接口。
2.根据权利要求1所述的方法,其特征在于,所述确定待测试的目标功能接口,包括:
接收针对当前版本系统的启动指令,基于所述启动指令启动所述当前版本系统;
采用自动化加载器从启动后的当前版本系统中遍历查询功能接口,得到功能接口集合;
按照预设的选取方法从所述功能接口集合中选取目标功能接口。
3.根据权利要求2所述的方法,其特征在于,所述按照预设的选取方法从所述功能接口集合中选取目标功能接口,包括:
将所述功能接口集合进行展示;
接收针对展示的所述功能接口集合的选择指令,基于所述选择指令从所述功能接口集合中确定出目标功能接口;
或者,
获取所述功能接口集合中各功能接口的优先级;
基于所述优先级的先后顺序从所述各功能接口中确定出目标功能接口。
4.根据权利要求3所述的方法,其特征在于,所述获取所述功能接口集合中各功能接口的优先级,包括:
获取所述功能接口集合中各功能接口的创建时刻;
计算所述各功能接口的创建时刻距离当前时刻的时长,得到各功能接口的创建时长;
根据所述各功能接口的创建时长将所述各功能接口进行降序排列,生成排列后的功能接口;
按照排列后的所述功能接口确定优先级。
5.根据权利要求3所述的方法,其特征在于,所述获取所述功能接口集合中各功能接口的优先级,包括:
获取所述功能接口集合中各功能接口的代码行数;
根据所述各功能接口的代码行数将所述各功能接口进行降序排列,生成排列后的功能接口;
按照排列后的所述功能接口确定优先级。
6.根据权利要求1所述的方法,其特征在于,所述当所述第一报文与所述第二报文存在差异报文时,记录并标记所述目标功能接口为差异功能接口,包括:
解析所述第一报文与所述第二报文;
计算解析后的所述第一报文的字节码长度;
计算解析后的所述第二报文的字节码长度;
当所述第一报文的字节码长度与所述第二报文的字节码长度不相等时,确定所述第一报文与所述第二报文存在差异报文;
记录并标记所述目标功能接口为差异功能接口。
7.根据权利要求1所述的方法,其特征在于,所述当所述第一报文与所述第二报文存在差异报文时,记录并标记所述目标功能接口为差异功能接口,包括:
解析所述第一报文与所述第二报文;
计算解析后的所述第一报文的占用空间;
计算解析后的所述第二报文的占用空间;
当所述第一报文的占用空间与所述第二报文的占用空间不相等时,确定所述第一报文与所述第二报文存在差异报文;
记录并标记所述目标功能接口为差异功能接口。
8.一种功能接口的自动化测试装置,其特征在于,所述装置包括:
目标功能接口确定模块,用于确定待测试的目标功能接口,并启动历史版本系统;
第一报文输出模块,用于当基于代理拦截器拦截到针对所述目标功能接口的测试请求时,通过代理控制器将所述测试请求转发至所述历史版本系统中输出第一报文;
第二报文输出模块,用于通过代理控制器将所述测试请求转发至当前版本系统中输出第二报文;
报文对比模块,用于当所述第一报文与所述第二报文存在差异报文时,记录并标记所述目标功能接口为差异功能接口。
9.一种设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行如权利要求1至7中任一项权利要求所述功能接口的自动化测试方法的步骤。
10.一种存储有计算机可读指令的介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如权利要求1至7中任一项权利要求所述功能接口的自动化测试的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111007440.6A CN113704114A (zh) | 2021-08-30 | 2021-08-30 | 功能接口的自动化测试方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111007440.6A CN113704114A (zh) | 2021-08-30 | 2021-08-30 | 功能接口的自动化测试方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113704114A true CN113704114A (zh) | 2021-11-26 |
Family
ID=78657083
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111007440.6A Pending CN113704114A (zh) | 2021-08-30 | 2021-08-30 | 功能接口的自动化测试方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113704114A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116627851A (zh) * | 2023-07-24 | 2023-08-22 | 恒生电子股份有限公司 | 接口测试方法以及装置 |
-
2021
- 2021-08-30 CN CN202111007440.6A patent/CN113704114A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116627851A (zh) * | 2023-07-24 | 2023-08-22 | 恒生电子股份有限公司 | 接口测试方法以及装置 |
CN116627851B (zh) * | 2023-07-24 | 2023-10-20 | 恒生电子股份有限公司 | 接口测试方法以及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108427613B (zh) | 异常接口定位方法、装置、计算机设备和存储介质 | |
CN107729227B (zh) | 应用程序测试范围确定方法、系统、服务器和存储介质 | |
CN108959059B (zh) | 一种测试方法以及测试平台 | |
US7321988B2 (en) | Identifying a code library from the subset of base pointers that caused a failure generating instruction to be executed | |
CN111026647B (zh) | 代码覆盖率的获取方法、装置、计算机设备和存储介质 | |
CN111858296B (zh) | 接口测试方法、装置、设备和存储介质 | |
US20080276225A1 (en) | Testing Executable Logic | |
CN110321284B (zh) | 测试数据录入方法、装置、计算机设备和存储介质 | |
CN109101410B (zh) | 一种风险驱动测试方法和装置以及计算机可读存储介质 | |
CN113342685A (zh) | 精准测试方法、装置、计算机设备和存储介质 | |
CN108399125B (zh) | 自动化测试方法、装置、计算机设备和存储介质 | |
CN113448862B (zh) | 软件版本测试方法、装置及计算机设备 | |
CN112905441A (zh) | 测试用例生成方法、测试方法、装置及设备 | |
CN109101412B (zh) | 测试文件生成、测试方法、装置、存储介质和计算机设备 | |
CN111737148A (zh) | 自动回归测试方法、装置、计算机设备及存储介质 | |
US20210026756A1 (en) | Deriving software application dependency trees for white-box testing | |
CN113704114A (zh) | 功能接口的自动化测试方法、装置、设备及介质 | |
CN113778878A (zh) | 接口测试方法、装置、电子设备及存储介质 | |
US9064042B2 (en) | Instrumenting computer program code by merging template and target code methods | |
US11422916B2 (en) | Usage amount monitoring method and monitoring unit of electronic control unit for vehicle | |
CN111259619A (zh) | 配置对象的控制方法、装置、存储介质及验证平台 | |
CN114020813A (zh) | 基于哈希算法的数据比对方法、装置、设备及存储介质 | |
CN113656318A (zh) | 软件版本测试方法、装置及计算机设备 | |
CN113031995A (zh) | 一种更新规则的方法、装置、存储介质以及电子设备 | |
CN111782527A (zh) | 接口测试方法、装置、计算机设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |