CN109558320B - 系统测试方法、装置、系统、设备及计算机可读存储介质 - Google Patents
系统测试方法、装置、系统、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN109558320B CN109558320B CN201811438832.6A CN201811438832A CN109558320B CN 109558320 B CN109558320 B CN 109558320B CN 201811438832 A CN201811438832 A CN 201811438832A CN 109558320 B CN109558320 B CN 109558320B
- Authority
- CN
- China
- Prior art keywords
- simulation object
- tested
- request
- object rule
- server
- 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.)
- Active
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/362—Software debugging
- G06F11/3624—Software debugging by performing operations on the source code, e.g. via a compiler
-
- 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
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)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本发明公开了一种系统测试方法、装置、系统、设备及计算机可读存储介质,包括:当待测试系统启动时,加载代理组件,并将所述代理组件中的模拟对象代码注入所述待测试系统的业务代码中;当所述模拟对象代码注入完成时,向服务器发送模拟对象规则获取请求,并接收所述服务器返回的模拟对象规则组;当监测到业务请求时,运行注入的模拟对象代码,以确定所述业务请求的请求类型,并判断所述请求类型是否为预设请求类型;若所述请求类型为预设请求类型,则在所述代理组件中执行所述模拟对象规则组中的对应模拟对象规则,以测试所述待测试系统。本发明能够提高系统测试的测试效率和便利性。
Description
技术领域
本发明涉及系统测试的技术领域,尤其涉及一种系统测试方法、装置、系统、设备及计算机可读存储介质。
背景技术
在代码系统测试过程中,存在某些不容易构造或者不容易获取的真实对象,需要使用模拟对象mock object来代替真实对象,以便于代码系统测试。
目前,现有的系统测试主要通过软件代码实现,基本测试流程包括编写模拟对象规则、启动业务系统、执行模拟对象规则、返回执行结果和停止业务系统。然而,现有的系统测试方法,主要涉及代码层面,需写编写测试代码,通过侵入到系统进行测试,与业务代码耦合,风险较大、系统测试效率较低,在系统测试时需要调整业务系统,且执行不同的系统测试案例时,需要重新启动业务系统,系统测试的便利性均较低。
因此,如何提高系统测试的测试效率和便利性是目前亟待解决的问题。
发明内容
本发明的主要目的在于提供一种系统测试方法、装置、系统、设备及计算机可读存储介质,旨在提高系统测试的测试效率和便利性。
为实现上述目的,本发明提供一种系统测试方法,所述系统测试方法包括以下步骤:
当待测试系统启动时,在所述待测试系统中加载代理组件,并将所述代理组件中的模拟对象代码注入所述待测试系统的业务代码中;
当所述模拟对象代码注入完成时,向服务器发送模拟对象规则获取请求,并接收所述服务器返回的模拟对象规则组;
当监测到业务请求时,运行注入的模拟对象代码,以确定所述业务请求的请求类型,并判断所述请求类型是否为预设请求类型;
若所述请求类型为预设请求类型,则在所述代理组件中执行所述模拟对象规则组中的对应模拟对象规则,以测试所述待测试系统。
进一步地,在所述代理组件中执行所述模拟对象规则组中的对应模拟对象规则,以测试所述待测试系统的步骤包括:
从所述业务请求中读取模拟对象规则编号,并依据所述模拟对象规则编号,判断所述模拟对象规则组中是否存在目标模拟对象规则;
若所述模拟对象规则组中存在目标模拟对象规则,则在代理组件中执行所述目标模拟对象规则,以测试所述待测试系统。
进一步地,所述当监测到业务请求时,运行注入的模拟对象代码,以确定所述业务请求的请求类型,并判断所述请求类型是否为预设请求类型的步骤之后,还包括:
若所述请求类型不为预设请求类型,则将所述业务请求发送至代理服务器,以供所述代理服务器依据所述业务请求中的统一资源定位器URL地址,执行对应的模拟对象规则,以测试所述待测试系统。
进一步地,将所述业务请求发送至代理服务器的步骤之前,还包括:
若所述请求类型不为预设请求类型,则判断所述业务请求中的网络地址是否为预设网络地址;
若所述业务请求中的网络地址为预设网络地址,则执行步骤:将所述业务请求发送至代理服务器。
进一步地,所述代理服务器依据所述业务请求中的URL地址,执行对应的模拟对象规则,以测试所述待测试系统的步骤包括:
所述代理服务器从所述业务请求中读取URL地址,并向所述服务器发送携带有所述URL地址的模拟对象规则查询请求;
接收所述服务器基于所述模拟对象规则查询请求返回的模拟对象规则,并执行返回的模拟对象规则,以测试所述待测试系统。
进一步地,当所述模拟对象代码注入完成时,向服务器发送模拟对象规则获取请求,并接收所述服务器返回的模拟对象规则组的步骤包括:
当所述模拟对象代码注入完成时,获取待测试系统的系统标签,并向服务器发送携带有所述系统标签的模拟对象规则获取请求,以供所述服务器在监测到待测试系统发送的模拟对象规则获取请求时,从所述模拟对象规则获取请求中读取系统标签,并依据所述系统标签,查询对应的模拟对象规则组,且将查询到的模拟对象规则组返回给所述待测试系统;
接收所述服务器返回的模拟对象规则组。
进一步地,所述系统测试方法还包括:
当检测到业务代码修改请求时,将所述业务代码修改请求中的代码数据写入所述代理组件;
通过所述代理组件将所述代码数据注入待测试系统的业务代码中,以修改待测试系统的业务代码。
此外,为实现上述目的,本发明还提供一种系统测试装置,所述系统测试装置包括:
组件加载模块,用于当待测试系统启动时,在所述待测试系统中加载代理组件;
代码注入模块,用于将所述代理组件中的模拟对象代码注入所述待测试系统的业务代码中;
收发模块,用于当所述模拟对象代码注入完成时,向服务器发送模拟对象规则获取请求,并接收所述服务器返回的模拟对象规则组;
运行与判断模块,用于当监测到业务请求时,运行注入的模拟对象代码,以确定所述业务请求的请求类型,并判断所述请求类型是否为预设请求类型;
规则执行模块,用于若所述请求类型为预设请求类型,则在所述代理组件中执行所述模拟对象规则组中的对应模拟对象规则,以测试所述待测试系统。
此外,为实现上述目的,本发明还提供一种系统测试系统,所述系统测试系统包括待测试系统和服务器,其中:
所述待测试系统,用于启动时,在所述待测试系统中加载代理组件,并将所述代理组件中的模拟对象代码注入所述待测试系统的业务代码中;
所述待测试系统,还用于当所述模拟对象代码注入完成时,向服务器发送模拟对象规则获取请求,并接收所述服务器返回的模拟对象规则组;
所述服务器,用于接收所述待测试系统发送的模拟对象规则获取请求,并基于所述模拟对象规则获取请求向所述待测试系统发送对应的模拟对象规则组;
所述待测试系统,还用于当监测到业务请求时,运行注入的模拟对象代码,以确定所述业务请求的请求类型,并判断所述请求类型是否为预设请求类型;若所述请求类型为预设请求类型,则在所述代理组件中执行所述模拟对象规则组中的对应模拟对象规则,以测试所述待测试系统。
此外,为实现上述目的,本发明还提供一种系统测试设备,所述系统测试设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的系统测试程序,所述系统测试程序被所述处理器执行时实现如上所述的系统测试方法的步骤。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有系统测试程序,所述系统测试程序被处理器执行时实现如上所述的系统测试方法的步骤。
本发明提供一种系统测试方法、装置、系统、设备及计算机可读存储介质,本发明在待测试系统启动时,在待测试系统中加载代理组件,并将该代理组件中的模拟对象代码注入待测试系统的业务代码中,当模拟对象代码注入完成时,向服务器请求对应的模拟对象规则组,当监测到业务请求时,运行注入的模拟对象代码,以确定该业务请求的请求类型,并判断该请求类型是否为预设请求类型,如果该请求类型为预设请求类型,则在该代理组件中执行该模拟对象规则组中的对应模拟对象规则,以测试待测试系统,本发明通过加载代理组件的方式,将模拟对象代码注入业务代码中,并向服务器请求对应的模拟对象规则组,同时在发起业务请求时,运行模拟对象代码,执行该业务请求对应的规则,整个测试过程,不需要侵入业务系统,且模拟对象代码与业务代码解耦,能够有效的降低风险,无需重启系统,提高系统测试的测试效率和便利性。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图;
图2为本发明系统测试方法第一实施例的流程示意图;
图3为本发明系统测试装置第一实施例的功能模块示意图;
图4为本发明系统测试系统第一实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图。
如图1所示,该系统测试设备可以包括:处理器1001,例如CPU,通信总线1002,用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选的用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的系统测试设备结构并不构成对系统测试设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及系统测试程序。
在图1所示的系统测试设备中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的系统测试程序,并执行以下步骤:
当待测试系统启动时,在所述待测试系统中加载代理组件,并将所述代理组件中的模拟对象代码注入所述待测试系统的业务代码中;
当所述模拟对象代码注入完成时,向服务器发送模拟对象规则获取请求,并接收所述服务器返回的模拟对象规则组;
当监测到业务请求时,运行注入的模拟对象代码,以确定所述业务请求的请求类型,并判断所述请求类型是否为预设请求类型;
若所述请求类型为预设请求类型,则在所述代理组件中执行所述模拟对象规则组中的对应模拟对象规则,以测试所述待测试系统。
进一步地,处理器1001可以用于调用存储器1005中存储的系统测试程序,还执行以下步骤:
从所述业务请求中读取模拟对象规则编号,并依据所述模拟对象规则编号,判断所述模拟对象规则组中是否存在目标模拟对象规则;
若所述模拟对象规则组中存在目标模拟对象规则,则在代理组件中执行所述目标模拟对象规则,以测试所述待测试系统。
进一步地,处理器1001可以用于调用存储器1005中存储的系统测试程序,还执行以下步骤:
若所述请求类型不为预设请求类型,则将所述业务请求发送至代理服务器,以供所述代理服务器依据所述业务请求中的统一资源定位器URL地址,执行对应的模拟对象规则,以测试所述待测试系统。
进一步地,处理器1001可以用于调用存储器1005中存储的系统测试程序,还执行以下步骤:
若所述请求类型不为预设请求类型,则判断所述业务请求中的网络地址是否为预设网络地址;
若所述业务请求中的网络地址为预设网络地址,则执行步骤:将所述业务请求发送至代理服务器。
进一步地,处理器1001可以用于调用存储器1005中存储的系统测试程序,还执行以下步骤:
当检测到业务代码修改请求时,将所述业务代码修改请求中的代码数据写入所述代理组件;
通过所述代理组件将所述代码数据注入待测试系统的业务代码中,以修改待测试系统的业务代码。
本发明系统测试设备的具体实施例与下述系统测试方法的各具体实施例基本相同,在此不作赘述。
本发明提供一种系统测试方法。
参照图2,图2为本发明系统测试方法第一实施例的流程示意图。
本实施例中,该系统测试方法包括:
步骤S101,当待测试系统启动时,在待测试系统中加载代理组件,并将代理组件中的模拟对象代码注入待测试系统的业务代码中;
本实施例中,该系统测试方法应用于系统测试系统,该系统测试系统包括代理组件、服务器和代理服务器。其中,代理组件用于在业务代码中注入模拟对象代码(模拟Mock代码)和执行模拟对象规则,即Mock规则;服务器用于存储模拟对象规则、管理模拟对象规则和编辑模拟对象规则,还为代理组件提供网络服务;该代理服务器负责网络类业务请求的模拟对象规则执行。
需要说明的是,上述模拟对象规则采用LL文法解析器,且该LL文法解析器通过javacc实现,支持变量、逻辑运算、关系运算、赋值运算、字符串拼接运算、if/else和注释,内置若干函数和request/response/session等对象。其中,逻辑运算包括但不限于逻辑与运算和逻辑或运算,关系运算包括但不限于大于、大于或等于、等于、小于、小于或等于和不等于。
当监测到触发的系统测试指令时,启动待测试系统,并在待测试系统启动时,通过java-agent的方式在待测试系统中加载代理组件,并在该代理组件加载成功,且启动后,将代理组件中的模拟对象代码注入待测试系统的业务代码中,在本实施例中,所述模拟对象代码是从该待测试系统关联的其他业务系统中获取的代码报文,通过获取代码报文,并在该待测试系统中进行测试,以验证该待测试系统是否能正常调用其他业务系统的功能。
步骤S102,当模拟对象代码注入完成时,向服务器发送模拟对象规则获取请求,并接收服务器返回的模拟对象规则组;
本实施例中,当模拟对象代码注入完成时,通过该代理组件向该服务器发送模拟对象规则获取请求,并接收服务器返回的模拟对象规则组。具体地,当模拟对象代码注入完成时,获取待测试系统的系统标签,待测试系统的系统标签可选为待测试子系统IP,并通过该代理组件向该服务器发送携带有该系统标签的模拟对象规则获取请求,该服务器接收待测试系统发送的模拟对象规则获取请求,并从该模拟对象规则获取请求中读取系统标签,然后依据该系统标签,在服务器的数据库中查询对应的模拟对象规则组,并将查询到的模拟对象规则组返回给该待测试系统。其中,服务器中存储有包含系统标签的模拟对象规则组,需要说明的是,上述模拟对象规则组的系统标签可由本领域技术人员基于实际情况进行设置,本实施例对此不作具体限定。
步骤S103,当监测到业务请求时,运行注入的模拟对象代码,以确定业务请求的请求类型,并判断请求类型是否为预设请求类型;
本实施例中,当监测到业务请求时,运行注入的模拟对象代码,以确定该业务请求的请求类型,即运行注入的模拟对象代码从该业务请求中请求类型标签,查询请求类型标签与请求类型的映射关系表,获取请求类型标签对应的请求类型,并判断该请求类型是否为预设请求类型。其中,该请求类型包括但不限于网络请求类型和消息请求类型,上述预设请求类型为消息请求类型,具体实施中,上述预设请求类型可由本领域技术人员基于实际情况进行设置,本实施例对此不作具体限定。
步骤S104,若请求类型为预设请求类型,则在代理组件中执行模拟对象规则组中的对应模拟对象规则,以测试待测试系统。
本实施例中,如果该请求类型为预设请求类型,则在代理组件中执行模拟对象规则组中的对应模拟对象规则,以测试待测试系统,具体地,从该业务请求中读取模拟对象规则编号,并依据该模拟对象规则编号,判断模拟对象规则组中是否存在目标模拟对象规则,即获取模拟对象规则组中各模拟对象规则的编号,并确定各模拟对象规则的编号中是否存在与该模拟对象规则编号相同的编号,如果各模拟对象规则的编号中存在与该模拟对象规则编号相同的编号,则模拟对象规则组中存在目标模拟对象规则,且目标模拟对象规则的编号与该模拟对象规则编号相同,如果各模拟对象规则的编号中不存在与该模拟对象规则编号相同的编号,则模拟对象规则组中不存在目标模拟对象规则;如果模拟对象规则组中存在目标模拟对象规则,则在代理组件中执行该目标模拟对象规则,并返回执行结果,以测试待测试系统,如果模拟对象规则组中不存在目标模拟对象规则,则将该业务请求发送至对应的其他业务系统,并接收该其他业务系统返回的响应信息。也就是说,当通过待测试系统能查找到业务请求对应的目标模拟对象规则,说明该待测试系统中之前注入的模拟对象代码是该待测试系统关联的其他业务系统的代码报文,此时可在该待测试系统中进行测试,若在待测试系统中查找不到业务请求对应的目标模拟对象规则,说明该测试系统没有注入其他业务系统的代码报文,此时只能将业务请求转发给其他业务系统进行测试。
本实施例中,本发明在待测试系统启动时,在待测试系统中加载代理组件,并将该代理组件中的模拟对象代码注入待测试系统的业务代码中,当模拟对象代码注入完成时,向服务器请求对应的模拟对象规则组,当监测到业务请求时,运行注入的模拟对象代码,以确定该业务请求的请求类型,并判断该请求类型是否为预设请求类型,如果该请求类型为预设请求类型,则在该代理组件中执行该模拟对象规则组中的对应模拟对象规则,以测试待测试系统,本发明通过加载代理组件的方式,将模拟对象代码注入业务代码中,并向服务器请求对应的模拟对象规则组,同时在发起业务请求时,运行模拟对象代码,执行该业务请求对应的规则,整个测试过程,不需要侵入业务系统,且模拟对象代码与业务代码解耦,能够有效的降低风险,无需重启系统,提高系统测试的测试效率和便利性。
进一步地,基于上述第一实施,提出了本发明系统测试方法的第二实施例,与前述实施例的区别在于,步骤S103之后,还包括:
步骤A,若请求类型不为预设请求类型,则将业务请求发送至代理服务器,以供代理服务器依据业务请求中的URL地址,执行对应的模拟对象规则,以测试待测试系统。
本实施例中,如果请求类型不为预设请求类型,即业务请求为网络请求,则将业务请求发送至代理服务器,当该代理服务器接收到该业务请求时,依据该业务请求中的URL(Uniform Resoure Locator:统一资源定位器)地址,执行对应的模拟对象规则,以测试待测试系统。
具体地,该代理服务器从该业务请求中读取URL地址,并向该服务器发送携带有该URL地址的模拟对象规则查询请求,然后接收该服务器基于该模拟对象规则查询请求返回的模拟对象规则,并执行返回的模拟对象规则,以测试待测试系统。其中,服务器在接收到模拟对象规则查询请求时,从该模拟对象规则查询请求中读取URL地址,并查询预存的URL地址与模拟对象规则的映射关系表,从服务器的数据库中获取该URL地址对应的模拟对象规则,且将该模拟对象规则返回给代理服务器,所述映射关系表中的URL地址与模拟对象规则一一对应。
进一步地,如果该请求类型不为预设请求类型,则进一步判断该业务请求中的网络地址是否为预设网络地址,如果该业务请求中的网络地址为预设网络地址,则将该业务请求发送至代理服务器,以供代理服务器依据业务请求中的URL地址,执行对应的模拟对象规则,以测试待测试系统。需要说明的是,如果该业务请求中的网络地址不为预设网络地址,则不作处理,上述预设网络地址可由本领域技术人员基于实际情况进行设置,本实施例对此不作具体限定。
进一步地,当检测到业务代码修改请求时,将该业务代码修改请求中的代码数据写入代理组件,并在代码数据写入该代理组件之后,重新加载代理组件,并通过重新加载的该代理组件将该代码数据注入待测试系统的业务代码中,以修改待测试系统的业务代码。通过上述方式,可以在不重启待测试系统的情况下,动态注入代码,进一步地提高测试便利性。
本实施例中,本发明在业务请求为网络请求时,将该网络请求发送至代理服务器,由代理服务器依据该网络请求,执行对应的模拟对象规则,以测试系统,实现网络请求类的模拟对象规则执行,提高系统的可测试性,也提高了系统的测试便利性。
本发明还提供一种系统测试装置。
参照图3,图3为本发明系统测试装置第一实施例的功能模块示意图。
本实施例中,该系统测试装置包括:
组件加载模块101,用于当待测试系统启动时,在所述待测试系统中加载代理组件;
代码注入模块102,用于将所述代理组件中的模拟对象代码注入所述待测试系统的业务代码中;
收发模块103,用于当所述模拟对象代码注入完成时,向服务器发送模拟对象规则获取请求,并接收所述服务器返回的模拟对象规则组;
运行与判断模块104,用于当监测到业务请求时,运行注入的模拟对象代码,以确定所述业务请求的请求类型,并判断所述请求类型是否为预设请求类型;
规则执行模块105,用于若所述请求类型为预设请求类型,则在所述代理组件中执行所述模拟对象规则组中的对应模拟对象规则,以测试所述待测试系统。
进一步地,所述规则执行模块105还用于:
从所述业务请求中读取模拟对象规则编号,并依据所述模拟对象规则编号,判断所述模拟对象规则组中是否存在目标模拟对象规则;
若所述模拟对象规则组中存在目标模拟对象规则,则在代理组件中执行所述目标模拟对象规则,以测试所述待测试系统。
进一步地,所述收发模块103还用于:
若所述请求类型不为预设请求类型,则将所述业务请求发送至代理服务器,以供所述代理服务器依据所述业务请求中的统一资源定位器URL地址,执行对应的模拟对象规则,以测试所述待测试系统。
进一步地,所述运行与判断模块104还用于:
若所述请求类型不为预设请求类型,则判断所述业务请求中的网络地址是否为预设网络地址;
所述收发模块103,还用于若所述业务请求中的网络地址为预设网络地址,则将所述业务请求发送至代理服务器。
进一步地,所述系统测试装置还包括:
数据写入模块,用于当检测到业务代码修改请求时,将所述业务代码修改请求中的代码数据写入所述代理组件;
数据注入模块,用于通过所述代理组件将所述代码数据注入待测试系统的业务代码中,以修改待测试系统的业务代码。
其中,本发明系统测试装置的具体实施例与上述系统测试方法各实施例基本相同,在此不作赘述。
本发明还提供一种系统测试系统。
参照图4,图4为本发明系统测试系统第一实施例的功能模块示意图。
本实施例中,该系统测试系统包括:待测试系统100和服务器200,其中:
所述待测试系统100,用于启动时,在所述待测试系统中加载代理组件,并将所述代理组件中的模拟对象代码注入所述待测试系统的业务代码中;
所述待测试系统100,还用于当所述模拟对象代码注入完成时,向服务器发送模拟对象规则获取请求,并接收所述服务器返回的模拟对象规则组;
所述服务器200,用于接收所述待测试系统发送的模拟对象规则获取请求,并基于所述模拟对象规则获取请求向所述待测试系统发送对应的模拟对象规则组;
所述待测试系统100,还用于当监测到业务请求时,运行注入的模拟对象代码,以确定所述业务请求的请求类型,并判断所述请求类型是否为预设请求类型;若所述请求类型为预设请求类型,则在所述代理组件中执行所述模拟对象规则组中的对应模拟对象规则,以测试所述待测试系统。
进一步地,所述系统测试系统还包括代理服务器,其中:
所述待测试系统100,还用于若所述请求类型不为预设请求类型,则将所述业务请求发送至代理服务器;
所述代理服务器,用于接收所述待测试系统发送的所述业务请求,并依据所述业务请求中的统一资源定位器URL地址,执行对应的模拟对象规则,以测试所述待测试系统。
进一步地,所述代理服务器还用于:
从所述业务请求中读取URL地址,并向所述服务器发送携带有所述URL地址的模拟对象规则查询请求;
接收所述服务器基于所述模拟对象规则查询请求返回的模拟对象规则,并执行返回的模拟对象规则,以测试所述待测试系统。
进一步地,所述待测试系统还用于:
当所述模拟对象代码注入完成时,获取待测试系统的系统标签,并向服务器发送携带有所述系统标签的模拟对象规则获取请求,并接收所述服务器返回的模拟对象规则组;
所述服务器还用于:
在监测到待测试系统发送的模拟对象规则获取请求时,从所述模拟对象规则获取请求中读取系统标签;
依据所述系统标签,查询对应的模拟对象规则组,并将查询到的模拟对象规则组返回给所述待测试系统。
进一步地,所述待测试系统100还用于:
从所述业务请求中读取模拟对象规则编号,并依据所述模拟对象规则编号,判断所述模拟对象规则组中是否存在目标模拟对象规则;
若所述模拟对象规则组中存在目标模拟对象规则,则在代理组件中执行所述目标模拟对象规则,以测试所述待测试系统。
进一步地,所述待测试系统100还用于:
当检测到业务代码修改请求时,将所述业务代码修改请求中的代码数据写入所述代理组件;
通过所述代理组件将所述代码数据注入待测试系统的业务代码中,以修改待测试系统的业务代码。
其中,上述系统测试系统的具体实施例与上述系统测试方法各实施例基本相同,在此不作赘述。
此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有系统测试程序,所述系统测试程序被处理器执行时,执行以下步骤:
当待测试系统启动时,在所述待测试系统中加载代理组件,并将所述代理组件中的模拟对象代码注入所述待测试系统的业务代码中;
当所述模拟对象代码注入完成时,向服务器发送模拟对象规则获取请求,并接收所述服务器返回的模拟对象规则组;
当监测到业务请求时,运行注入的模拟对象代码,以确定所述业务请求的请求类型,并判断所述请求类型是否为预设请求类型;
若所述请求类型为预设请求类型,则在所述代理组件中执行所述模拟对象规则组中的对应模拟对象规则,以测试所述待测试系统。
进一步地,所述系统测试程序被处理器执行时,还执行以下步骤:
从所述业务请求中读取模拟对象规则编号,并依据所述模拟对象规则编号,判断所述模拟对象规则组中是否存在目标模拟对象规则;
若所述模拟对象规则组中存在目标模拟对象规则,则在代理组件中执行所述目标模拟对象规则,以测试所述待测试系统。
进一步地,所述系统测试程序被处理器执行时,还执行以下步骤:
若所述请求类型不为预设请求类型,则将所述业务请求发送至代理服务器,以供所述代理服务器依据所述业务请求中的统一资源定位器URL地址,执行对应的模拟对象规则,以测试所述待测试系统。
进一步地,所述系统测试程序被处理器执行时,还执行以下步骤:
若所述请求类型不为预设请求类型,则判断所述业务请求中的网络地址是否为预设网络地址;
若所述业务请求中的网络地址为预设网络地址,则执行步骤:将所述业务请求发送至代理服务器。
进一步地,所述系统测试程序被处理器执行时,还执行以下步骤:
当检测到业务代码修改请求时,将所述业务代码修改请求中的代码数据写入所述代理组件;
通过所述代理组件将所述代码数据注入待测试系统的业务代码中,以修改待测试系统的业务代码。
本发明计算机可读存储介质的具体实施例与上述系统测试方法各实施例基本相同,在此不作赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (13)
1.一种系统测试方法,其特征在于,所述系统测试方法包括以下步骤:
当待测试系统启动时,在所述待测试系统中加载代理组件,并将所述代理组件中的模拟对象代码注入所述待测试系统的业务代码中;
当所述模拟对象代码注入完成时,向服务器发送模拟对象规则获取请求,并接收所述服务器返回的模拟对象规则组;
当监测到业务请求时,运行注入的模拟对象代码,以确定所述业务请求的请求类型,并判断所述请求类型是否为预设请求类型;
若所述请求类型为预设请求类型,则在所述代理组件中执行所述模拟对象规则组中的对应模拟对象规则,以测试所述待测试系统;
若所述请求类型不为预设请求类型,则将所述业务请求发送至代理服务器,以供所述代理服务器依据所述业务请求中的统一资源定位器URL地址,执行对应的模拟对象规则,以测试所述待测试系统。
2.如权利要求1所述的系统测试方法,其特征在于,在所述代理组件中执行所述模拟对象规则组中的对应模拟对象规则,以测试所述待测试系统的步骤包括:
从所述业务请求中读取模拟对象规则编号,并依据所述模拟对象规则编号,判断所述模拟对象规则组中是否存在目标模拟对象规则;
若所述模拟对象规则组中存在目标模拟对象规则,则在代理组件中执行所述目标模拟对象规则,以测试所述待测试系统。
3.如权利要求1所述的系统测试方法,其特征在于,将所述业务请求发送至代理服务器的步骤之前,还包括:
若所述请求类型不为预设请求类型,则判断所述业务请求中的网络地址是否为预设网络地址;
若所述业务请求中的网络地址为预设网络地址,则执行步骤:将所述业务请求发送至代理服务器。
4.如权利要求1所述的系统测试方法,其特征在于,所述代理服务器依据所述业务请求中的URL地址,执行对应的模拟对象规则,以测试所述待测试系统的步骤包括:
所述代理服务器从所述业务请求中读取URL地址,并向所述服务器发送携带有所述URL地址的模拟对象规则查询请求;
接收所述服务器基于所述模拟对象规则查询请求返回的模拟对象规则,并执行返回的模拟对象规则,以测试所述待测试系统。
5.如权利要求1-4中任一项所述的系统测试方法,其特征在于,当所述模拟对象代码注入完成时,向服务器发送模拟对象规则获取请求,并接收所述服务器返回的模拟对象规则组的步骤包括:
当所述模拟对象代码注入完成时,获取待测试系统的系统标签,并向服务器发送携带有所述系统标签的模拟对象规则获取请求,以供所述服务器在监测到待测试系统发送的模拟对象规则获取请求时,从所述模拟对象规则获取请求中读取系统标签,并依据所述系统标签,查询对应的模拟对象规则组,且将查询到的模拟对象规则组返回给所述待测试系统;
接收所述服务器返回的模拟对象规则组。
6.如权利要求1-4中任一项所述的系统测试方法,其特征在于,所述系统测试方法还包括:
当检测到业务代码修改请求时,将所述业务代码修改请求中的代码数据写入所述代理组件;
通过所述代理组件将所述代码数据注入待测试系统的业务代码中,以修改待测试系统的业务代码。
7.一种系统测试装置,其特征在于,所述系统测试装置包括:
组件加载模块,用于当待测试系统启动时,在所述待测试系统中加载代理组件;
代码注入模块,用于将所述代理组件中的模拟对象代码注入所述待测试系统的业务代码中;
收发模块,用于当所述模拟对象代码注入完成时,向服务器发送模拟对象规则获取请求,并接收所述服务器返回的模拟对象规则组;
运行与判断模块,用于当监测到业务请求时,运行注入的模拟对象代码,以确定所述业务请求的请求类型,并判断所述请求类型是否为预设请求类型;
规则执行模块,用于若所述请求类型为预设请求类型,则在所述代理组件中执行所述模拟对象规则组中的对应模拟对象规则,以测试所述待测试系统;
所述收发模块还用于:若所述请求类型不为预设请求类型,则将所述业务请求发送至代理服务器,以供所述代理服务器依据所述业务请求中的统一资源定位器URL地址,执行对应的模拟对象规则,以测试所述待测试系统。
8.一种系统测试系统,其特征在于,所述系统测试系统包括待测试系统和服务器,其中:
所述待测试系统,用于启动时,在所述待测试系统中加载代理组件,并将所述代理组件中的模拟对象代码注入所述待测试系统的业务代码中;
所述待测试系统,还用于当所述模拟对象代码注入完成时,向服务器发送模拟对象规则获取请求,并接收所述服务器返回的模拟对象规则组;
所述服务器,用于接收所述待测试系统发送的模拟对象规则获取请求,并基于所述模拟对象规则获取请求向所述待测试系统发送对应的模拟对象规则组;
所述待测试系统,还用于当监测到业务请求时,运行注入的模拟对象代码,以确定所述业务请求的请求类型,并判断所述请求类型是否为预设请求类型;若所述请求类型为预设请求类型,则在所述代理组件中执行所述模拟对象规则组中的对应模拟对象规则,以测试所述待测试系统;若所述请求类型不为预设请求类型,则将所述业务请求发送至代理服务器,以供所述代理服务器依据所述业务请求中的统一资源定位器URL地址,执行对应的模拟对象规则,以测试所述待测试系统。
9.如权利要求8所述的系统测试系统,其特征在于,所述系统测试系统还包括代理服务器,其中:
所述待测试系统,还用于若所述请求类型不为预设请求类型,则将所述业务请求发送至代理服务器;
所述代理服务器,用于接收所述待测试系统发送的所述业务请求,并依据所述业务请求中的统一资源定位器URL地址,执行对应的模拟对象规则,以测试所述待测试系统。
10.如权利要求9所述的系统测试系统,其特征在于,所述代理服务器还用于:
从所述业务请求中读取URL地址,并向所述服务器发送携带有所述URL地址的模拟对象规则查询请求;
接收所述服务器基于所述模拟对象规则查询请求返回的模拟对象规则,并执行返回的模拟对象规则,以测试所述待测试系统。
11.如权利要求8所述的系统测试系统,其特征在于,所述待测试系统还用于:
当所述模拟对象代码注入完成时,获取待测试系统的系统标签,并向服务器发送携带有所述系统标签的模拟对象规则获取请求,并接收所述服务器返回的模拟对象规则组;
所述服务器还用于:
在监测到待测试系统发送的模拟对象规则获取请求时,从所述模拟对象规则获取请求中读取系统标签;
依据所述系统标签,查询对应的模拟对象规则组,并将查询到的模拟对象规则组返回给所述待测试系统。
12.一种系统测试设备,其特征在于,所述系统测试设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的系统测试程序,所述系统测试程序被所述处理器执行时实现如权利要求1至3中任一项所述的系统测试方法的步骤。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有系统测试程序,所述系统测试程序被处理器执行时实现如权利要求1至3中任一项所述的系统测试方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811438832.6A CN109558320B (zh) | 2018-11-28 | 2018-11-28 | 系统测试方法、装置、系统、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811438832.6A CN109558320B (zh) | 2018-11-28 | 2018-11-28 | 系统测试方法、装置、系统、设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109558320A CN109558320A (zh) | 2019-04-02 |
CN109558320B true CN109558320B (zh) | 2022-02-01 |
Family
ID=65867814
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811438832.6A Active CN109558320B (zh) | 2018-11-28 | 2018-11-28 | 系统测试方法、装置、系统、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109558320B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110309058A (zh) * | 2019-05-24 | 2019-10-08 | 平安银行股份有限公司 | 业务端测试方法、装置、计算机装置及计算机存储介质 |
CN112241359B (zh) * | 2019-07-18 | 2024-04-23 | 腾讯科技(深圳)有限公司 | 一种设备测试方法及设备 |
CN110727432B (zh) * | 2019-10-08 | 2022-04-12 | 支付宝(杭州)信息技术有限公司 | 一种基于目标注入对象的风险注入方法和系统 |
CN111104323A (zh) * | 2019-12-17 | 2020-05-05 | 广州品唯软件有限公司 | 应用程序的功能测试方法、系统、代理服务器及存储介质 |
CN111797020A (zh) * | 2020-07-03 | 2020-10-20 | 北京每日优鲜电子商务有限公司 | 基于动态字节码的mock数据方法及装置 |
CN112667506A (zh) * | 2020-12-26 | 2021-04-16 | 一城一家网络科技有限公司 | 一种接口测试方法及相关装置 |
CN112948258A (zh) * | 2021-03-26 | 2021-06-11 | 杭州万高科技股份有限公司 | 一种代码测试方法、装置、设备及计算机可读存储介质 |
CN113176913B (zh) * | 2021-05-25 | 2023-03-24 | 深圳前海微众银行股份有限公司 | Java代理的处理方法、装置、终端设备以及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107368405A (zh) * | 2016-05-11 | 2017-11-21 | 腾讯科技(北京)有限公司 | 测试系统、测试方法、mock平台、拦截器和客户端 |
CN107967206A (zh) * | 2016-10-20 | 2018-04-27 | 腾讯科技(深圳)有限公司 | 一种数据测试系统、请求拦截方法以及请求拦截装置 |
CN108427631A (zh) * | 2017-02-14 | 2018-08-21 | 北京京东尚科信息技术有限公司 | 一种应用测试系统、方法、电子设备和可读存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9552285B2 (en) * | 2013-05-02 | 2017-01-24 | Microsoft Technology Licensing, Llc | Micro-execution for software testing |
-
2018
- 2018-11-28 CN CN201811438832.6A patent/CN109558320B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107368405A (zh) * | 2016-05-11 | 2017-11-21 | 腾讯科技(北京)有限公司 | 测试系统、测试方法、mock平台、拦截器和客户端 |
CN107967206A (zh) * | 2016-10-20 | 2018-04-27 | 腾讯科技(深圳)有限公司 | 一种数据测试系统、请求拦截方法以及请求拦截装置 |
CN108427631A (zh) * | 2017-02-14 | 2018-08-21 | 北京京东尚科信息技术有限公司 | 一种应用测试系统、方法、电子设备和可读存储介质 |
Non-Patent Citations (2)
Title |
---|
weixin_30757793.基于spring与mockito单元测试Mock对象注入.《https://blog.csdn.net/weixin_30757793/article/details/98916758》.2018, * |
基于spring与mockito单元测试Mock对象注入;weixin_30757793;《https://blog.csdn.net/weixin_30757793/article/details/98916758》;20180828;第1-2页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109558320A (zh) | 2019-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109558320B (zh) | 系统测试方法、装置、系统、设备及计算机可读存储介质 | |
CN108595329B (zh) | 一种应用测试方法、装置及计算机存储介质 | |
CN109117169B (zh) | 用于修复内核漏洞的方法和装置 | |
CN107133180B (zh) | 动态页面的测试方法、测试装置及存储介质 | |
CN107451474B (zh) | 用于终端的软件漏洞修复方法和装置 | |
CN110308999B (zh) | 一种应用间动态共享依赖包的方法、存储介质及移动终端 | |
CN111949314A (zh) | 应用安装包的生成方法、装置、服务器和存储介质 | |
CN111045941B (zh) | 用户界面控件的定位方法、装置及存储介质 | |
CN110851151B (zh) | 预装应用的方法、装置、终端、服务器和存储介质 | |
CN111090589A (zh) | 软件测试方法、软件测试装置及可读存储介质 | |
CN112699034B (zh) | 虚拟登录用户构建方法、装置、设备及存储介质 | |
CN112650689A (zh) | 测试方法、装置、电子设备及存储介质 | |
CN111026669A (zh) | 测试日志管理方法、测试日志管理装置及存储介质 | |
CN111078571B (zh) | 模拟响应的测试方法、终端设备及计算机可读存储介质 | |
CN107391132B (zh) | 目标App执行预设动作的方法及装置、设备 | |
CN107783837B (zh) | 一种进行存储扩展的方法、装置及电子设备 | |
CN115374083A (zh) | 数据源的切换方法、装置、电子设备及存储介质 | |
CN115129348A (zh) | 应用程序的资源更新方法、装置、设备及可读存储介质 | |
CN112486509A (zh) | 一种Jar包组件热部署方法及系统 | |
CN114637969A (zh) | 目标对象的鉴权方法及装置 | |
CN109831496B (zh) | 一种终端数据的调试方法 | |
CN111078631A (zh) | 文件的处理方法、终端设备及存储介质 | |
CN111736921A (zh) | 服务配置方法、装置、设备及计算机可读存储介质 | |
CN113626228A (zh) | 故障网页的修复方法、装置、设备及存储介质 | |
CN111045943A (zh) | Mock数据的生成方法、测试系统及可读存储介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |