CN109558320A - ***测试方法、装置、***、设备及计算机可读存储介质 - Google Patents
***测试方法、装置、***、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN109558320A CN109558320A CN201811438832.6A CN201811438832A CN109558320A CN 109558320 A CN109558320 A CN 109558320A CN 201811438832 A CN201811438832 A CN 201811438832A CN 109558320 A CN109558320 A CN 109558320A
- Authority
- CN
- China
- Prior art keywords
- simulated object
- measured
- request
- test
- rule
- 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.)
- Granted
Links
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 (14)
1.一种***测试方法,其特征在于,所述***测试方法包括以下步骤:
当待测试***启动时,在所述待测试***中加载代理组件,并将所述代理组件中的模拟对象代码注入所述待测试***的业务代码中;
当所述模拟对象代码注入完成时,向服务器发送模拟对象规则获取请求,并接收所述服务器返回的模拟对象规则组;
当监测到业务请求时,运行注入的模拟对象代码,以确定所述业务请求的请求类型,并判断所述请求类型是否为预设请求类型;
若所述请求类型为预设请求类型,则在所述代理组件中执行所述模拟对象规则组中的对应模拟对象规则,以测试所述待测试***。
2.如权利要求1所述的***测试方法,其特征在于,在所述代理组件中执行所述模拟对象规则组中的对应模拟对象规则,以测试所述待测试***的步骤包括:
从所述业务请求中读取模拟对象规则编号,并依据所述模拟对象规则编号,判断所述模拟对象规则组中是否存在目标模拟对象规则;
若所述模拟对象规则组中存在目标模拟对象规则,则在代理组件中执行所述目标模拟对象规则,以测试所述待测试***。
3.如权利要求1所述的***测试方法,其特征在于,所述当监测到业务请求时,运行注入的模拟对象代码,以确定所述业务请求的请求类型,并判断所述请求类型是否为预设请求类型的步骤之后,还包括:
若所述请求类型不为预设请求类型,则将所述业务请求发送至代理服务器,以供所述代理服务器依据所述业务请求中的统一资源***URL地址,执行对应的模拟对象规则,以测试所述待测试***。
4.如权利要求3所述的***测试方法,其特征在于,将所述业务请求发送至代理服务器的步骤之前,还包括:
若所述请求类型不为预设请求类型,则判断所述业务请求中的网络地址是否为预设网络地址;
若所述业务请求中的网络地址为预设网络地址,则执行步骤:将所述业务请求发送至代理服务器。
5.如权利要求3所述的***测试方法,其特征在于,所述代理服务器依据所述业务请求中的URL地址,执行对应的模拟对象规则,以测试所述待测试***的步骤包括:
所述代理服务器从所述业务请求中读取URL地址,并向所述服务器发送携带有所述URL地址的模拟对象规则查询请求;
接收所述服务器基于所述模拟对象规则查询请求返回的模拟对象规则,并执行返回的模拟对象规则,以测试所述待测试***。
6.如权利要求1-5中任一项所述的***测试方法,其特征在于,当所述模拟对象代码注入完成时,向服务器发送模拟对象规则获取请求,并接收所述服务器返回的模拟对象规则组的步骤包括:
当所述模拟对象代码注入完成时,获取待测试***的***标签,并向服务器发送携带有所述***标签的模拟对象规则获取请求,以供所述服务器在监测到待测试***发送的模拟对象规则获取请求时,从所述模拟对象规则获取请求中读取***标签,并依据所述***标签,查询对应的模拟对象规则组,且将查询到的模拟对象规则组返回给所述待测试***;
接收所述服务器返回的模拟对象规则组。
7.如权利要求1-5中任一项所述的***测试方法,其特征在于,所述***测试方法还包括:
当检测到业务代码修改请求时,将所述业务代码修改请求中的代码数据写入所述代理组件;
通过所述代理组件将所述代码数据注入待测试***的业务代码中,以修改待测试***的业务代码。
8.一种***测试装置,其特征在于,所述***测试装置包括:
组件加载模块,用于当待测试***启动时,在所述待测试***中加载代理组件;
代码注入模块,用于将所述代理组件中的模拟对象代码注入所述待测试***的业务代码中;
收发模块,用于当所述模拟对象代码注入完成时,向服务器发送模拟对象规则获取请求,并接收所述服务器返回的模拟对象规则组;
运行与判断模块,用于当监测到业务请求时,运行注入的模拟对象代码,以确定所述业务请求的请求类型,并判断所述请求类型是否为预设请求类型;
规则执行模块,用于若所述请求类型为预设请求类型,则在所述代理组件中执行所述模拟对象规则组中的对应模拟对象规则,以测试所述待测试***。
9.一种***测试***,其特征在于,所述***测试***包括待测试***和服务器,其中:
所述待测试***,用于启动时,在所述待测试***中加载代理组件,并将所述代理组件中的模拟对象代码注入所述待测试***的业务代码中;
所述待测试***,还用于当所述模拟对象代码注入完成时,向服务器发送模拟对象规则获取请求,并接收所述服务器返回的模拟对象规则组;
所述服务器,用于接收所述待测试***发送的模拟对象规则获取请求,并基于所述模拟对象规则获取请求向所述待测试***发送对应的模拟对象规则组;
所述待测试***,还用于当监测到业务请求时,运行注入的模拟对象代码,以确定所述业务请求的请求类型,并判断所述请求类型是否为预设请求类型;若所述请求类型为预设请求类型,则在所述代理组件中执行所述模拟对象规则组中的对应模拟对象规则,以测试所述待测试***。
10.如权利要求9所述的***测试***,其特征在于,所述***测试***还包括代理服务器,其中:
所述待测试***,还用于若所述请求类型不为预设请求类型,则将所述业务请求发送至代理服务器;
所述代理服务器,用于接收所述待测试***发送的所述业务请求,并依据所述业务请求中的统一资源***URL地址,执行对应的模拟对象规则,以测试所述待测试***。
11.如权利要求10所述的***测试***,其特征在于,所述代理服务器还用于:
从所述业务请求中读取URL地址,并向所述服务器发送携带有所述URL地址的模拟对象规则查询请求;
接收所述服务器基于所述模拟对象规则查询请求返回的模拟对象规则,并执行返回的模拟对象规则,以测试所述待测试***。
12.如权利要求9所述的***测试***,其特征在于,所述待测试***还用于:
当所述模拟对象代码注入完成时,获取待测试***的***标签,并向服务器发送携带有所述***标签的模拟对象规则获取请求,并接收所述服务器返回的模拟对象规则组;
所述服务器还用于:
在监测到待测试***发送的模拟对象规则获取请求时,从所述模拟对象规则获取请求中读取***标签;
依据所述***标签,查询对应的模拟对象规则组,并将查询到的模拟对象规则组返回给所述待测试***。
13.一种***测试设备,其特征在于,所述***测试设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的***测试程序,所述***测试程序被所述处理器执行时实现如权利要求1至4中任一项所述的***测试方法的步骤。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有***测试程序,所述***测试程序被处理器执行时实现如权利要求1至4中任一项所述的***测试方法的步骤。
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 true CN109558320A (zh) | 2019-04-02 |
CN109558320B 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) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110309058A (zh) * | 2019-05-24 | 2019-10-08 | 平安银行股份有限公司 | 业务端测试方法、装置、计算机装置及计算机存储介质 |
CN110727432A (zh) * | 2019-10-08 | 2020-01-24 | 支付宝(杭州)信息技术有限公司 | 一种基于目标注入对象的风险注入方法和*** |
CN111104323A (zh) * | 2019-12-17 | 2020-05-05 | 广州品唯软件有限公司 | 应用程序的功能测试方法、***、代理服务器及存储介质 |
CN111797020A (zh) * | 2020-07-03 | 2020-10-20 | 北京每日优鲜电子商务有限公司 | 基于动态字节码的mock数据方法及装置 |
CN112241359A (zh) * | 2019-07-18 | 2021-01-19 | 腾讯科技(深圳)有限公司 | 一种设备测试方法及设备 |
CN112579459A (zh) * | 2020-12-24 | 2021-03-30 | 平安普惠企业管理有限公司 | 测试应用程序的方法、装置和计算机设备 |
CN112667506A (zh) * | 2020-12-26 | 2021-04-16 | 一城一家网络科技有限公司 | 一种接口测试方法及相关装置 |
CN112948258A (zh) * | 2021-03-26 | 2021-06-11 | 杭州万高科技股份有限公司 | 一种代码测试方法、装置、设备及计算机可读存储介质 |
CN113176913A (zh) * | 2021-05-25 | 2021-07-27 | 深圳前海微众银行股份有限公司 | Java代理的处理方法、装置、终端设备以及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140331204A1 (en) * | 2013-05-02 | 2014-11-06 | Microsoft Corporation | Micro-execution for software testing |
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 | 北京京东尚科信息技术有限公司 | 一种应用测试***、方法、电子设备和可读存储介质 |
-
2018
- 2018-11-28 CN CN201811438832.6A patent/CN109558320B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140331204A1 (en) * | 2013-05-02 | 2014-11-06 | Microsoft Corporation | Micro-execution for software testing |
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 (1)
Title |
---|
WEIXIN_30757793: "基于spring与mockito单元测试Mock对象注入", 《HTTPS://BLOG.CSDN.NET/WEIXIN_30757793/ARTICLE/DETAILS/98916758》 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110309058A (zh) * | 2019-05-24 | 2019-10-08 | 平安银行股份有限公司 | 业务端测试方法、装置、计算机装置及计算机存储介质 |
CN112241359A (zh) * | 2019-07-18 | 2021-01-19 | 腾讯科技(深圳)有限公司 | 一种设备测试方法及设备 |
CN112241359B (zh) * | 2019-07-18 | 2024-04-23 | 腾讯科技(深圳)有限公司 | 一种设备测试方法及设备 |
CN110727432A (zh) * | 2019-10-08 | 2020-01-24 | 支付宝(杭州)信息技术有限公司 | 一种基于目标注入对象的风险注入方法和*** |
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数据方法及装置 |
CN112579459A (zh) * | 2020-12-24 | 2021-03-30 | 平安普惠企业管理有限公司 | 测试应用程序的方法、装置和计算机设备 |
CN112667506A (zh) * | 2020-12-26 | 2021-04-16 | 一城一家网络科技有限公司 | 一种接口测试方法及相关装置 |
CN112948258A (zh) * | 2021-03-26 | 2021-06-11 | 杭州万高科技股份有限公司 | 一种代码测试方法、装置、设备及计算机可读存储介质 |
CN113176913A (zh) * | 2021-05-25 | 2021-07-27 | 深圳前海微众银行股份有限公司 | Java代理的处理方法、装置、终端设备以及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109558320B (zh) | 2022-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109558320A (zh) | ***测试方法、装置、***、设备及计算机可读存储介质 | |
CN107133180B (zh) | 动态页面的测试方法、测试装置及存储介质 | |
CN103150238B (zh) | 一种服务请求处理方法、模拟性能测试方法及装置 | |
CN111897724B (zh) | 一种适用于云平台的自动化测试方法及装置 | |
CN102437998B (zh) | 应用商店***及使用该应用商店***进行开发的方法 | |
CN110034972B (zh) | 服务器压力测试方法和装置 | |
KR101087907B1 (ko) | 단말 기능 테스트 시스템, 테스트 서버, 어플리케이션 개발 장치 및 그 방법 | |
CN110278192A (zh) | 外网访问内网的方法、装置、计算机设备及可读存储介质 | |
CN112866348A (zh) | 数据库访问方法、装置、计算机设备和存储介质 | |
CN113849356B (zh) | 一种设备测试方法、装置、电子设备和存储介质 | |
CN112699034B (zh) | 虚拟登录用户构建方法、装置、设备及存储介质 | |
CN108763052A (zh) | 一种虚拟现实软件内存回收机制的性能检测方法及*** | |
CN116017462B (zh) | 一种sim卡授权管理方法、装置以及*** | |
CN112650689A (zh) | 测试方法、装置、电子设备及存储介质 | |
CN117041111A (zh) | 车云功能测试方法、装置、电子设备及存储介质 | |
CN116827838A (zh) | 基于自动依赖发现和代理的微服务混沌测试方法及*** | |
CN103019927B (zh) | 一种性能测试方法和*** | |
CN110650063A (zh) | 一种集中式的银行第三方软件仿真***及方法 | |
CN114003293B (zh) | 接口管理方法、装置、电子设备以及可读存储介质 | |
CN109657176A (zh) | 网络使用状态识别方法、装置、设备及可读存储介质 | |
CN109831496B (zh) | 一种终端数据的调试方法 | |
CN112416750B (zh) | 应用程序边界测试方法及*** | |
CN113468007B (zh) | 设备标识信息验证方法、装置、设备和存储介质 | |
CN115774679B (zh) | Ab实验回归测试方法、装置和存储介质 | |
CN102075377A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |