掌桥专利:专业的专利平台
掌桥专利
首页

待测试业务对象的测试方法及装置、电子装置

文献发布时间:2023-06-19 09:54:18


待测试业务对象的测试方法及装置、电子装置

技术领域

本发明涉及数据处理领域,具体而言,涉及一种待测试业务对象的测试方法及装置、电子装置。

背景技术

相关技术中,软件测试过程中通常需要验证数据的准确性和唯一性,例如,采用系统性能测试和数据库性能测试的方法对业务对象进行测试,但是,由于业务场景的复杂性,仅采用单一的功能测试或者性能测试(例如,对系统施压或数据库施压进行性能测试),难以有效测试出由于数据并发引起数据唯一性的问题,例如,由于并发请求数过多导致数据库性能低下从而出现数据库锁表,造成了业务上出现重复的数据未被及时处理的问题。并且,相关技术中使用性能测试工具进行测试成本较高,性能测试执行效率不高,难以重现测试过程的问题。

针对上述的问题,目前尚未提出有效的解决方案。

发明内容

本发明实施例提供了一种待测试业务对象的测试方法及装置、电子装置,以至少解决相关技术中测试业务对象的测试准确性较低且测试成本较高的技术问题。

根据本发明实施例的一个方面,提供了一种待测试业务对象的测试方法,包括:获取待测试业务对象对应的数据库脚本文件,其中,上述数据库脚本文件用于模拟对上述待测试业务对象关联的数据表执行锁表操作;运行上述数据库脚本文件,对上述待测试业务对象关联的数据表执行锁表操作;在执行上述锁表操作的过程中,向服务端重复发起上述待测试业务对象关联的业务请求;停止执行上述锁表操作,并基于上述服务端返回的上述业务请求对应的业务处理结果确定上述业务请求是否通过业务测试。

根据本发明实施例的另一方面,还提供了一种待测试业务对象的测试装置,包括:获取模块,用于获取待测试业务对象对应的数据库脚本文件,其中,上述数据库脚本文件用于模拟对上述待测试业务对象关联的数据表执行锁表操作;锁表模块,用于运行上述数据库脚本文件,对上述待测试业务对象关联的数据表执行锁表操作;请求模块,用于在执行锁表操作的过程中,向服务端重复发起上述待测试业务对象关联的业务请求;处理模块,用于停止执行锁表操作,并基于上述服务端返回的上述业务请求对应的业务处理结果确定上述业务请求是否通过业务测试。

根据本发明实施例的另一方面,还提供了一种非易失性存储介质,上述非易失性存储介质包括存储的程序,其中,在上述程序运行时控制上述非易失性存储介质所在设备执行任意一项上述的待测试业务对象的测试方法。

根据本发明实施例的另一方面,还提供了一种处理器,上述处理器用于运行存储在存储器中的程序,其中,上述程序运行时执行任意一项上述的待测试业务对象的测试方法。

根据本发明实施例的另一方面,还提供了一种电子装置,包括存储器和处理器,上述存储器中存储有计算机程序,上述处理器被设置为运行上述计算机程序以执行任意一项上述的待测试业务对象的测试方法。

在本发明实施例中,通过获取待测试业务对象对应的数据库脚本文件,其中,上述数据库脚本文件用于模拟对上述待测试业务对象关联的数据表执行锁表操作;运行上述数据库脚本文件,对上述待测试业务对象关联的数据表执行锁表操作;在执行上述锁表操作的过程中,向服务端重复发起上述待测试业务对象关联的业务请求;停止执行上述锁表操作,并基于上述服务端返回的上述业务请求对应的业务处理结果确定上述业务请求是否通过业务测试,达到了测试业务对象关联的业务请求的目的,从而实现了提升测试业务对象的测试准确性并降低测试成本的技术效果,进而解决了相关技术中测试业务对象的测试准确性较低且测试成本较高的技术问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的一种待测试业务对象的测试方法的流程图;

图2是根据本发明实施例的一种可选的待测试业务对象的测试方法的流程图;

图3是根据本发明实施例的一种待测试业务对象的测试装置的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

根据本发明实施例,提供了一种待测试业务对象的测试方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

该方法实施例的技术方案可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,该移动终端可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,简称为MID)、PAD等终端设备。移动终端可以包括一个或多个处理器(处理器可以包括但不限于中央处理器(CPU)、图形处理器(GPU)、数字信号处理(DSP)芯片、微处理器(MCU)、可编程逻辑器件(FPGA)、神经网络处理器(NPU)、张量处理器(TPU)、人工智能(AI)类型处理器等的处理装置)和用于存储数据的存储器。可选地,上述移动终端还可以包括用于通信功能的传输设备、输入输出设备以及显示设备。本领域普通技术人员可以理解,上述结构描述仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比上述结构描述更多或者更少的组件,或者具有与上述结构描述不同的配置。

存储器可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的游戏画面的处理方法对应的计算机程序,处理器通过运行存储在存储器内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的游戏画面的处理方法。存储器可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

传输设备用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输设备包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。该方法实施例的技术方案可以应用于各种通信系统,例如:全球移动通讯(Global System of Mobile communication,简称为GSM)系统、码分多址(Code Division Multiple Access,简称为CDMA)系统、宽带码分多址(Wideband Code Division Multiple Access,简称为WCDMA)系统、通用分组无线业务(General Packet Radio Service,简称为GPRS)、长期演进(Long Term Evolution,简称为LTE)系统、LTE频分双工(Frequency Division Duplex,简称为FDD)系统、LTE时分双工(Time Division Duplex,简称为TDD)、通用移动通信系统(Universal MobileTelecommunication System,简称为UMTS)、全球互联微波接入(WorldwideInteroperability for Microwave Access,简称为WiMAX)通信系统或5G系统等。可选地,多个移动终端之间可以进行设备到设备(Device to Device,简称为D2D)通信。可选地,5G系统或5G网络又被称为新无线(New Radio,简称为NR)系统或NR网络。

显示设备可以例如触摸屏式的液晶显示器(LCD)和触摸显示器(也被称为“触摸屏”或“触摸显示屏”)。该液晶显示器可使得用户能够与移动终端的用户界面进行交互。在一些实施例中,上述移动终端具有图形用户界面(GUI),用户可以通过触摸触敏表面上的手指接触和/或手势来与GUI进行人机交互,此处的人机交互功能可选的包括如下交互:创建网页、绘图、文字处理、制作电子文档、游戏、视频会议、即时通信、收发电子邮件、通话界面、播放数字视频、播放数字音乐和/或网络浏览等、用于执行上述人机交互功能的可执行指令被配置/存储在一个或多个处理器可执行的计算机程序产品或可读非易失性存储介质中。

图1是根据本发明实施例的一种待测试业务对象的测试方法的流程图,如图1所示,该方法包括如下步骤:

步骤S102,获取待测试业务对象对应的数据库脚本文件,其中,上述数据库脚本文件用于模拟对上述待测试业务对象关联的数据表执行锁表操作;

步骤S102,运行上述数据库脚本文件,对上述待测试业务对象关联的数据表执行锁表操作;

步骤S104,在执行锁表操作的过程中,向服务端重复发起上述待测试业务对象关联的业务请求;

步骤S106,停止执行锁表操作,并基于上述服务端返回的上述业务请求对应的业务处理结果确定上述业务请求是否通过业务测试。

在本发明实施例中,通过获取待测试业务对象对应的数据库脚本文件,其中,上述数据库脚本文件用于模拟对上述待测试业务对象关联的数据表执行锁表操作;运行上述数据库脚本文件,对上述待测试业务对象关联的数据表执行锁表操作;在执行上述锁表操作的过程中,向服务端重复发起上述待测试业务对象关联的业务请求;停止执行上述锁表操作,并基于上述服务端返回的上述业务请求对应的业务处理结果确定上述业务请求是否通过业务测试,达到了测试业务对象关联的业务请求的目的,从而实现了提升测试业务对象的测试准确性并降低测试成本的技术效果,进而解决了相关技术中测试业务对象的测试准确性较低且测试成本较高的技术问题。

可选的,上述待测试业务对象可以为任意一种类型的软件测试业务对象,例如,考勤流程业务,打卡流程业务,请假申请流程业务等。

需要说明的是,本申请实施例的执行主体为客户端,测试向服务端发起的业务请求是否通过业务测试,在本申请实施例中,客户端可以通过分析上述待测试业务对象关联的数据表的方式,编写延迟占用数据库表的数据库脚本文件,例如,事务sql脚本。

在一种可选的实施例中,图2是根据本发明实施例的一种可选的待测试业务对象的测试方法的流程图,如图2所示,上述步骤S102,获取上述待测试业务对象对应的上述数据库脚本文件包括:

步骤S202,分析上述待测试业务对象关联的数据表,从上述数据表中确定上述待测试业务对象关联的主表;

步骤S204,基于上述主表中记录的上述业务流程数据配置上述数据库脚本文件。

可选的,上述主表用于记录上述待测试业务对象的业务流程数据。

作为一种可选的实施例,由于考勤申请流程中,相同时间内能且仅能发起1次请假请求,即不能在相同时间的请求两次假期,以下通过考勤申请业务为例进行举例说明:

首先,客户端通过分析待测试的考勤申请业务关联的数据表,从上述数据表中确定考勤申请业务关联的考勤主表CUX_Wf_LeaveApply;由于考勤申请业务的业务流程数据均记录在考勤主表CUX_Wf_LeaveApply中,进而可以基于上述业务流程数据编写模拟数据库锁表的数据库脚本文件(例如,sql脚本)。

在一种可选的实施例中,基于上述主表中记录的上述业务流程数据配置上述数据库脚本文件包括:

步骤S302,基于上述主表中记录的上述业务流程数据配置待执行的锁表操作以及与上述待执行的锁表操作对应的休眠时长,得到上述数据库脚本文件。

其中,上述休眠时长用于重复发起上述业务请求。

仍以上述考勤申请业务为例,客户端基于考勤主表CUX_Wf_LeaveApply中记录的业务流程数据,编写事务对考勤主表CUX_Wf_LeaveApply进行锁表操作(update操作),以及与上述待执行的锁表操作对应的休眠时长(例如,休眠1分钟,以便有足够多时间来发送重复请求),得到可以但不限于为以下所示的数据库脚本文件:

Begin Tran

Update CUX_Wf_LeaveApply Set ApplyReason=ApplyReason+”;

WaitFor Delay'00:01:00';

Rollback Tran;

作为一种可选的实施例,客户端运行上述数据库脚本文件,即可以实现对考勤主表CUX_Wf_LeaveApply执行锁表操作,需要说明的是,通过对数据库表执行更新操作即会导致锁表操作,属于一种数据库表的锁表机制。

在一种可选的实施例中,上述方法还包括:

步骤S402,基于上述主表中记录的上述业务流程数据配置上述业务请求所包含的时间信息和内容信息。

可选的,上述时间信息可以为请假时长,上述内容信息可以为请假内容。

作为一种可选的实施例,客户端在执行上述锁表操作的过程中,向服务端重复发起上述待测试业务对象关联的业务请求(WEB请求)。

例如,仍以上述考勤申请业务为例,客户端以同一考勤账户,向服务端重复提交请假时长为2020-07-01 09:00至10:00的考勤申请请求。并且,在重复发起上述业务请求后,客户端停止执行上述锁表操作,并基于上述服务端返回的与业务请求对应的业务处理结果,确定上述业务请求是否通过业务测试。

在一种可选的实施例中,上述停止执行锁表操作包括:

步骤S502,在经历上述休眠时长之后,进行数据回滚,以恢复执行上述待测试业务对象。

可选的,客户端停止执行锁表操作,即在经历上述休眠时长之后进行数据回滚,例如,仍以上述考勤申请业务为例,客户端通过运行上述数据库脚本文件中的“RollbackTran”进行数据回滚。

在本申请实施例中,停止执行锁表操作即继续运行业务,恢复执行上述待测试业务对象,模拟真实的业务场景。

在一种可选的实施例中,基于上述服务端返回的上述业务处理结果确定上述业务请求是否通过业务测试包括:

步骤S602,当上述业务处理结果符合上述待测试业务对象的业务需求时,确定上述业务请求通过业务测试;

步骤S604,当上述业务处理结果不符合上述待测试业务对象的业务需求时,确定上述业务请求未通过业务测试。

在上述可选的实施例中,客户端检测发送出去的业务请求是否通过业务测试,即检测上述服务端返回的上述业务处理结果是否符合上述待测试业务对象的业务需求。

在一种可选的实施例中,仍以上述考勤申请业务为例,如果客户端以同一考勤账户发送的请假时间一致的两个请假请求中的一个请假请求未提交成功,即针对同一考勤账户发送的请假时间一致的两个请假请求,仅创建一个考勤申请流程,则确定业务处理结果符合上述待测试业务对象的业务需求,确定上述业务请求未通过业务测试。

在另一种可选的实施例中,仍以上述考勤申请业务为例,如果客户端以同一考勤账户发送的请假时间一致的两个请假请求均提交成功,即针对同一考勤账户发送的请假时间一致的两个请假请求创建了两条考勤申请流程,则确定业务处理结果不符合上述待测试业务对象的业务需求,确定上述业务请求未通过业务测试。

通过本申请实施例所提供的待测试业务对象的测试方案,可以规避潜在的由于性能测试带来其他相关功能不稳定的问题,并通过减少测试时间进而降低测试成本,并且还可以实现在数据并发的场景下测试数据唯一性。

根据本发明实施例,还提供了一种用于实施上述待测试业务对象的测试方法的装置实施例,图3是根据本发明实施例的一种待测试业务对象的测试装置的结构示意图,如图3所示,上述待测试业务对象的测试装置,包括:获取模块30、锁表模块32、请求模块34和处理模块36,其中:

获取模块30,用于获取待测试业务对象对应的数据库脚本文件,其中,上述数据库脚本文件用于模拟对上述待测试业务对象关联的数据表执行锁表操作;锁表模块32,用于运行上述数据库脚本文件,对上述待测试业务对象关联的数据表执行锁表操作;请求模块34,用于在执行锁表操作的过程中,向服务端重复发起上述待测试业务对象关联的业务请求;处理模块36,用于停止执行锁表操作,并基于上述服务端返回的上述业务请求对应的业务处理结果确定上述业务请求是否通过业务测试

需要说明的是,上述各个模块是可以通过软件或硬件来实现的,例如,对于后者,可以通过以下方式实现:上述各个模块可以位于同一处理器中;或者,上述各个模块以任意组合的方式位于不同的处理器中。

此处需要说明的是,上述获取模块30、锁表模块32、请求模块34和处理模块36对应于方法实施例中的步骤S102至步骤S108,上述模块与对应的步骤所实现的实例和应用场景相同,但不限于上述方法实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在计算机终端中。

需要说明的是,本实施例的可选或优选实施方式可以参见方法实施例中的相关描述,此处不再赘述。

上述的待测试业务对象的测试装置还可以包括处理器和存储器,上述获取模块30、锁表模块32、请求模块34和处理模块36等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。

处理器中包含内核,由内核去存储器中调取相应的程序单元,上述内核可以设置一个或以上。存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。

根据本申请实施例,还提供了一种非易失性存储介质实施例。可选地,在本实施例中,上述非易失性存储介质包括存储的程序,其中,在上述程序运行时控制上述非易失性存储介质所在设备执行上述任意一种待测试业务对象的测试方法。

可选地,在本实施例中,上述非易失性存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中,上述非易失性存储介质包括存储的程序。

可选地,在程序运行时控制非易失性存储介质所在设备执行以下功能:获取待测试业务对象对应的数据库脚本文件,其中,上述数据库脚本文件用于模拟对上述待测试业务对象关联的数据表执行锁表操作;运行上述数据库脚本文件,对上述待测试业务对象关联的数据表执行锁表操作;在执行上述锁表操作的过程中,向服务端重复发起上述待测试业务对象关联的业务请求;停止执行上述锁表操作,并基于上述服务端返回的上述业务请求对应的业务处理结果确定上述业务请求是否通过业务测试。

可选地,在程序运行时控制非易失性存储介质所在设备执行以下功能:分析上述待测试业务对象关联的数据表,从上述数据表中确定上述待测试业务对象关联的主表,其中,上述主表用于记录上述待测试业务对象的业务流程数据;基于上述主表中记录的上述业务流程数据配置上述数据库脚本文件。

可选地,在程序运行时控制非易失性存储介质所在设备执行以下功能:基于上述主表中记录的上述业务流程数据配置待执行的锁表操作以及与上述待执行的锁表操作对应的休眠时长,得到上述数据库脚本文件,其中,上述休眠时长用于重复发起上述业务请求。

可选地,在程序运行时控制非易失性存储介质所在设备执行以下功能:基于上述主表中记录的上述业务流程数据配置上述业务请求所包含的时间信息和内容信息。

可选地,在程序运行时控制非易失性存储介质所在设备执行以下功能:在经历上述休眠时长之后,进行数据回滚,以恢复执行上述待测试业务对象。

可选地,在程序运行时控制非易失性存储介质所在设备执行以下功能:当上述业务处理结果符合上述待测试业务对象的业务需求时,确定上述业务请求通过业务测试;当上述业务处理结果不符合上述待测试业务对象的业务需求时,确定上述业务请求未通过业务测试。

根据本申请实施例,还提供了一种处理器实施例。可选地,在本实施例中,上述处理器用于运行程序,其中,上述程序运行时执行上述任意一种待测试业务对象的测试方法。

根据本申请实施例,还提供了一种电子装置实施例,包括存储器和处理器,上述存储器中存储有计算机程序,上述处理器被设置为运行上述计算机程序以执行任意一项上述的待测试业务对象的测试方法。

根据本申请实施例,还提供了一种计算机程序产品实施例,当在数据处理设备上执行时,适于执行初始化有任意一项上述的待测试业务对象的测试方法步骤的程序。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取非易失性存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个非易失性存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例上述方法的全部或部分步骤。而前述的非易失性存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

相关技术
  • 待测试业务对象的测试方法及装置、电子装置
  • 电子装置测试方法与电子装置测试系统
技术分类

06120112341517