CN113742228B - 测试、数据回放及录制方法、***、装置、设备及介质 - Google Patents

测试、数据回放及录制方法、***、装置、设备及介质 Download PDF

Info

Publication number
CN113742228B
CN113742228B CN202111025552.4A CN202111025552A CN113742228B CN 113742228 B CN113742228 B CN 113742228B CN 202111025552 A CN202111025552 A CN 202111025552A CN 113742228 B CN113742228 B CN 113742228B
Authority
CN
China
Prior art keywords
target
software
information
test
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.)
Active
Application number
CN202111025552.4A
Other languages
English (en)
Other versions
CN113742228A (zh
Inventor
丁珂兰
胡涛
朱丽青
张文
刘金龙
刘秀梅
汪晓
郭佳玥
冯珊
曾庆灵
杜星星
崔一铭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Netease Cloud Music Technology Co Ltd
Original Assignee
Hangzhou Netease Cloud Music Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Netease Cloud Music Technology Co Ltd filed Critical Hangzhou Netease Cloud Music Technology Co Ltd
Priority to CN202111025552.4A priority Critical patent/CN113742228B/zh
Publication of CN113742228A publication Critical patent/CN113742228A/zh
Application granted granted Critical
Publication of CN113742228B publication Critical patent/CN113742228B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites

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为本公开实施例提供的具体的获取预先配置的mock方法的过程示意图;
图6为本公开实施例提供的具体的测试流程示意图;
图7(a)-图7 (b)为本公开实施例提供的一种待测试软件的测试结果的示意图;
图8为本公开实施例提供的一种测试流程示意图;
图9为本公开实施例提供的具体的测试流程示意图;
图10为本公开实施例提供的一种测试数据回放过程示意图;
图11为本公开实施例提供的一种录制数据录制过程示意图;
图12为本公开实施例提供的具体的录制数据录制流程示意图;
图13为本公开实施例提供的一种测试装置的结构示意图;
图14为本公开实施例提供的一种测试数据回放装置的结构示意图;
图15为本公开实施例提供的一种录制数据录制装置的结构示意图;
图16为本公开实施例提供的一种电子设备结构示意图;
图17为本公开实施例提供的一种电子设备结构示意图;
图18为本公开实施例提供的一种电子设备结构示意图。
具体实施方式
下面将结合附图对本公开作进一步地详细描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本公开保护的范围。
本领域技术人员知道,本公开的实施方式可以实现为一种***、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
在本文中,需要理解的是,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
为了方便理解,下面对本公开实施例中涉及的部分概念进行解释:
功能测试:软件迭代周期中,对该软件的新增任务进行测试的阶段,本阶段只关心和测试新增任务子软件执行该新增任务的情况是否符合上线要求。
回归测试:对新增任务子软件的功能测试阶段完成后,将该新增任务子软件组装到对应的主软件中,以使该主软件也可以执行该新增任务,除了测试该组装有该新增任务子软件的主软件执行新增任务的情况之外,还需测试组装有该新增任务子软件的主软件执行原有任务的情况,即进行业务主流程回归。
线上巡检:从已上线使用的软件所包含的各个接口中,配置线上接口,通过该线上接口,测试该已上线使用的软件执行各个任务的情况。其中,一般都是将该已上线使用的软件执行各个任务时所需的核心接口,配置为线上接口。在线上巡检过程中,如果确定该已上线使用的软件有报错,即执行某一任务失败,可以及时发现问题并修复。
人工黑盒测试:通过测试人员向测试设备输入测试该功能所需的输入参数信息,测试设备通过执行该功能对该输入参数信息进行处理,获取该输入参数信息对应的执行结果,基于输入参数信息对应的执行结果,确定该功能的测试结果。
测试周期:一个软件的测试周期主要分为:功能测试、回归测试和线上巡检这三个阶段。在功能测试阶段,主要采用的测试手段是人工黑盒测试,当测试人员确定新增任务子软件在功能测试阶段测试通过后,需要将该新增功能子软件组装到对应的主软件上,以实现将该新增功能子软件回归到核心场景或接口下,然后就可以对组装有该新增功能子软件的主软件进行回归测试。在回归测试阶段,可以采用上述的方法对组装有该新增功能子软件的主软件进行测试。当测试人员确定组装有该新增功能子软件的主软件的回归测试通过后,便可以上线该组装有该新增功能子软件的主软件。该组装有该新增功能子软件的主软件上线后,可以对该组装有该新增功能子软件的主软件进行线上巡检,以监控该组装有该新增功能子软件的主软件的运行情况。
随着网络技术的发展,很多软件已经成为每天服务超过1亿人的超级软件,比如,网易云音乐。以网易云音乐为例,由于网易云音乐所能执行的任务越来越多,新增的任务也越来越复杂,网易云音乐在执行某一复杂任务所需的后台应用的数量也越来越多,加大了对该软件进行测试的难度。
相关技术中,为了实现对软件的测试,主要采用的测试手段是人工黑盒测试。在人工黑盒测试过程中,如果测试人员根据获取到的测试结果,发现待测试软件执行任务的过程中出现问题,则会将该问题反馈给开发人员,以通知开发人员对该待测试软件进行修复。当该待测试软件修复后,测试人员需要再次采用人工黑盒测试的方式,对该修复后的待测试软件进行测试。对于该测试手段,由于待测试软件在执行某一复杂任务所需的后台应用的数量也越来越多,使得对待测试软件进行测试的过程中,所需测试人员的工作量以及对该待测试软件进行测试的难度呈指数级增长,对该待测试软件进行测试的效率成为瓶颈。并且,一旦该待测试软件执行任务的过程中出现问题,测试人员需要在该待测试软件被修复后,对修复后的待测试软件再次进行测试,进一步加大了测试人员的工作量,进一步降低了测试的效率。
因此,为了解决现有对软件进行测试的过程效率低的问题,本公开提供了一种测试、数据回放及录制方法、***、装置、设备及介质。由于引流设备可以获取并存储目标设备通过运行目标软件执行目标任务时录制的测试数据。后续测试设备在对待测试软件进行测试时,可以通过向引流设备发生回放请求,以通过该回放请求指示引流设备根据该回放请求中携带的调用信息,发送测试数据。当测试设备获取到引流设备发送的测试数据后,即可基于该测试数据,对待测试软件执行目标任务的情况进行测试,从而避免在软件测试过程中,需要测试人员进行大量地手动输入测试所需的输入参数信息,减少了测试人员的工作量,也避免了对待测试软件进行测试的效率受到测试人员工作效率的影响,提高了对待测试软件进行测试的过程效率。
图1为本公开实施例提供的一种测试过程示意图,该过程包括:
S101:发送回放请求至引流设备;其中,所述回放请求携带有调用信息,以指示所述引流设备根据所述调用信息发送测试数据;所述引流设备用于存储目标设备通过运行目标软件执行目标任务时录制的测试数据;所述调用信息包括所述目标设备的设备标识、所述目标软件的软件标识以及所述目标任务的任务标识;所述目标设备包括所述测试设备以及客户端设备中的至少一种。
本公开提供的测试方法应用于测试设备,该测试设备是电子设备,其可以是智能设备,如智能手机、智能平板等,也可以是服务器。
在一种示例中,当需要对某一软件进行测试时,可以将该软件确定为待测试软件,该待测软件可以为新增任务子软件,也可以是组装有该新增任务子软件的主软件(为了方便描述,下文中可以记为目标主软件)。测试人员可以通过测试设备输入所需的测试数据的相关信息(为了方便描述,记为调用信息)。其中,该调用信息包括该目标设备的设备标识、该目标软件的软件标识以及该目标任务的任务标识。
需要说明的是,输入调用信息的方式有很多,可以是通过对智能设备的显示屏上显示的各类调用信息输入触发操作(比如,语音,点击,双击等),也可以是直接通过输入语音信息的方式输入,还可以是通过智能设备的显示屏输入调用信息的文本信息的方式输入。具体实施过程中,可以根据实际需求进行灵活设置,在此不作具体限定。
当测试设备接收到调用信息后,根据该调用信息,生成回放请求并发送至引流设备,以指示该引流设备根据该回放请求中携带的调用信息发送测试数据。其中,该引流设备是用于存储目标设备通过运行目标软件执行目标任务时录制的测试数据。
需要说明的是,该目标设备可以包括该测试设备,也可以包括除该测试设备之外的安装有目标软件的其他电子设备,比如,用户线上使用的客户端设备。当然,该目标设备可以包括该测试设备以及客户端设备。可以理解的是,测试数据可以是测试设备通过线下运行目标软件执行目标任务时录制的,也可以是客户端设备通过线上运行目标软件执行目标任务时录制的。
由于可以获取到客户端设备通过运行目标软件执行目标任务时录制的测试数据,即获取到线上的测试数据,也可以获取到测试设备通过运行目标软件执行目标任务时录制的测试数据,即线下的测试数据,有利于拓宽测试设备对待测试软件进行测试的全面性,提高对待测试软件进行测试的质量,避免待测试软件中仍存在线上运行的目标软件所存在的问题。
在一种可能的实施方式中,为了方便生成回放请求,可以根据所述调用信息和用于采集所述调用信息的页面所对应的接口的类型,确定所述回放请求。
由于不同的页面所对应的接口的类型是不同的,导致生成回放请求的方式是不同的。为了方便且准确地生成回放请求,预先配置了不同接口类型对应的生成回放请求的策略。
作为一种可能的实施方式,用于采集调用信息的页面所对应的接口的类型可以包括超文本传输协议(HyperText Transfer Protocol,HTTP)、面向对象的编程语言JAVA以及远程过程调用(Remote Procedure Call,RPC)。因此,根据所述调用信息和用于采集所述调用信息的页面所对应的接口的类型,确定所述回放请求,包括如下三种情况:
情况一、若用于采集所述调用信息的页面所对应的接口的类型为超文本传输协议HTTP,则通过调用控制controller入口层,根据所述调用信息,生成所述回放请求。
由于用于采集所述调用信息的页面所对应的接口的类型为HTTP,则当基于上述的实施例获取到测试人员输入的调用信息后,可以直接将该页面对应的接口与该调用信息进行组装,然后通过调用controller入口层,根据组装后的调用信息,生成回放请求,从而实现传递调用信息。
情况二、若用于采集所述调用信息的页面所对应的接口的类型为面向对象的编程语言JAVA,则通过反射调用的方式,根据所述调用信息,生成所述回放请求。
情况三、若用于采集所述调用信息的页面所对应的接口的类型为远程过程调用RPC,则通过泛化调用的方式,根据所述调用信息,生成所述回放请求。
由于RPC接口一般没有对应的用户可视的界面,使得无法采用比较通用的接口测试框架(比如,gotest)来执行RPC接口测试。因此,为了方便RPC接口测试,如果用于采集所述调用信息的页面所对应的接口的类型为RPC,则当基于上述的实施例获取到测试人员输入的调用信息后,通过泛化调用的方式,生成回放请求,从而实现传递调用信息。
由于可以根据调用信息和用于采集所述调用信息的页面所对应的接口的类型,确定所述回放请求,使得回放请求的确定更加的准确且多样性,实现了在用于采集所述调用信息的页面所对应的接口的类型为RPC的情况下,生成回放请求,传递调用信息。
S102:获取所述引流设备发送的所述测试数据;其中,所述测试数据包括每个接口的输入参数信息;所述每个接口均为所述目标设备通过运行所述目标软件执行所述目标任务时所需的接口。
为了提高对待测试软件进行测试的效率,在本公开中,预先通过引流设备获取到目标设备录制的测试数据。而如果希望引流设备可以获取到目标设备录制的测试数据,则引流设备需要对目标设备进行一些预处理的操作,以实现引流设备可以控制目标设备开始录制原始录制数据,进而才能获取到目标设备录制的测试数据。
在一种可能的实施方式中,由于安装有目标软件的设备有很多,可以从安装有目标软件的所有设备中,选取至少一个设备作为录制原始录制数据的目标设备。因此,为了准确地确定目标设备,用户可以通过引流设备,从安装有目标软件的所有设备中,选取至少一个安装有目标软件的设备作为录制原始录制数据的目标设备,即输入添加至少一个安装有目标软件的设备为录制原始录制数据的目标设备的添加请求。
其中,用户输入该添加请求的方式可以参考上述实施例中测试人员输入调用信息的方式,重复之处不做赘述。
为了可以控制目标设备在接收到开始录制请求后便开始录制原始录制数据,引流设备在向目标设备发送开始录制请求之前,引流设备先向目标设备发送初始化文件。例如,引流设备可以通过Java代理agent向目标设备发送初始化文件。目标设备获取到该初始化文件后,通过运行该初始化文件,从而实现初始化该目标设备。为了及时通知引流设备可以控制该目标设备录制原始录制数据,当目标设备初始化完成后,目标设备可以向引流设备发送初始化完成的通知消息。引流设备在接收到目标设备发送的初始化完成的通知消息后,即可向目标设备发送开始录制请求,以控制目标设备开始录制原始录制数据。
在一种可能的实施方式中,为了方便后续引流设备与目标设备之间的数据通信,比如,引流设备向目标设备发送开始录制请求,目标设备向引流设备发送录制的原始录制数据等,引流设备与目标设备之间的网络应该互通的,且目标设备上的预设端口也是允许引流设备访问的。因此,在初始化目标设备的过程中,目标设备确定所述引流设备与所述目标设备之间的网络互通,并确定所述目标设备上的预设端口允许所述引流设备访问。
在一种可能的实施方式中,为了保证只有合法的引流设备才可以控制目标设备录制原始录制数据,在目标设备获取到的初始化文件中,包含有目标设备对应的公共账号。该目标设备通过登录该公共账号,可以确定当前引流设备是否具有可以控制该目标设备录制原始录制数据的权限。因此,在初始化目标设备的过程中,目标设备登录所述初始化文件中所述目标设备对应的公共账号,并创建所述公共账号对应的存储空间。
为了准确地控制目标设备录制原始录制数据,引流设备还在发送给目标设备的初始化文件中携带有脚本下载地址,目标设备根据该脚本下载地址,即可下载到录制原始录制数据所需的脚本,并将该脚本保存在公共账号对应的存储空间中。目标设备通过运行该脚本,可以下载到用于录制原始录制数据所需的安装包并安装,从而方便后续目标设备录制原始录制数据。
为了方便且准确地与目标设备进行数据交互,当引流设备获取到目标设备发送的初始化完成的通知信息后,引流设备可以将目标设备的设备标识发送至数据管理设备,比如,数据管理节点master,网易云音乐机器管理中心CMDB。数据管理设备接收到引流设备发送的目标设备的设备标识之后,根据每个设备标识,确定每个目标设备的配置信息,并将每个目标设备的配置信息发送至引流设备。引流设备接收到数据管理设备发送的目标设备的配置信息后,即可根据任一目标设备的配置信息,实现与该目标设备之间的数据交互。
其中,任一目标设备的配置信息包括该目标设备所在的集群信息、该目标设备的分布式应用程序协调服务组件zookeeper连接方式、该目标设备的远程过程调用RPC的配置信息中的至少一种。
图2为本公开实施例提供的一种数据管理设备与引流设备进行交互的场景示意图。如图2所示,以数据管理设备为网易云音乐机器管理中心CMDB为例,当引流设备获取到目标设备发送的初始化完成的通知信息后,引流设备将目标设备的设备标识发送至网易云音乐机器管理中心CMDB。网易云音乐机器管理中心CMDB接收到引流设备发送的目标设备的设备标识之后,根据每个设备标识,确定每个目标设备的配置信息,并将每个目标设备的配置信息发送至引流设备。
当基于上述的实施例完成了引流设备对目标设备的预处理的操作后,引流设备即可控制目标设备开始录制原始录制数据。
在一种可能的实施方式中,为了控制目标设备开始录制原始录制数据,当需要获取录制数据时,引流设备可以向目标设备发送开始录制请求,以指示目标设备录制通过目标软件执行目标任务时的原始录制数据。
目标设备获取到引流设备发送的开始录制请求后,在通过运行目标软件执行目标任务时,录制原始录制数据。然后将录制的原始录制数据发送至引流设备。
其中,该原始录制数据包括输入到每个接口的第一参数信息;每个接口均为该目标设备通过运行该目标软件执行该目标任务时所需的接口。当然,该原始录制数据中还可以包括每个接口输出的输出参数信息。
在一种可能的实施方式中,为了避免目标设备向引流设备发送大量的原始录制数据,造成目标设备和/或引流设备的负载超负荷,在本公开中,目标设备可以通过kafka消息订阅的方式,向引流设备发送原始录制数据。
在一种可能的实施方式中,由于在客户端设备上运行目标软件一般为未组装有新增任务子软件的主软件(为了方便描述,下文中可以记为原始主软件),在客户端设备上运行目标软件所执行的目标任务也一般为非新增任务。则客户端设备获取到引流设备发送的开始录制请求后,在通过运行原始主软件执行非新增任务时,录制原始录制数据,并将录制的原始录制数据发送至引流设备。
在另一种可能的实施方式中,在新研发出新增任务子软件后,测试人员一般会采用人工黑盒测试的方式,通过测试设备对新增任务子软件进行功能测试,则在该测试设备上进行测试的待测试软件为新增任务子软件,通过运行该待测试软件所执行的目标任务为新增任务。测试人员向测试设备输入测试输入参数信息后,测试设备根据获取到的测试输入参数信息,对新增任务子软件执行新增任务的情况进行功能测试。基于此,在本公开中,该目标设备还可以为测试设备,以在测试设备通过新增任务子软件执行新增任务时,录制原始录制数据,从而方便后续对通过待测试软件执行新增任务的情况进行测试。当测试设备获取到引流设备发送的开始录制请求后,在通过运行新增任务子软件执行新增任务时,录制原始录制数据,并将录制的原始录制数据发送至引流设备。
同样的,测试人员还有可能通过测试设备对目标主软件进行人工黑盒测试。因此,当测试设备获取到引流设备发送的开始录制请求后,在通过运行目标主软件执行新增任务时,录制原始录制数据,并将录制的原始录制数据发送至引流设备。
引流设备接收到目标设备发送的原始录制数据后,对该原始录制数据进行相应的处理,确定录制数据并存储。
在一种可能的实施方式中,为了方便原始录制数据从目标设备传输到引流设备,引流设备从目标设备获取到的原始录制数据可能为字节序列的。若目标设备发送的原始录制数据为字节序列,则可以对原始录制数据进行反序列化处理,以获取预设类型的原始录制数据,比如,获取录制模型(RecordModel)对象类型的原始录制数据。然后根据该预设类型的原始录制数据,对原始录制数据进行更新。
为了方便用户及时通过目标软件执行目标任务的情况,确定目标设备基于上述的实施例获取到的原始录制数据后,可以从原始录制数据中获取目标设备在通过目标软件执行目标任务时所调用的链路的信息(为了方便描述,记为调用链路信息)。根据该调用链路信息中包含的调用链路标识,即可获取当前目标设备在通过目标软件执行目标任务的任务状态信息。当根据获取到的任务状态信息,确定目标任务的任务状态为完成时,则获取目标设备在通过目标软件执行目标任务时的接口列表信息以及录制环境信息,并将该接口列表信息以及该录制环境信息输出至展示设备,以使该展示设备的显示器显示该接口列表信息以及该录制环境信息,不仅方便用户及时通过目标软件执行目标任务的情况,也避免在目标设备在通过目标软件执行完成目标任务之前,频繁获取接口列表信息以及录制环境信息。
其中,获取到的录制环境信息可以为客户端设备线上运行原始主软件的环境,即线上,也可以为测试设备线下运行新增子软件或目标主软件的环境,即线下。
在一种可能的实施方式中,若确定获取到的录制环境信息为线上,则确定录制环境信息为线上的每个原始录制数据。然后根据确定的每个原始录制数据中所包含的第一输入参数信息,对确定的每个原始录制数据进行去重处理。
通过上述的方法,可以实现引流设备不会保存太多的重复的录制数据,即不会保存大量无效的录制数据,提高引流设备的存储空间的利用率。
在一种可能的实施方式中,由于引流设备的存储空间的容量有限,无法无限保存所有的录制数据。因此,预设有可存储的录制数据的数量的存储阈值。在引流设备存储录制数据的过程中,可以实时或者按照预设的周期,确定已存储的录制数据的数量是否达到预设的存储阈值。当确定已存储的录制数据的数量达到预设的存储阈值,说明引流设备的存储空间接近饱和,无法继续存储录制数据,则引流设备向目标设备发送停止录制请求,以指示目标设备停止录制原始录制数据。当确定已存储的录制数据的数量未达到预设的存储阈值,说明引流设备的存储空间未接近饱和,还可以继续存储录制数据,则引流设备继续存储录制数据。
其中,可以针对不同的录制环境信息的录制数据,设置不同的存储阈值。比如,对于录制环境信息为线上的录制数据,设置对应的存储阈值是200,对于录制环境信息为线下的录制数据,不设置对应的存储阈值等。
在一种可能的实施方式中,由于在传统接口测试过程中,可能存在将测试过程中所获取到的输出参数信息写入到数据库中,即对该数据库造成了污染。比如,在对某一生成订单的接口进行测试,在对该接口进行测试的过程中生成了订单信息,并将该订单信息写入到了数据库中。而在此之上,对于一些非幂等接口,由于数据库中的数据被污染或者接口的时间戳的变化,会造成每次对该接口输入相同的输入参数信息的情况下,该接口输出的输出参数信息是不同的问题,比如,21日上午十点,向用于查询用户名的接口输入“工号07”的输入参数信息,通过该接口获取到的输出参数信息为“张三”,由于数据库中的数据被污染,在21日下午三点,向用于查询用户名的接口输入“工号07”的输入参数信息,通过该接口获取到的输出参数信息为“李四”,使得测试人员无法确定产生该问题的原因是因为数据库被污染导致的,还是因为目标软件存在异常导致的,需要测试人员耗费大量的精力去排查定位产生该问题的原因。
因此,为了避免数据库被污染,在本公开中,可以预先从目标软件所对应的各接口所包含的每个方法中,将至少一个方法确定为虚拟mock方法。后续引流设备在获取到原始录制数据后,针对原始录制数据所包含的每个接口,将该接口包含的每个方法分别与预先配置的mock方法进行匹配。若从该接口包含的每个方法中,确定存在与预先配置的虚拟mock方法匹配的目标方法,则获取该目标方法对应的录制参数信息。其中,任一目标方法对应的录制参数信息是录制该原始录制数据时,根据该目标方法以及该第二输入参数信息,所确定的方法输出参数信息。将该目标方法对应的第二输入参数信息、该目标方法对应的录制参数信息、及该原始录制数据均确定为该录制数据。若从该接口包含的每个方法中,确定不存在与预先配置的虚拟mock方法匹配的目标方法,则可以直接将该原始录制数据确定为该录制数据。
在一种可能的实施方式中,预先从目标软件所对应的各接口所包含的每个方法中,将至少一个方法确定为虚拟mock方法时,可以针对目标软件所对应的各接口所包含的每个方法,若该方法的第二输入参数信息可能会改变数据库中的数据,则可以将该方法设置为虚拟mock方法。
在一种可能的实施方式中,可以通过如下方法获取预先配置的mock方法:
当需要设置至少一个方法为mock方法时,测试人员可以通过引流设备输入设置mock方法的设置请求。其中,测试人员输入设置请求的方式可以参考上述实施例中测试人员输入调用信息的方法,重复之处不做赘述。测试设备获取到测试人员输入的设置请求后,根据该设置请求中携带的每个方法所归属的类的信息以及方法信息,确定mock方法并保存。
在一种可能的实施方式中,该mock方法包括以下至少一种:
第一种、可以将目标软件的底层数据方法确定为mock方法。
例如,以目标软件为网易云音乐为例,该目标软件的底层数据方法包括数据库(mylifedao)、音乐缓存 (music-memcache)的方法,则可以将该目标软件的数据库(mylifedao)、音乐缓存 (music-memcache)的方法设置为mock方法。
以mylifedao为例,测试人员通过查看mylifedao的代码,确定mylifedao的实现方式。然后根据mylifedao的实现方式,从mylifedao所包含的每个类中,确定需要确定为mock方法的方法,并记录该方法所归属的类的信息以及方法信息。例如,对于类为com.netease.*.*.SqlManagerImpl所包含的各个方法,可以将该类下的executeQuery、updateRecords、closeDBResource等方法确定为mock方法。
以music-memcache为例,测试人员通过查看music-memcache的代码,确定music-memcache的实现方式。然后根据music-memcache的实现方式,从music-memcache所包含的每个类中,确定需要确定为mock方法的方法,并记录该方法所归属的类的信息以及方法信息。例如,对于类为com.netease.*.memcache.*.impl.MemcacheManagerImpl所包含的各个方法,可以将该类下的add、decrCounter、multiSplitGet等方法确定为mock方法。
第二种、可以将目标软件与第三方软件之间进行调用时所需接口中包含的调用方法,确定为mock方法。
例如,假设目标软件A调用第三方软件B时,所需接口中包含的调用方法包括类为com.netease.music.rpc.*.*.ClientProxy 的invoke方法,将该类为com.netease.music.rpc.*.*.ClientProxy 的invoke方法,确定为mock方法,并记录该方法所归属的类的信息以及方法信息。并且在目标设备录制原始录制数据时,会保存目标软件A调用第三方软件B时所需接口的每个输入参数信息以及每个输入参数信息分别对应的输出参数信息。
第三种、将目标软件执行任务时所需接口中包含的方法,确定为mock方法。
例如,可以根据目标软件执行任务时所需接口中包含的方法,自定义配置至少一个方法为mock方法。以目标软件为网易云音乐为例,配置类为com.netease.music.*&method下所包含的各方法为mock方法。
图3为本公开实施例提供的具体的引流设备对原始录制数据进行处理的过程示意图。该过程包括:
S301:目标设备录制原始录制数据。
S302:目标设备通过kafka消息订阅的方式,向引流设备发送原始录制数据。
S303:引流设备接收到字节序列类型的原始录制数据后,将该原始录制数据反序列化成RecordModel对象类型的原始录制数据。
S304:引流设备从S303获取到的RecordModel对象类型的原始录制数据中,确定调用链路信息。
S305:引流设备根据该调用链路信息中包含的调用链路标识,获取当前目标设备在通过目标软件执行目标任务的任务状态信息。
S306:引流设备确定任务状态信息为完成时,则获取目标设备在通过目标软件执行目标任务时的接口列表信息以及录制环境信息。
S307:引流设备将该接口列表信息以及该录制环境信息输出至展示设备进行展示。
S308:引流设备确定获取到的录制环境信息是否为线上,若是,执行S309,否则,执行S310。
S309:引流设备根据录制环境信息为线上的每个原始录制数据中所包含的第一输入参数信息,对确定的每个原始录制数据进行去重处理。
图4为本公开实施例提供的一种录制原始录制数据的场景示意图。如图4所示,在录制了60分钟的测试数据的过程中,获取到的98例测试数据中,存在9例重复的测试数据,对该98例测试数据进行去重后,获取到89例测试数据并存储。
S310:引流设备针对原始录制数据所包含的每个接口,确定该接口包含的每个方法中,与预先配置的虚拟mock方法匹配的目标方法,并获取目标方法的第二输入参数信息对应的录制参数信息。
S311:引流设备将获取到的原始录制数据、每个目标方法的第二输入参数信息、以及每个输入参数信息分别对应的录制参数信息,确定为录制数据,并保存在数据库HBase和数据库MySQL中。
S312:引流设备确定已存储的测试数据的数量是否达到预设的存储阈值,若是,执行S313,若否,S301。
S313:向目标设备发送停止录制请求,以指示目标设备停止录制原始录制数据。
在另一种可能的实施方式中,还可以将目标软件对应的配置中心中保存的配置方法确定为mock方法。
为了设置目标软件对应的配置中心中保存的配置方法为mock方法,测试人员可以向引流设备输入代码仓库地址和配置中心的注解(为了方便描述,记为第一注解)。引流设备获取到输入代码仓库地址和配置中心的注解后,将该第一注解与预先保存的第二注解进行匹配。若存在与该第一注解匹配的第二注解,说明该第一注解不是自定义注解,则从代码仓库地址对应的代码仓库中,确定包含该匹配的第二注解的类的信息以及该类中包含的方法的方法。然后根据确定的类的信息以及该类中包含的方法的方法信息,确定所述mock方法并保存。若不存在与该第一注解匹配的第二注解,说明该第一注解是自定义注解,则将该第一注解添加到保存的第二注解中,然后从代码仓库地址对应的代码仓库中,确定包含该第一注解的类的信息以及该类中包含的方法的方法。然后根据确定的类的信息以及该类中包含的方法的方法信息,确定所述mock方法并保存。
例如,测试人员可以通过引流设备输入代码仓库地址和第一注解。引流设备代码仓库地址和第一注解后,会通过静态代码文件扫描,确定是否保存有与该第一注解匹配的第二注解。若确定未保存有与该第一注解匹配的第二注解,则将该第一注解添加到第二注解中。然后通过扫描代码仓库,确定包含该第一注解的类的信息以及该类中包含的方法的方法,根据确定的类的信息以及该类中包含的方法的方法信息,确定所述mock方法并保存。
若确定保存有与该第一注解匹配的第二注解,则通过扫描代码仓库,确定包含该匹配的第二注解的类的信息以及该类中包含的方法的方法,根据确定的类的信息以及该类中包含的方法的方法信息,确定所述mock方法并保存。
图5为本公开实施例提供的具体的获取预先配置的mock方法的过程示意图,该过程包括:
S501:引流设备获取输入代码仓库地址和配置中心的注解。
S502:引流设备确定该第一注解与预先保存的第二注解是否匹配,若匹配,则执行S503,否则,执行S504。
S503:引流设备从代码仓库地址对应的代码仓库中,确定包含该匹配的第二注解的类的信息以及该类中包含的方法的方法信息,执行S505。
S504:引流设备将该第一注解添加到保存的第二注解中,执行S502。
S505:引流设备根据确定的类的信息以及该类中包含的方法的方法信息,确定所述mock方法并保存。
当引流设备基于上述的实施例中的方式获取并存储到了测试数据之后,即可在测试设备对待测试软件进行测试的过程中,向测试设备发送测试数据,以使测试设备根据接收到的测试数据,对待测试软件进行测试,从而提高对待测试软件进行测试的效率。
当测试设备需要获取引流设备存储的测试数据时,可以向引流设备发送回放请求。引流设备接收到了测试设备发送的回放请求后,对该回放请求进行解析,以获取该回放请求中携带的调用信息。根据该调用信息,确定测试设备所需的测试数据并发送至测试设备。
其中,测试数据包括每个接口的输入参数信息。每个接口均为目标设备通过运行目标软件执行目标任务时所需的接口。
在一种可能的实施方式中,该回放请求中的携带的调用信息还可以包括测试数据回放方式。该测试数据回放方式包括mock方式,和/或,正常回放方式。若该调用信息中包括的测试数据回放方式为虚拟mock方式,则针对测试数据中所包含的每个接口,引流设备从该接口所包含的每个方法中,确定与预设的虚拟mock方法匹配的每个目标方法;从保存的录制数据中,获取输入到该接口的第一输入参数信息以及每个目标方法的第二输入参数信息;将第一输入参数信息以及第二输入参数信息,确定为测试数据;其中,任一目标方法的第二输入参数信息所对应的录制参数信息是录制该测试数据时,根据该目标方法以及该第二输入参数信息,所确定的方法输出参数信息。
若该调用信息中包括的测试数据回放方式为正常回放方式,则从录制数据中,获取输入到该接口的第一输入参数信息;将所述第一输入参数信息,确定为测试数据。
测试设备接收到引流设备发送的测试数据后,可以采用本公开提供的测试方法,对该测试数据进行处理,从而实现对待测试软件的测试。
S103:基于所述测试数据,对所述待测试软件执行所述目标任务的情况进行测试。
在一种可能的实施方式中,该待测试软件可以是新增任务子软件,也可以是组装有新增任务子软件的主软件,该目标任务可以是新增任务,也可以是非新增任务。基于此,当获取到测试数据后,基于所述测试数据,对所述待测试软件执行所述目标任务的情况进行测试,包括如下几种情况:
情况A、若所述目标任务为新增任务,且所述待测试软件为新增任务子软件,则根据从所述目标设备录制的测试数据,对所述新增任务子软件执行所述新增任务的情况进行功能测试;其中,所述目标设备包括所述测试设备。
情况B、若所述目标任务为新增任务,且所述待测试软件为组装有所述新增任务子软件的主软件,则根据从所述目标设备录制的测试数据,对所述主软件执行所述新增任务的情况进行功能测试以及接口测试; 其中,所述目标设备包括所述测试设备。
情况C、若所述目标任务为非新增任务,且所述待测试软件为组装有所述新增任务子软件的主软件,根据从目标设备录制到的测试数据,对所述主软件执行所述非新增任务的情况进行功能测试以及接口测试;其中,所述目标设备包括所述客户端设备。
在一种可能的实施方式中,由于引流设备保存的录制数据中还可以保存目标设备通过运行目标软件执行目标任务时的输出参数信息,则当基于上述的实施例获取到测试数据后,可以从引流设备获取目标设备通过运行目标软件执行目标任务时的输出参数信息,并通过运行待测试软件,对该测试数据中的每个输入参数信息进行处理,获取该待测试软件执行该目标任务时的实际输出参数信息。通过测试设备可以直接根据获取到的实际输出参数信息及输出参数信息,确定该待测试软件的测试结果,无需人工确定该待测试软件的测试结果,减少了人工确定测试结果所耗费的工作量和时间。
在一种可能的实施方式中,为避免测试过程中污染数据库中保存的数据,或,由于数据库中保存的数据发送变化导致无法确定待测试软件是否测试通过,获取到的调用信息还可以包括测试数据回放方式。该测试数据回放方式包括mock方式,和/或,正常回放方式。若该调用信息中包括的测试数据回放方式为虚拟mock方式,针对所述每个接口,将该接口中包含的每个方法分别与预设的mock方法进行匹配,从该接口包含的每个方法中,确定与预设的mock方法匹配的方法为目标方法。然后根据该接口中包含的每个目标方法分别对应的第二输入参数信息,从引流设备获取每个目标方法的第二输入参数信息分别对应的录制参数信息。根据该接口包含的每个方法、每个目标方法的第二输入参数信息、以及每个第二输入参数信息分别对应的录制参数信息,确定该接口对应的处理流程;通过运行所述待测试软件,根据所述测试数据中的第一输入参数信息以及所述每个接口分别对应的处理流程,获取该待测试软件执行目标任务时的实际输出参数信息。若该调用信息中包括的测试数据回放方式为正常回放方式,通过运行所述待测试软件,对测试数据中的第一输入参数信息进行处理,获取该待测试软件执行目标任务时的实际输出参数信息。
在一种可能的实施方式中,当获取到该待测试软件执行该目标任务时的实际输出参数信息后,测试设备可以通过将每个实际输出参数信息分别与对应的输出参数信息进行比对,确定该待测试软件的测试结果。若确定每个实际输出参数信息均与对应的输出参数信息一致,则确定该待测试软件的测试结果为通过。若确定任一实际输出参数信息与对应的输出参数信息不一致,则确定该待测试软件的测试结果为不通过。
图6为本公开实施例提供的具体的测试流程示意图,该流程包括:
S601:测试人员输入回放请求。
其中,该回放请求携带有调用信息,以指示引流设备根据该调用信息发送测试数据,该调用信息包括目标设备的设备标识、目标软件的软件标识以及目标任务的任务标识。
S602:测试设备接收到回放请求。
S603:测试设备确定用于采集调用信息的页面对应的接口的类型。
S604:若页面所对应的接口的类型为超文本传输协议HTTP,则测试设备从控制controller层,根据调用信息,生成回放请求并发送至引流设备。
S605:若页面所对应的接口的类型为面向对象的编程语言JAVA,则测试设备通过反射的方式,根据调用信息,生成回放请求并发送至引流设备。
S606:若页面所对应的接口的类型为远程过程调用RPC,则测试设备通过泛化调用的方式,根据调用信息,生成回放请求并发送至引流设备。
S607:引流设备确定调用信息中包括的测试数据回放方式是否为虚拟mock方式,若为是,执行S608,否则,执行S609。
S608:针对测试数据中所包含的每个接口,引流设备从接口所包含的每个方法中,确定与预设的虚拟mock方法匹配的每个目标方法;从录制数据中,获取输入到该接口的第一输入参数信息以及每个目标方法的第二输入参数信息;将第一输入参数信息以及每个第二输入参数信息,确定为测试数据并发送至测试设备。
其中,任一目标方法的录制参数信息是录制原始录制数据时,通过运行目标软件,根据目标方法以及第二输入参数信息,所确定的方法输出参数信息。
S609:针对测试数据中所包含的每个接口,引流设备从录制数据中,获取输入到该接口的第一输入参数信息;将该第一输入参数信息,确定为测试数据并发送至测试设备。
S610:测试设备接收引流设备发送的测试数据。
S611:测试设备通过运行待测试软件,对测试数据进行处理,获取待测试软件执行目标任务时的实际输出参数信息。
在一种可能的实施方式中,若该调用信息中包括的测试数据回放方式为虚拟mock方式,针对所述每个接口,将该接口中包含的每个方法分别与预设的mock方法进行匹配,从该接口包含的每个方法中,确定与预设的mock方法匹配的方法为目标方法。然后根据该接口中包含的每个目标方法分别对应的第二输入参数信息,从引流设备获取每个目标方法的第二输入参数信息分别对应的录制参数信息。根据该接口包含的每个方法、每个目标方法的第二输入参数信息、以及每个第二输入参数信息分别对应的录制参数信息,确定该接口对应的处理流程;通过运行所述待测试软件,根据所述测试数据中的第一输入参数信息以及所述每个接口分别对应的处理流程,获取该待测试软件执行目标任务时的实际输出参数信息。
在一种可能的实施方式中,若该调用信息中包括的测试数据回放方式为正常回放方式,通过运行所述待测试软件,对测试数据中的第一输入参数信息进行处理,获取该待测试软件执行目标任务时的实际输出参数信息。
S612:测试设备根据每个实际输出参数信息及对应的输出参数信息,确定待测试软件的测试结果。
图7(a)-(b)为本公开实施例提供的一种待测试软件的测试结果的示意图,测试设备通过对比图7(b)所示的每个实际输出参数信息、及图7(a)所示的对应的输出参数信息,确定每个实际输出参数信息均与对应的输出参数信息均一致,确定待测试软件的测试结果为通过。
为了及时对测试不通过的待测试软件进行修复,若确定该待测试软件测试不通过,则将该待测试软件存在异常的报错消息发送至预设的开发设备,以及时通知开发人员对该测试不通过的待测试软件进行修复。
为了进一步方便开发人员发现待测试软件存在的问题并修复该待测试软件,若确定任一实际输出参数信息与对应的输出参数信息不一致,即确定待测试软件不通过,则将该测试数据、每个实际输出参数信息及对应的输出参数信息发送至预设的开发设备,以使开发人员及时根据该测试数据、每个实际输出参数信息及对应的输出参数信息,快速确定该待测试软件出现问题的地方,对待测试软件进行修复。
当开发人员对测试不通过的待测试软件修复后,可以通过开发设备将修复后的软件发送给测试设备,以使测试人员通过测试设备对修复后的软件进行测试。因此,当测试设备接收到开发设备发送的修复后的软件后,根据该修复后的软件,对待测试软件进行更新。然后根据上述实施例获取到的测试数据,重新对更新后的待测试软件进行测试。
由于引流设备可以获取并存储目标设备通过运行目标软件执行目标任务时录制的测试数据。后续测试设备在对待测试软件进行测试时,可以通过向引流设备发生回放请求,以通过该回放请求指示引流设备根据该回放请求中携带的调用信息,发送测试数据。当测试设备获取到引流设备发送的测试数据后,即可基于该测试数据,对待测试软件执行目标任务的情况进行测试,从而避免在软件测试过程中,需要测试人员进行大量地手动输入测试所需的输入参数信息,减少了测试人员的工作量,也避免了对待测试软件进行测试的效率受到测试人员工作效率的影响,提高了对待测试软件进行测试的过程效率。
下面为了详细介绍本公开提供的测试方法,现通过具体的实施例进行说明。
图8为相关技术中的一种测试流程示意图,该流程主要包括两个阶段,分别是功能测试和回归测试,针对每个阶段进行详细的说明:
第一阶段:功能测试
S801:测试人员采用人工黑盒测试的方式,通过测试设备对新增任务子软件进行功能测试。
S802:测试人员根据测试设备输出的该输入参数信息对应的执行结果,确定该新增任务子软件是否功能测试通过,若功能测试通过,则执行S805,若功能测试不通过,则执行S803。
S803:测试人员通知开发人员修复该新增任务子软件,根据修复后的新增任务子软件,对测试设备保存的新增任务子软件进行更新,并采用人工黑盒测试的方式,继续对更新后的新增任务子软件进行测试。
对于该步骤,如果该新增任务子软件多次出现bug,即测试不通过,则需要测试人员对该新增任务子软件进行多轮的人工黑盒测试,耗费大量的人力物力,降低对新增任务子软件进行测试的效率。
S804:测试人员确定该更新后的新增任务子软件是否测试通过,若测试通过,执行S805,否则,执行S803。
第二阶段:回归测试
S805:测试人员将新增任务子软件组装到对应的主软件上,获取目标主软件,对目标主软件进行回归测试。
其中,对目标主软件进行回归测试包括新增任务回归测试、新增任务及非新增任务的接口测试、非新增任务回归测试。
S806:测试人员根据对目标主软件进行回归测试的测试结果,确定该目标主软件是否存在bug,若存在,执行S807,否则,执行S808。
S807:测试人员通知开发人员修复该目标主软件,根据修复后的目标主软件,对测试设备保存的目标主软件进行更新,并采用人工黑盒测试的方式,继续对更新后的目标主软件进行测试,执行S806。
S808:测试人员预发布该目标主软件到线上使用。
图9为本公开实施例提供的具体的测试流程示意图,该流程也主要包括两个阶段,分别是功能测试和回归测试,针对每个阶段进行详细的说明:
第一阶段:功能测试
S901:测试人员采用人工黑盒测试的方式,通过测试设备对新增任务子软件进行功能测试。
在此过程中,测试设备可以在通过运行新增软件执行新增任务时,录制原始录制数据。将原始录制数据发送至引流设备,以使引流设备基于原始录制数据,获取测试数据。
S902:测试人员根据待测试软件执行目标任务时的实际输出参数信息,确定该新增任务子软件是否功能测试通过,若功能测试通过,则执行S904,若功能测试不通过,则执行S903。
S903:测试设备将该新增任务子软件存在异常的报错消息发送至预设的开发设备,接收开发设备发送的修复后的新增任务子软件,根据修复后的新增任务子软件,对测试设备保存的新增任务子软件进行更新,并从引流设备获取目标设备通过运行新增任务子软件执行新增任务时录制的测试数据,根据该测试数据,继续对更新后的新增任务子软件进行测试。
对于该步骤,由于直接通过从引流设备获取到的目标设备通过运行新增任务子软件执行新增任务时录制的测试数据,对更新后的新增任务子软件进行测试,使得测试人员无需在对更新后的新增任务子软件进行多轮的人工黑盒测试,减少了测试人员的工作量,极大地提升了功能测试阶段的效率。
其中,测试设备根据获取到的测试数据,继续对更新后的新增任务子软件进行测试的过程包括:
测试设备通过运行新增任务子软件,对测试数据进行处理,获取新增任务子软件执行新增任务时的实际输出参数信息;测试设备根据每个实际输出参数信息及获取到的目标设备通过运行目标软件执行目标任务时的输出参数信息,确定新增任务子软件的测试结果,根据该测试结果,确定该新增任务子软件是否测试通过,若测试通过,执行S904,否则,执行S903。
第二阶段:回归测试
S904:测试人员将新增任务子软件组装到对应的主软件上,获取目标主软件,以通过测试设备对目标主软件进行回归测试。
其中,测试设备在对目标主软件进行回归测试之前,从引流设备获取测试设备通过运行新增任务子软件执行新增任务时录制的测试数据(为了方便描述,记为第一测试数据),以及客户端设备通过运行原始主软件执行非新增任务时录制的测试数据(为了方便描述,记为第二测试数据)。根据第一测试数据,对目标主软件执行新增任务的情况进行功能测试以及新增任务的接口测试。根据第二测试数据,对目标主软件执行非新增任务的情况进行功能测试以及非新增任务的接口测试。
S905:测试设备获取到目标主软件的回归测试结果后,根据对目标主软件进行回归测试的测试结果,确定该目标主软件是否存在bug,若存在,执行S906,否则,执行S907。
具体的,测试设备如何确定目标主软件的回归测试结果与上述实施例中测试设备确定新增任务子软件的功能测试结果的过程类似,重复之处不做赘述。
S906:测试设备将该目标主软件存在异常的报错消息发送至预设的开发设备,接收开发设备发送的修复后的目标主软件,根据修复后的目标主软件,对测试设备保存的目标主软件进行更新,并根据上述获取到的第一测试数据和第二测试数据,继续对更新后的目标主软件进行测试,执行S905。
对于该步骤,由于直接根据上述获取到的第一测试数据和第二测试数据,继续对更新后的目标主软件进行测试,使得测试人员无需在对更新后的目标主软件进行多轮的人工黑盒测试,减少了测试人员的工作量,替代了传统的接口测试方法,极大地提升了回归测试阶段的效率。
S907:测试人员预发布该目标主软件到线上使用。
本公开还提供了一种测试数据回放方法,图10为本公开实施例提供的一种测试数据回放过程示意图,该过程包括:
S1001:接收测试设备发送的回放请求;其中,所述回放请求携带有调用信息,以指示所述引流设备根据所述调用信息发送测试数据;所述引流设备用于存储目标设备通过目标软件执行目标任务时录制的测试数据;所述调用信息包括所述目标设备的设备标识、所述目标软件的软件标识以及所述目标任务的任务标识;所述目标设备包括所述测试设备以及客户端设备中的至少一种。
S1002:根据所述调用信息,从录制数据中获取所述测试数据并发送至所述测试设备;其中,所述测试数据包括每个接口的输入参数信息;所述每个接口均为所述目标设备通过运行所述目标软件执行所述目标任务时所需的接口。
本公开提供的测试数据回放方法应用于引流设备,该引流设备为电子设备,其可以是智能设备,如智能手机、智能平板等,也可以是服务器。
需要说明的是,本公开提供的测试数据回放方法具体解决问题的原理已在上述实施例中进行说明,具体参见上述测试方法的实施例,重复之处不做赘述。
在某些可能的实施方式中,若所述调用信息还包括测试数据回放方式,所述根据所述调用信息,从录制数据中获取所述测试数据包括:
若所述测试数据回放方式为虚拟mock方式,则针对所述测试数据中所包含的每个所述接口,从所述接口所包含的每个方法中,确定与预设的虚拟mock方法匹配的每个目标方法;从录制数据中,获取输入到该接口的第一输入参数信息以及所述每个目标方法的第二输入参数信息;将所述第一输入参数信息以及每个所述第二输入参数信息,确定为测试数据;
若所述测试数据回放方式为正常回放方式,则针对所述测试数据中所包含的每个所述接口,则从录制数据中,获取输入到该接口的第一输入参数信息;将所述第一输入参数信息,确定为测试数据。
由于引流设备可以获取并存储目标设备通过运行目标软件执行目标任务时录制的测试数据。后续测试设备在对待测试软件进行测试时,可以通过向引流设备发生回放请求,以通过该回放请求指示引流设备根据该回放请求中携带的调用信息,发送测试数据。引流设备接收到该回放请求后,根据该回放请求中的调用信息,向测试设备发送测试数据,从而有利于测试设备基于获取到的测试数据,对待测试软件执行目标任务的情况进行测试,从而避免在软件测试过程中,需要测试人员进行大量地手动输入测试所需的输入参数信息,减少了测试人员的工作量,也避免了对待测试软件进行测试的效率受到测试人员工作效率的影响,提高了对待测试软件进行测试的过程效率。
本公开还提供了一种录制数据录制方法,图11为本公开实施例提供的一种录制数据录制过程示意图,该过程包括:
S1101:向目标设备发送开始录制请求;其中,所述开始录制请求用于指示所述目标设备录制通过所述目标软件执行所述目标任务时的原始录制数据;所述目标设备包括测试设备以及客户端设备中的至少一种。
S1102:获取所述目标设备发送的原始录制数据;所述原始录制数据包括输入到每个接口的第一输入参数信息;所述每个接口均为所述目标设备通过运行所述目标软件执行所述目标任务时所需的接口。
S1103:根据所述原始录制数据,确定录制数据并存储,以使所述引流设备接收到所述测试设备发送的回放请求之后,根据所述回放请求中携带的调用信息,从录制数据中获取所述测试数据并发送至所述测试设备;其中,所述回放请求携带有调用信息,以指示所述引流设备根据所述调用信息发送测试数据;所述引流设备用于存储目标设备通过目标软件执行目标任务时录制的测试数据;所述调用信息包括所述目标设备的设备标识、所述目标软件的软件标识以及所述目标任务的任务标识;所述测试数据包括每个接口的输入参数信息;所述每个接口均为所述目标设备通过运行所述目标软件执行所述目标任务时所需的接口。
本公开提供的录制数据录制方法应用于引流设备,该引流设备为电子设备,其可以是智能设备,如智能手机、智能平板等,也可以是服务器。
需要说明的是,本公开提供的录制数据录制方法具体解决问题的原理已在上述实施例中进行说明,具体参见上述测试方法的实施例,重复之处不做赘述。
在某些可能的实施方式中,所述方法还包括:
获取添加至少一个安装有所述目标软件的设备为录制原始录制数据的目标设备的添加请求;
向所述目标设备发送初始化文件,以使所述目标设备通过运行所述初始化文件,实现初始化;
接收所述目标设备发送初始化完成的通知信息。
在某些可能的实施方式中,所述方法还包括:
将所述目标设备的设备标识发送至数据管理设备;
接收所述数据管理设备发送的所述目标设备的配置信息,以根据所述配置信息,实现所述引流设备与所述目标设备之间的数据交互;其中,所述配置信息包括所述目标设备所在的集群信息、所述目标设备的分布式应用程序协调服务组件zookeeper连接方式、所述目标设备的远程过程调用RPC的配置信息中的至少一种。
在某些可能的实施方式中,所述方法还包括:
若所述目标设备发送的所述原始录制数据为字节序列,对所述原始录制数据进行反序列化处理,以获取预设类型的原始录制数据;
根据所述预设类型的原始录制数据,对所述原始录制数据进行更新。
在某些可能的实施方式中,所述方法还包括:
从所述原始录制数据中获取调用链路信息;
根据所述调用链路信息中包含的调用链路标识,获取所述目标任务的任务状态信息;
当根据所述任务状态信息,确定所述目标任务的任务状态为完成时,则获取所述目标设备在通过所述目标软件执行所述目标任务时的接口列表信息以及录制环境信息;
将所述接口列表信息以及所述录制环境信息输出至展示设备,以使所述展示设备的显示器显示所述接口列表信息以及所述录制环境信息。
在某些可能的实施方式中,所述方法还包括:
若确定所述录制环境信息为线上,则根据录制环境信息为线上的每个原始录制数据中所包含的第一输入参数信息,对确定的每个所述原始录制数据进行去重处理。
在某些可能的实施方式中,所述根据所述原始录制数据,确定录制数据,包括:
针对所述原始录制数据所包含的每个所述接口,若从所述接口包含的每个方法中,确定存在与预先配置的虚拟mock方法匹配的目标方法,则获取所述目标方法对应的录制参数信息;将所述目标方法对应的第二输入参数信息、所述目标方法对应的录制参数信息、及所述原始录制数据均确定为所述录制数据;其中,任一目标方法对应的录制参数信息是录制所述原始录制数据时,根据所述目标方法以及所述第二输入参数信息,所确定的方法输出参数信息;若从所述接口包含的每个方法中,确定不存在与预先配置的虚拟mock方法匹配的目标方法,则将所述原始录制数据确定为所述录制数据。
在某些可能的实施方式中,所述预先配置的mock方法通过如下方法获取:
获取设置mock方法的设置请求;
根据所述设置请求中携带的每个方法所归属的类的信息以及方法信息,确定所述mock方法并保存。
在某些可能的实施方式中,所述mock方法包括以下至少一种:
所述目标软件的底层数据方法;
所述目标软件与第三方软件之间进行调用时所需接口中包含的调用方法;
所述目标软件执行任务时所需接口中包含的方法。
在某些可能的实施方式中,若所述mock方法包括所述目标软件对应的配置中心中保存的配置方法,所述预先配置的mock方法通过如下方法获取:
获取到代码仓库地址和所述配置中心的第一注解,将所述第一注解与预先保存的第二注解进行匹配;
若存在与所述第一注解匹配的第二注解,则从所述代码仓库地址对应的代码仓库中,确定包含该匹配的第二注解的类的信息以及所述类中包含的方法的方法信息;根据所述类的信息以及所述类中包含的方法的方法信息,确定所述mock方法并保存;
若不存在与所述第一注解匹配的第二注解,则将所述第一注解添加到所第二注解中;从所述代码仓库地址对应的代码仓库中,确定包含该第一注解的类的信息以及所述类中包含的方法的方法信息;根据所述类的信息以及所述类中包含的方法的方法信息,确定所述mock方法并保存。
在某些可能的实施方式中,所述方法还包括:
确定已存储的录制数据的数量是否达到预设的存储阈值;
若确定达到所述存储阈值,则向所述目标设备发送停止录制请求;其中,所述停止录制请求用于指示所述目标设备停止录制所述原始录制数据。
下面通过具体的实施例对本公开提供的录制数据录制方法进行说明,图12为本公开实施例提供的具体的录制数据录制流程示意图,该流程包括:
S1201:用户通过引流设备输入控制目标设备开始录制原始录制数据的开始录制请求。
S1202:引流设备接收开始录制请求并发送至目标设备,以指示目标设备录制通过目标软件执行目标任务时的原始录制数据。
S1203:引流设备确定是否设置了mock方法,若是,执行S1204,否则,执行S1206。
S1204:引流设备获取目标设备发送的原始录制数据,并针对该原始录制数据所包含的每个接口,确定该接口所包含的各个方法中是否存在有与预设的mock方法匹配的目标方法,若存在,执行S1205,否则,执行S1206。
S1205:获取目标方法的第二输入参数信息对应的录制参数信息,将目标方法对应的第二输入参数信息、该目标方法对应的录制参数信息、及原始录制数据均确定为录制数据并保存。
其中,任一目标方法对应的录制参数信息是录制原始录制数据时,根据目标方法以及第二输入参数信息,所确定的方法输出参数信息。
在一种可能的实施方式中,若该调用信息中包括的测试数据回放方式为虚拟mock方式,在后续测试设备获取到测试数据,并基于该测试数据,对待测试软件执行目标任务的情况进行测试的过程中,针对待测试软件执行目标任务所需的每个接口,测试设备将该接口中包含的每个方法分别与预设的mock方法进行匹配,从该接口包含的每个方法中,确定与预设的mock方法匹配的方法为目标方法。然后根据该接口中包含的每个目标方法分别对应的第二输入参数信息,从引流设备获取每个目标方法的第二输入参数信息分别对应的录制参数信息。根据该接口包含的每个方法、每个目标方法的第二输入参数信息、以及每个第二输入参数信息分别对应的录制参数信息,确定该接口对应的处理流程;通过运行所述待测试软件,根据所述测试数据中的第一输入参数信息以及所述每个接口分别对应的处理流程,获取该待测试软件执行目标任务时的实际输出参数信息。
在一种可能的实施方式中,若该调用信息中包括的测试数据回放方式为正常回放方式,在后续测试设备获取到测试数据,并基于该测试数据,对待测试软件执行目标任务的情况进行测试的过程中,测试设备通过运行所述待测试软件,对测试数据中的第一输入参数信息进行处理,获取该待测试软件执行目标任务时的实际输出参数信息。
S1206:引流设备直接将原始录制数据确定为录制数据。
本公开还提供了一种测试***,所述测试***包括用于执行上述实施例中的测试方法的测试设备、以及用于执行上述实施例中测试数据回放方法,和/或,上述实施例中录制数据录制方法的引流设备。
需要说明的是,本公开提供的测试***具体解决问题的原理已在上述实施例中进行说明,具体参见上述测试方法的实施例,重复之处不做赘述。
前文介绍了本公开实施例的测试方法,下文中将介绍本公开实施例中的测试装置。方法、装置是基于同一技术构思的,由于方法、装置解决问题的原理相似,因此装置与方法的实施可以相互参见,重复之处不再赘述。
本公开实施例提供了一种测试装置,图13为本公开实施例提供的一种测试装置的结构示意图,该装置包括:
发送单元1301,用于发送回放请求至引流设备;其中,所述回放请求携带有调用信息,以指示所述引流设备根据所述调用信息发送测试数据;所述引流设备用于存储目标设备通过运行目标软件执行目标任务时录制的测试数据;所述调用信息包括所述目标设备的设备标识、所述目标软件的软件标识以及所述目标任务的任务标识;所述目标设备包括所述测试设备以及客户端设备中的至少一种;
获取单元1302,用于获取所述引流设备发送的所述测试数据;其中,所述测试数据包括每个接口的输入参数信息;所述每个接口均为所述目标设备通过运行所述目标软件执行所述目标任务时所需的接口;
处理单元1303,用于基于所述测试数据,对所述待测试软件执行所述目标任务的情况进行测试。
在某些可能的实施方式中,所述发送单元1301,还用于获取所述调用信息;根据所述调用信息和用于采集所述调用信息的页面对应的接口的类型,确定所述回放请求。
在某些可能的实施方式中,所述发送单元1301,具体用于若所述页面所对应的接口的类型为超文本传输协议HTTP,则从控制controller层,根据所述调用信息,生成所述回放请求;或,若所述页面所对应的接口的类型为面向对象的编程语言JAVA,则通过反射的方式,根据所述调用信息,生成所述回放请求;或,若所述页面所对应的接口的类型为远程过程调用RPC,则通过泛化调用的方式,根据所述调用信息,生成所述回放请求。
在某些可能的实施方式中,所述处理单元1303,还用于若所述目标任务为新增任务,且所述待测试软件为新增任务子软件,则根据获取到的测试人员输入的测试输入参数信息,对所述新增任务子软件执行所述新增任务的情况进行功能测试。
在某些可能的实施方式中,所述获取单元1302,还用于若所述目标设备为所述测试设备,接收所述引流设备发送的开始录制请求;其中,所述开始录制请求用于指示所述目标设备录制所述目标软件执行所述目标任务时的原始录制数据;所述目标软件为新增任务子软件,或,组装有所述新增任务子软件的主软件;
所述装置还包括:录制单元;
所述录制单元,用于在通过运行所述目标软件执行所述目标任务时,录制原始录制数据;
所述发送单元1301,还用于将所述原始录制数据发送至所述引流设备,以使所述引流设备基于所述原始录制数据,获取所述测试数据。
在某些可能的实施方式中, 所述获取单元1302,还用于获取所述引流设备发送的初始化文件;
所述装置还包括:初始化单元;
所述初始化单元,用于通过运行所述初始化文件,以实现初始化所述目标设备;
所述发送单元1301,还用于向所述引流设备发送初始化完成的通知信息。
在某些可能的实施方式中,所述初始化单元,具体用于确定所述引流设备与所述目标设备之间的网络互通,并确定所述目标设备上的预设端口允许所述引流设备访问;登录所述初始化文件中所述目标设备对应的公共账号,并创建所述公共账号对应的存储空间;根据所述初始化文件中包含的脚本下载地址,下载脚本并保存在所述存储空间中;运行所述脚本,以下载用于录制所述测试数据所需的安装包并安装。
在某些可能的实施方式中,所述处理单元1303,具体用于若所述目标任务为新增任务,且所述待测试软件为新增任务子软件,则根据从所述目标设备录制的测试数据,对所述新增任务子软件执行所述新增任务的情况进行功能测试;其中,所述目标设备包括所述测试设备;或,若所述目标任务为新增任务,且所述待测试软件为组装有所述新增任务子软件的主软件,则根据从所述目标设备录制的测试数据,对所述主软件执行所述新增任务的情况进行功能测试以及接口测试; 其中,所述目标设备包括所述测试设备;或,若所述目标任务为非新增任务,且所述待测试软件为组装有所述新增任务子软件的主软件,根据从目标设备录制到的测试数据,对所述主软件执行所述非新增任务的情况进行功能测试以及接口测试;其中,所述目标设备包括所述客户端设备。
在某些可能的实施方式中,所述处理单元1303,具体用于从引流设备获取所述目标设备通过运行所述目标软件执行所述目标任务时的输出参数信息;并通过运行所述待测试软件,对所述测试数据进行处理,获取所述待测试软件执行所述目标任务时的实际输出参数信息;所述测试设备根据所述实际输出参数信息及所述输出参数信息,确定所述待测试软件的测试结果。
在某些可能的实施方式中,所述处理单元1303,具体用于若所述测试数据回放方式为mock方式,针对所述每个接口,根据该接口中包含的每个目标方法分别对应的第二输入参数信息,从所述引流设备获取所述每个目标方法的第二输入参数信息分别对应的录制参数信息;根据所述接口包含的每个方法、所述每个目标方法的第二输入参数信息、以及每个第二输入参数信息分别对应的录制参数信息,确定该接口对应的处理流程;通过运行所述待测试软件,根据所述测试数据中的第一输入参数信息以及所述每个接口分别对应的处理流程,获取所述待测试软件执行所述目标任务时的实际输出参数信息。
前文介绍了本公开实施例的测试数据回放方法,下文中将介绍本公开实施例中的测试数据回放装置。方法、装置是基于同一技术构思的,由于方法、装置解决问题的原理相似,因此装置与方法的实施可以相互参见,重复之处不再赘述。
本公开实施例提供了一种测试数据回放装置,图14为本公开实施例提供的一种测试数据回放装置的结构示意图,该装置包括:
第一接收模块1401,用于接收测试设备发送的回放请求;其中,所述回放请求携带有调用信息,以指示所述引流设备根据所述调用信息发送测试数据;所述引流设备用于存储目标设备通过目标软件执行目标任务时录制的测试数据;所述调用信息包括所述目标设备的设备标识、所述目标软件的软件标识以及所述目标任务的任务标识;所述目标设备包括所述测试设备以及客户端设备中的至少一种;
第一处理模块1402,用于根据所述调用信息,从录制数据中获取所述测试数据;其中,所述测试数据包括每个接口的输入参数信息;所述每个接口均为所述目标设备通过运行所述目标软件执行所述目标任务时所需的接口。
第一发送模块1403,用于将所述测试数据发送至所述测试设备。
在某些可能的实施方式中,所述第一处理模块1402,具体用于若所述调用信息还包括测试数据回放方式,当所述测试数据回放方式为虚拟mock方式,则针对所述测试数据中所包含的每个所述接口,从所述接口所包含的每个方法中,确定与预设的虚拟mock方法匹配的每个目标方法;从录制数据中,获取输入到该接口的第一输入参数信息以及所述每个目标方法的第二输入参数信息;将所述第一输入参数信息以及每个所述第二输入参数信息,确定为测试数据;当所述测试数据回放方式为正常回放方式,则针对所述测试数据中所包含的每个所述接口,则从录制数据中,获取输入到该接口的第一输入参数信息;将所述第一输入参数信息,确定为测试数据。
前文介绍了本公开实施例的录制数据录制方法,下文中将介绍本公开实施例中的录制数据录制装置。方法、装置是基于同一技术构思的,由于方法、装置解决问题的原理相似,因此装置与方法的实施可以相互参见,重复之处不再赘述。
本公开实施例提供了一种录制数据录制装置,图15为本公开实施例提供的一种录制数据录制装置的结构示意图,该装置包括:
第二发送模块1501,用于向目标设备发送开始录制请求;其中,所述开始录制请求用于指示所述目标设备录制通过所述目标软件执行所述目标任务时的原始录制数据;所述目标设备包括测试设备以及客户端设备中的至少一种;
第二获取模块1502,用于获取所述目标设备发送的原始录制数据;所述原始录制数据包括输入到每个接口的第一输入参数信息;所述每个接口均为所述目标设备通过运行所述目标软件执行所述目标任务时所需的接口。
第二处理模块1503,用于根据所述原始录制数据,确定录制数据并存储,以使所述引流设备接收到所述测试设备发送的回放请求之后,根据所述回放请求中携带的调用信息,从录制数据中获取所述测试数据并发送至所述测试设备;其中,所述回放请求携带有调用信息,以指示所述引流设备根据所述调用信息发送测试数据;所述引流设备用于存储目标设备通过目标软件执行目标任务时录制的测试数据;所述调用信息包括所述目标设备的设备标识、所述目标软件的软件标识以及所述目标任务的任务标识;所述测试数据包括每个接口的输入参数信息;所述每个接口均为所述目标设备通过运行所述目标软件执行所述目标任务时所需的接口。
在某些可能的实施方式中, 所述第二获取模块1502,还用于获取添加至少一个安装有所述目标软件的设备为录制原始录制数据的目标设备的添加请求;
所述第二发送模块1501,还用于向所述目标设备发送初始化文件,以使所述目标设备通过运行所述初始化文件,实现初始化;
所述第二获取模块1502,还用于接收所述目标设备发送初始化完成的通知信息。
在某些可能的实施方式中,所述第二发送模块1501,还用于将所述目标设备的设备标识发送至数据管理设备;
所述第二获取模块1502,还用于接收所述数据管理设备发送的所述目标设备的配置信息,以根据所述配置信息,实现所述引流设备与所述目标设备之间的数据交互;其中,所述配置信息包括所述目标设备所在的集群信息、所述目标设备的分布式应用程序协调服务组件zookeeper连接方式、所述目标设备的远程过程调用RPC的配置信息中的至少一种。
在某些可能的实施方式中,所述第二处理单元,还用于若所述目标设备发送的所述原始录制数据为字节序列,对所述原始录制数据进行反序列化处理,以获取预设类型的原始录制数据;根据所述预设类型的原始录制数据,对所述原始录制数据进行更新。
在某些可能的实施方式中,所述第二处理单元,还用于从所述原始录制数据中获取调用链路信息;根据所述调用链路信息中包含的调用链路标识,获取所述目标任务的任务状态信息;当根据所述任务状态信息,确定所述目标任务的任务状态为完成时,则获取所述目标设备在通过所述目标软件执行所述目标任务时的接口列表信息以及录制环境信息;将所述接口列表信息以及所述录制环境信息输出至展示设备,以使所述展示设备的显示器显示所述接口列表信息以及所述录制环境信息。
在某些可能的实施方式中,所述第二处理单元,还用于若确定所述录制环境信息为线上,则根据录制环境信息为线上的每个原始录制数据中所包含的第一输入参数信息,对确定的每个所述原始录制数据进行去重处理。
在某些可能的实施方式中,所述第二处理单元,具体用于针对所述原始录制数据所包含的每个所述接口,若从所述接口包含的每个方法中,确定存在与预先配置的虚拟mock方法匹配的目标方法,则获取所述目标方法对应的录制参数信息;将所述目标方法对应的第二输入参数信息、所述目标方法对应的录制参数信息、及所述原始录制数据均确定为所述录制数据;其中,任一目标方法对应的录制参数信息是录制所述原始录制数据时,根据所述目标方法以及所述第二输入参数信息,所确定的方法输出参数信息;若从所述接口包含的每个方法中,确定不存在与预先配置的虚拟mock方法匹配的目标方法,则将所述原始录制数据确定为所述录制数据。
在某些可能的实施方式中,所述第二处理单元,具体用于获取设置mock方法的设置请求;根据所述设置请求中携带的每个方法所归属的类的信息以及方法信息,确定所述mock方法并保存。
在某些可能的实施方式中,所述第二处理单元,具体用于若所述mock方法包括所述目标软件对应的配置中心中保存的配置方法,获取到代码仓库地址和所述配置中心的第一注解,将所述第一注解与预先保存的第二注解进行匹配;若存在与所述第一注解匹配的第二注解,则从所述代码仓库地址对应的代码仓库中,确定包含该匹配的第二注解的类的信息以及所述类中包含的方法的方法信息;根据所述类的信息以及所述类中包含的方法的方法信息,确定所述mock方法并保存;若不存在与所述第一注解匹配的第二注解,则将所述第一注解添加到所第二注解中;从所述代码仓库地址对应的代码仓库中,确定包含该第一注解的类的信息以及所述类中包含的方法的方法信息;根据所述类的信息以及所述类中包含的方法的方法信息,确定所述mock方法并保存。
在某些可能的实施方式中,所述第二处理单元,还用于确定已存储的录制数据的数量是否达到预设的存储阈值;
所述第二发送单元,还用于若所述第二处理单元确定达到所述存储阈值,则向所述目标设备发送停止录制请求;其中,所述停止录制请求用于指示所述目标设备停止录制所述原始录制数据。
如图16为本公开实施例提供的一种电子设备结构示意图,在上述各实施例的基础上,本公开实施例还提供了一种电子设备,如图16所示,包括:处理器1601、通信接口1602、存储器1603和通信总线1604,其中,处理器1601,通信接口1602,存储器1603通过通信总线1604完成相互间的通信;
所述存储器1603中存储有计算机程序,当所述程序被所述处理器1601执行时,使得所述处理器1601执行如下步骤:
发送回放请求至引流设备;其中,所述回放请求携带有调用信息,以指示所述引流设备根据所述调用信息发送测试数据;所述引流设备用于存储目标设备通过运行目标软件执行目标任务时录制的测试数据;所述调用信息包括所述目标设备的设备标识、所述目标软件的软件标识以及所述目标任务的任务标识;所述目标设备包括所述测试设备以及客户端设备中的至少一种;
获取所述引流设备发送的所述测试数据;其中,所述测试数据包括每个接口的输入参数信息;所述每个接口均为所述目标设备通过运行所述目标软件执行所述目标任务时所需的接口;
基于所述测试数据,对所述待测试软件执行所述目标任务的情况进行测试。
由于上述电子设备解决问题的原理与测试方法相似,因此上述电子设备的实施可以参见方法的实施,重复之处不再赘述。
如图17为本公开实施例提供的一种电子设备结构示意图,在上述各实施例的基础上,本公开实施例还提供了一种电子设备,如图17所示,包括:处理器1701、通信接口1702、存储器1703和通信总线1704,其中,处理器1701,通信接口1702,存储器1703通过通信总线1704完成相互间的通信;
所述存储器1703中存储有计算机程序,当所述程序被所述处理器1701执行时,使得所述处理器1701执行如下步骤:
接收测试设备发送的回放请求;其中,所述回放请求携带有调用信息,以指示所述引流设备根据所述调用信息发送测试数据;所述引流设备用于存储目标设备通过目标软件执行目标任务时录制的测试数据;所述调用信息包括所述目标设备的设备标识、所述目标软件的软件标识以及所述目标任务的任务标识;所述目标设备包括所述测试设备以及客户端设备中的至少一种;
根据所述调用信息,从录制数据中获取所述测试数据并发送至所述测试设备;其中,所述测试数据包括每个接口的输入参数信息;所述每个接口均为所述目标设备通过运行所述目标软件执行所述目标任务时所需的接口。
由于上述电子设备解决问题的原理与测试数据回放方法相似,因此上述电子设备的实施可以参见方法的实施,重复之处不再赘述。
如图18为本公开实施例提供的一种电子设备结构示意图,在上述各实施例的基础上,本公开实施例还提供了一种电子设备,如图18所示,包括:处理器1801、通信接口1802、存储器1803和通信总线1804,其中,处理器1801,通信接口1802,存储器1803通过通信总线1804完成相互间的通信;
所述存储器1803中存储有计算机程序,当所述程序被所述处理器1801执行时,使得所述处理器1801执行如下步骤:
向目标设备发送开始录制请求;其中,所述开始录制请求用于指示所述目标设备录制通过所述目标软件执行所述目标任务时的原始录制数据;所述目标设备包括测试设备以及客户端设备中的至少一种;
获取所述目标设备发送的原始录制数据;所述原始录制数据包括输入到每个接口的第一输入参数信息;所述每个接口均为所述目标设备通过运行所述目标软件执行所述目标任务时所需的接口;
根据所述原始录制数据,确定录制数据并存储,以使所述引流设备接收到所述测试设备发送的回放请求之后,根据所述回放请求中携带的调用信息,从录制数据中获取所述测试数据并发送至所述测试设备;其中,所述回放请求携带有调用信息,以指示所述引流设备根据所述调用信息发送测试数据;所述引流设备用于存储目标设备通过目标软件执行目标任务时录制的测试数据;所述调用信息包括所述目标设备的设备标识、所述目标软件的软件标识以及所述目标任务的任务标识;所述测试数据包括每个接口的输入参数信息;所述每个接口均为所述目标设备通过运行所述目标软件执行所述目标任务时所需的接口。
由于上述电子设备解决问题的原理与录制数据录制方法相似,因此上述电子设备的实施可以参见方法的实施,重复之处不再赘述。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口1802用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述处理器可以是通用处理器,包括中央处理器、网络处理器(NetworkProcessor,NP)等;还可以是数字指令处理器(Digital Signal Processing,DSP)、专用集成电路、现场可编程门陈列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。
在上述各实施例的基础上,本公开实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有可由处理器执行的计算机程序,当所述程序在所述处理器上运行时,使得所述处理器执行时实现如下步骤:
发送回放请求至引流设备;其中,所述回放请求携带有调用信息,以指示所述引流设备根据所述调用信息发送测试数据;所述引流设备用于存储目标设备通过运行目标软件执行目标任务时录制的测试数据;所述调用信息包括所述目标设备的设备标识、所述目标软件的软件标识以及所述目标任务的任务标识;所述目标设备包括所述测试设备以及客户端设备中的至少一种;
获取所述引流设备发送的所述测试数据;其中,所述测试数据包括每个接口的输入参数信息;所述每个接口均为所述目标设备通过运行所述目标软件执行所述目标任务时所需的接口;
基于所述测试数据,对所述待测试软件执行所述目标任务的情况进行测试。
由于计算机可读存储介质解决问题的原理与上述测试方法相似,因此具体实施可以参见数据处理方法的实施,重复之处不再赘述。
在上述各实施例的基础上,本公开实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有可由处理器执行的计算机程序,当所述程序在所述处理器上运行时,使得所述处理器执行时实现如下步骤:
接收测试设备发送的回放请求;其中,所述回放请求携带有调用信息,以指示所述引流设备根据所述调用信息发送测试数据;所述引流设备用于存储目标设备通过目标软件执行目标任务时录制的测试数据;所述调用信息包括所述目标设备的设备标识、所述目标软件的软件标识以及所述目标任务的任务标识;所述目标设备包括所述测试设备以及客户端设备中的至少一种;
根据所述调用信息,从录制数据中获取所述测试数据并发送至所述测试设备;其中,所述测试数据包括每个接口的输入参数信息;所述每个接口均为所述目标设备通过运行所述目标软件执行所述目标任务时所需的接口。
由于计算机可读存储介质解决问题的原理与上述测试数据回放方法相似,因此具体实施可以参见数据处理方法的实施,重复之处不再赘述。
在上述各实施例的基础上,本公开实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有可由处理器执行的计算机程序,当所述程序在所述处理器上运行时,使得所述处理器执行时实现如下步骤:
向目标设备发送开始录制请求;其中,所述开始录制请求用于指示所述目标设备录制通过所述目标软件执行所述目标任务时的原始录制数据;所述目标设备包括测试设备以及客户端设备中的至少一种;
获取所述目标设备发送的原始录制数据;所述原始录制数据包括输入到每个接口的第一输入参数信息;所述每个接口均为所述目标设备通过运行所述目标软件执行所述目标任务时所需的接口;
根据所述原始录制数据,确定录制数据并存储,以使所述引流设备接收到所述测试设备发送的回放请求之后,根据所述回放请求中携带的调用信息,从录制数据中获取所述测试数据并发送至所述测试设备;其中,所述回放请求携带有调用信息,以指示所述引流设备根据所述调用信息发送测试数据;所述引流设备用于存储目标设备通过目标软件执行目标任务时录制的测试数据;所述调用信息包括所述目标设备的设备标识、所述目标软件的软件标识以及所述目标任务的任务标识;所述测试数据包括每个接口的输入参数信息;所述每个接口均为所述目标设备通过运行所述目标软件执行所述目标任务时所需的接口。
由于计算机可读存储介质解决问题的原理与上述录制数据录制方法相似,因此具体实施可以参见数据处理方法的实施,重复之处不再赘述。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个设备,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (45)

1.一种测试方法,其特征在于,所述方法应用于测试设备,所述方法包括:
发送回放请求至引流设备;其中,所述回放请求携带有调用信息,以指示所述引流设备根据所述调用信息发送测试数据;所述引流设备用于存储目标设备通过运行目标软件执行目标任务时录制的测试数据;所述调用信息包括所述目标设备的设备标识、所述目标软件的软件标识以及所述目标任务的任务标识;所述目标设备包括所述测试设备以及客户端设备中的至少一种;
获取所述引流设备发送的所述测试数据;其中,所述测试数据包括每个接口的输入参数信息;所述每个接口均为所述目标设备通过运行所述目标软件执行所述目标任务时所需的接口;
基于所述测试数据,对待测试软件执行所述目标任务的情况进行测试;
其中,所述引流设备用于若测试数据回放方式为虚拟mock方式,则针对所述测试数据中所包含的每个所述接口,从所述接口所包含的每个方法中,确定与预设的虚拟mock方法匹配的每个目标方法;从录制数据中,获取输入到该接口的第一输入参数信息以及所述每个目标方法的第二输入参数信息;将所述第一输入参数信息以及每个所述第二输入参数信息,确定为测试数据;若所述测试数据回放方式为正常回放方式,则针对所述测试数据中所包含的每个所述接口,则从录制数据中,获取输入到该接口的第一输入参数信息;将所述第一输入参数信息,确定为测试数据。
2.根据权利要求1所述的方法,其特征在于,所述回放请求通过如下方式获取:
获取所述调用信息;
根据所述调用信息和用于采集所述调用信息的页面对应的接口的类型,确定所述回放请求。
3.根据权利要求2所述的方法,其特征在于,所述根据所述调用信息和用于采集所述调用信息的页面对应的接口的类型,确定所述回放请求包括:
若所述页面所对应的接口的类型为超文本传输协议HTTP,则从控制controller层,根据所述调用信息,生成所述回放请求;
若所述页面所对应的接口的类型为面向对象的编程语言JAVA,则通过反射的方式,根据所述调用信息,生成所述回放请求;
若所述页面所对应的接口的类型为远程过程调用RPC,则通过泛化调用的方式,根据所述调用信息,生成所述回放请求。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述目标任务为新增任务,且所述待测试软件为新增任务子软件,则根据获取到的测试人员输入的测试输入参数信息,对所述新增任务子软件执行所述新增任务的情况进行功能测试。
5.根据权利要求1或4所述的方法,其特征在于,若所述目标设备为所述测试设备,从所述目标设备录制所述测试数据,包括:
接收所述引流设备发送的开始录制请求;其中,所述开始录制请求用于指示所述目标设备录制所述目标软件执行所述目标任务时的原始录制数据;所述目标软件为新增任务子软件,或,组装有所述新增任务子软件的主软件;
在通过运行所述目标软件执行所述目标任务时,录制原始录制数据;
将所述原始录制数据发送至所述引流设备,以使所述引流设备基于所述原始录制数据,获取所述测试数据。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
获取所述引流设备发送的初始化文件;
通过运行所述初始化文件,以实现初始化所述目标设备;
向所述引流设备发送初始化完成的通知信息。
7.根据权利要求6所述的方法,其特征在于,所述初始化所述目标设备包括:
确定所述引流设备与所述目标设备之间的网络互通,并确定所述目标设备上的预设端口允许所述引流设备访问;
登录所述初始化文件中所述目标设备对应的公共账号,并创建所述公共账号对应的存储空间;
根据所述初始化文件中包含的脚本下载地址,下载脚本并保存在所述存储空间中;
运行所述脚本,以下载用于录制所述测试数据所需的安装包并安装。
8.根据权利要求5所述的方法,其特征在于,所述基于所述测试数据,对所述待测试软件执行所述目标任务的情况进行测试,包括:
若所述目标任务为新增任务,且所述待测试软件为新增任务子软件,则根据从所述目标设备录制的测试数据,对所述新增任务子软件执行所述新增任务的情况进行功能测试;其中,所述目标设备包括所述测试设备;
若所述目标任务为新增任务,且所述待测试软件为组装有所述新增任务子软件的主软件,则根据从所述目标设备录制的测试数据,对所述主软件执行所述新增任务的情况进行功能测试以及接口测试; 其中,所述目标设备包括所述测试设备;
若所述目标任务为非新增任务,且所述待测试软件为组装有所述新增任务子软件的主软件,根据从目标设备录制到的测试数据,对所述主软件执行所述非新增任务的情况进行功能测试以及接口测试;其中,所述目标设备包括所述客户端设备。
9.根据权利要求1所述的方法,其特征在于,所述基于所述测试数据,对所述待测试软件执行所述目标任务的情况进行测试,包括:
从所述引流设备获取所述目标设备通过运行所述目标软件执行所述目标任务时的输出参数信息;
并通过运行所述待测试软件,对所述测试数据进行处理,获取所述待测试软件执行所述目标任务时的实际输出参数信息;
所述测试设备根据所述实际输出参数信息及所述输出参数信息,确定所述待测试软件的测试结果。
10.根据权利要求9所述的方法,其特征在于,若所述调用信息还包括测试数据回放方式,且所述测试数据回放方式为虚拟mock方式,任一接口的输入参数信息包括输入到所述接口的第一输入参数信息、以及所述接口包含的每个目标方法的第二输入参数信息;其中,任一目标方法为所述接口包含的与预设的虚拟mock方法匹配的方法;
若所述调用信息还包括测试数据回放方式,且所述测试数据回放方式为正常回放方式,任一接口的输入参数信息包括输入到所述接口的第一输入参数信息。
11.根据权利要求10所述的方法,其特征在于,所述通过运行所述待测试软件,对所述测试数据进行处理,获取所述待测试软件执行所述目标任务时的实际输出参数信息,包括:
若所述测试数据回放方式为mock方式,针对所述每个接口,根据该接口中包含的每个目标方法分别对应的第二输入参数信息,从所述引流设备获取所述每个目标方法的第二输入参数信息分别对应的录制参数信息;根据所述接口包含的每个方法、所述每个目标方法的第二输入参数信息、以及每个第二输入参数信息分别对应的录制参数信息,确定该接口对应的处理流程;
通过运行所述待测试软件,根据所述测试数据中的第一输入参数信息以及所述每个接口分别对应的处理流程,获取所述待测试软件执行所述目标任务时的实际输出参数信息。
12.一种测试数据回放方法,其特征在于,所述方法应用于引流设备,所述方法包括:
接收测试设备发送的回放请求;其中,所述回放请求携带有调用信息,以指示所述引流设备根据所述调用信息发送测试数据;所述引流设备用于存储目标设备通过目标软件执行目标任务时录制的测试数据;所述调用信息包括所述目标设备的设备标识、所述目标软件的软件标识以及所述目标任务的任务标识;所述目标设备包括所述测试设备以及客户端设备中的至少一种;
根据所述调用信息,从录制数据中获取所述测试数据并发送至所述测试设备;其中,所述测试数据包括每个接口的输入参数信息;所述每个接口均为所述目标设备通过运行所述目标软件执行所述目标任务时所需的接口;
其中,若所述调用信息还包括测试数据回放方式,所述根据所述调用信息,从录制数据中获取所述测试数据包括:
若所述测试数据回放方式为虚拟mock方式,则针对所述测试数据中所包含的每个所述接口,从所述接口所包含的每个方法中,确定与预设的虚拟mock方法匹配的每个目标方法;从录制数据中,获取输入到该接口的第一输入参数信息以及所述每个目标方法的第二输入参数信息;将所述第一输入参数信息以及每个所述第二输入参数信息,确定为测试数据;
若所述测试数据回放方式为正常回放方式,则针对所述测试数据中所包含的每个所述接口,则从录制数据中,获取输入到该接口的第一输入参数信息;将所述第一输入参数信息,确定为测试数据。
13.一种录制数据录制方法,其特征在于,所述方法应用于引流设备,所述方法包括:
向目标设备发送开始录制请求;其中,所述开始录制请求用于指示所述目标设备录制通过目标软件执行目标任务时的原始录制数据;所述目标设备包括测试设备以及客户端设备中的至少一种;
获取所述目标设备发送的原始录制数据;所述原始录制数据包括输入到每个接口的第一输入参数信息;所述每个接口均为所述目标设备通过运行所述目标软件执行所述目标任务时所需的接口;
根据所述原始录制数据,确定录制数据并存储,以使所述引流设备接收到所述测试设备发送的回放请求之后,根据所述回放请求中携带的调用信息,从录制数据中获取测试数据并发送至所述测试设备;其中,所述回放请求携带有调用信息,以指示所述引流设备根据所述调用信息发送测试数据;所述引流设备用于存储目标设备通过目标软件执行目标任务时录制的测试数据;所述调用信息包括所述目标设备的设备标识、所述目标软件的软件标识以及所述目标任务的任务标识;所述测试数据包括每个接口的输入参数信息;所述每个接口均为所述目标设备通过运行所述目标软件执行所述目标任务时所需的接口;
其中,所述根据所述原始录制数据,确定录制数据,包括:
针对所述原始录制数据所包含的每个所述接口,若从所述接口包含的每个方法中,确定存在与预先配置的虚拟mock方法匹配的目标方法,则获取所述目标方法对应的录制参数信息;将所述目标方法对应的第二输入参数信息、所述目标方法对应的录制参数信息、及所述原始录制数据均确定为所述录制数据;其中,任一目标方法对应的录制参数信息是录制所述原始录制数据时,根据所述目标方法以及所述第二输入参数信息,所确定的方法输出参数信息;若从所述接口包含的每个方法中,确定不存在与预先配置的虚拟mock方法匹配的目标方法,则将所述原始录制数据确定为所述录制数据。
14.根据权利要求13所述的方法,其特征在于,所述方法还包括:
获取添加至少一个安装有所述目标软件的设备为录制原始录制数据的目标设备的添加请求;
向所述目标设备发送初始化文件,以使所述目标设备通过运行所述初始化文件,实现初始化;
接收所述目标设备发送初始化完成的通知信息。
15.根据权利要求14所述的方法,其特征在于,所述方法还包括:
将所述目标设备的设备标识发送至数据管理设备;
接收所述数据管理设备发送的所述目标设备的配置信息,以根据所述配置信息,实现所述引流设备与所述目标设备之间的数据交互;其中,所述配置信息包括所述目标设备所在的集群信息、所述目标设备的分布式应用程序协调服务组件zookeeper连接方式、所述目标设备的远程过程调用RPC的配置信息中的至少一种。
16.根据权利要求13所述的方法,其特征在于,所述方法还包括:
若所述目标设备发送的所述原始录制数据为字节序列,对所述原始录制数据进行反序列化处理,以获取预设类型的原始录制数据;
根据所述预设类型的原始录制数据,对所述原始录制数据进行更新。
17.根据权利要求13或16所述的方法,其特征在于,所述方法还包括:
从所述原始录制数据中获取调用链路信息;
根据所述调用链路信息中包含的调用链路标识,获取所述目标任务的任务状态信息;
当根据所述任务状态信息,确定所述目标任务的任务状态为完成时,则获取所述目标设备在通过所述目标软件执行所述目标任务时的接口列表信息以及录制环境信息;
将所述接口列表信息以及所述录制环境信息输出至展示设备,以使所述展示设备的显示器显示所述接口列表信息以及所述录制环境信息。
18.根据权利要求17所述的方法,其特征在于,所述方法还包括:
若确定所述录制环境信息为线上,则根据录制环境信息为线上的每个原始录制数据中所包含的第一输入参数信息,对确定的每个所述原始录制数据进行去重处理。
19.根据权利要求13所述的方法,其特征在于,所述预先配置的mock方法通过如下方法获取:
获取设置mock方法的设置请求;
根据所述设置请求中携带的每个方法所归属的类的信息以及方法信息,确定所述mock方法并保存。
20.根据权利要求19所述的方法,其特征在于,所述mock方法包括以下至少一种:
所述目标软件的底层数据方法;
所述目标软件与第三方软件之间进行调用时所需接口中包含的调用方法;
所述目标软件执行任务时所需接口中包含的方法。
21.根据权利要求13所述的方法,其特征在于,若所述mock方法包括所述目标软件对应的配置中心中保存的配置方法,所述预先配置的mock方法通过如下方法获取:
获取到代码仓库地址和所述配置中心的第一注解,将所述第一注解与预先保存的第二注解进行匹配;
若存在与所述第一注解匹配的第二注解,则从所述代码仓库地址对应的代码仓库中,确定包含该匹配的第二注解的类的信息以及所述类中包含的方法的方法信息;根据所述类的信息以及所述类中包含的方法的方法信息,确定所述mock方法并保存;
若不存在与所述第一注解匹配的第二注解,则将所述第一注解添加到所第二注解中;从所述代码仓库地址对应的代码仓库中,确定包含该第一注解的类的信息以及所述类中包含的方法的方法信息;根据所述类的信息以及所述类中包含的方法的方法信息,确定所述mock方法并保存。
22.根据权利要求13所述的方法,其特征在于,所述方法还包括:
确定已存储的录制数据的数量是否达到预设的存储阈值;
若确定达到所述存储阈值,则向所述目标设备发送停止录制请求;其中,所述停止录制请求用于指示所述目标设备停止录制所述原始录制数据。
23.一种测试***,其特征在于,所述测试***包括用于执行权利要求1-11任一所述方法的测试设备、以及用于执行权利要求12所述方法,和/或,权利要求13-22任一所述方法的引流设备。
24.一种测试装置,其特征在于,所述装置应用于测试设备,所述装置包括:
发送单元,用于发送回放请求至引流设备;其中,所述回放请求携带有调用信息,以指示所述引流设备根据所述调用信息发送测试数据;所述引流设备用于存储目标设备通过运行目标软件执行目标任务时录制的测试数据;所述调用信息包括所述目标设备的设备标识、所述目标软件的软件标识以及所述目标任务的任务标识;所述目标设备包括所述测试设备以及客户端设备中的至少一种;其中,所述引流设备用于若测试数据回放方式为虚拟mock方式,则针对所述测试数据中所包含的每个接口,从所述接口所包含的每个方法中,确定与预设的虚拟mock方法匹配的每个目标方法;从录制数据中,获取输入到该接口的第一输入参数信息以及所述每个目标方法的第二输入参数信息;将所述第一输入参数信息以及每个所述第二输入参数信息,确定为测试数据;若所述测试数据回放方式为正常回放方式,则针对所述测试数据中所包含的每个所述接口,则从录制数据中,获取输入到该接口的第一输入参数信息;将所述第一输入参数信息,确定为测试数据;
获取单元,用于获取所述引流设备发送的所述测试数据;其中,所述测试数据包括每个接口的输入参数信息;所述每个接口均为所述目标设备通过运行所述目标软件执行所述目标任务时所需的接口;
处理单元,用于基于所述测试数据,对待测试软件执行所述目标任务的情况进行测试。
25.根据权利要求24所述的装置,其特征在于,所述发送单元,还用于获取所述调用信息;根据所述调用信息和用于采集所述调用信息的页面对应的接口的类型,确定所述回放请求。
26.根据权利要求25所述的装置,其特征在于,所述发送单元,具体用于若所述页面所对应的接口的类型为超文本传输协议HTTP,则从控制controller层,根据所述调用信息,生成所述回放请求;或,若所述页面所对应的接口的类型为面向对象的编程语言JAVA,则通过反射的方式,根据所述调用信息,生成所述回放请求;或,若所述页面所对应的接口的类型为远程过程调用RPC,则通过泛化调用的方式,根据所述调用信息,生成所述回放请求。
27.根据权利要求24所述的装置,其特征在于,所述处理单元,还用于若所述目标任务为新增任务,且所述待测试软件为新增任务子软件,则根据获取到的测试人员输入的测试输入参数信息,对所述新增任务子软件执行所述新增任务的情况进行功能测试。
28.根据权利要求24或27所述的装置,其特征在于,所述获取单元,还用于若所述目标设备为所述测试设备,接收所述引流设备发送的开始录制请求;其中,所述开始录制请求用于指示所述目标设备录制所述目标软件执行所述目标任务时的原始录制数据;所述目标软件为新增任务子软件,或,组装有所述新增任务子软件的主软件;
所述装置还包括:录制单元;
所述录制单元,用于在通过运行所述目标软件执行所述目标任务时,录制原始录制数据;
所述发送单元,还用于将所述原始录制数据发送至所述引流设备,以使所述引流设备基于所述原始录制数据,获取所述测试数据。
29.根据权利要求28所述的装置,其特征在于, 所述获取单元,还用于获取所述引流设备发送的初始化文件;
所述装置还包括:初始化单元;
所述初始化单元,用于通过运行所述初始化文件,以实现初始化所述目标设备;
所述发送单元,还用于向所述引流设备发送初始化完成的通知信息。
30.根据权利要求29所述的装置,其特征在于,所述初始化单元,具体用于确定所述引流设备与所述目标设备之间的网络互通,并确定所述目标设备上的预设端口允许所述引流设备访问;登录所述初始化文件中所述目标设备对应的公共账号,并创建所述公共账号对应的存储空间;根据所述初始化文件中包含的脚本下载地址,下载脚本并保存在所述存储空间中;运行所述脚本,以下载用于录制所述测试数据所需的安装包并安装。
31.根据权利要求28所述的装置,其特征在于,所述处理单元,具体用于若所述目标任务为新增任务,且所述待测试软件为新增任务子软件,则根据从所述目标设备录制的测试数据,对所述新增任务子软件执行所述新增任务的情况进行功能测试;其中,所述目标设备包括所述测试设备;或,若所述目标任务为新增任务,且所述待测试软件为组装有所述新增任务子软件的主软件,则根据从所述目标设备录制的测试数据,对所述主软件执行所述新增任务的情况进行功能测试以及接口测试; 其中,所述目标设备包括所述测试设备;或,若所述目标任务为非新增任务,且所述待测试软件为组装有所述新增任务子软件的主软件,根据从目标设备录制到的测试数据,对所述主软件执行所述非新增任务的情况进行功能测试以及接口测试;其中,所述目标设备包括所述客户端设备。
32.根据权利要求24所述的装置,其特征在于,所述处理单元,具体用于从所述引流设备获取所述目标设备通过运行所述目标软件执行所述目标任务时的输出参数信息;并通过运行所述待测试软件,对所述测试数据进行处理,获取所述待测试软件执行所述目标任务时的实际输出参数信息;所述测试设备根据所述实际输出参数信息及所述输出参数信息,确定所述待测试软件的测试结果。
33.根据权利要求32所述的装置,其特征在于,所述处理单元,具体用于若所述测试数据回放方式为mock方式,针对所述每个接口,根据该接口中包含的每个目标方法分别对应的第二输入参数信息,从所述引流设备获取所述每个目标方法的第二输入参数信息分别对应的录制参数信息;根据所述接口包含的每个方法、所述每个目标方法的第二输入参数信息、以及每个第二输入参数信息分别对应的录制参数信息,确定该接口对应的处理流程;通过运行所述待测试软件,根据所述测试数据中的第一输入参数信息以及所述每个接口分别对应的处理流程,获取所述待测试软件执行所述目标任务时的实际输出参数信息。
34.一种测试数据回放装置,其特征在于,所述装置应用于引流设备,所述装置包括:
第一接收模块,用于接收测试设备发送的回放请求;其中,所述回放请求携带有调用信息,以指示所述引流设备根据所述调用信息发送测试数据;所述引流设备用于存储目标设备通过目标软件执行目标任务时录制的测试数据;所述调用信息包括所述目标设备的设备标识、所述目标软件的软件标识以及所述目标任务的任务标识;所述目标设备包括所述测试设备以及客户端设备中的至少一种;
第一处理模块,用于根据所述调用信息,从录制数据中获取所述测试数据;其中,所述测试数据包括每个接口的输入参数信息;所述每个接口均为所述目标设备通过运行所述目标软件执行所述目标任务时所需的接口;
第一发送模块,用于将所述测试数据发送至所述测试设备;
所述第一处理模块,具体用于若所述调用信息还包括测试数据回放方式,当所述测试数据回放方式为虚拟mock方式,则针对所述测试数据中所包含的每个所述接口,从所述接口所包含的每个方法中,确定与预设的虚拟mock方法匹配的每个目标方法;从录制数据中,获取输入到该接口的第一输入参数信息以及所述每个目标方法的第二输入参数信息;将所述第一输入参数信息以及每个所述第二输入参数信息,确定为测试数据;当所述测试数据回放方式为正常回放方式,则针对所述测试数据中所包含的每个所述接口,则从录制数据中,获取输入到该接口的第一输入参数信息;将所述第一输入参数信息,确定为测试数据。
35.一种录制数据录制装置,其特征在于,所述装置应用于引流设备,所述装置包括:
第二发送模块,用于向目标设备发送开始录制请求;其中,所述开始录制请求用于指示所述目标设备录制通过目标软件执行目标任务时的原始录制数据;所述目标设备包括测试设备以及客户端设备中的至少一种;
第二获取模块,用于获取所述目标设备发送的原始录制数据;所述原始录制数据包括输入到每个接口的第一输入参数信息;所述每个接口均为所述目标设备通过运行所述目标软件执行所述目标任务时所需的接口;
第二处理模块,用于根据所述原始录制数据,确定录制数据并存储,以使所述引流设备接收到所述测试设备发送的回放请求之后,根据所述回放请求中携带的调用信息,从录制数据中获取测试数据并发送至所述测试设备;其中,所述回放请求携带有调用信息,以指示所述引流设备根据所述调用信息发送测试数据;所述引流设备用于存储目标设备通过目标软件执行目标任务时录制的测试数据;所述调用信息包括所述目标设备的设备标识、所述目标软件的软件标识以及所述目标任务的任务标识;所述测试数据包括每个接口的输入参数信息;所述每个接口均为所述目标设备通过运行所述目标软件执行所述目标任务时所需的接口;
所述第二处理单元,具体用于针对所述原始录制数据所包含的每个所述接口,若从所述接口包含的每个方法中,确定存在与预先配置的虚拟mock方法匹配的目标方法,则获取所述目标方法对应的录制参数信息;将所述目标方法对应的第二输入参数信息、所述目标方法对应的录制参数信息、及所述原始录制数据均确定为所述录制数据;其中,任一目标方法对应的录制参数信息是录制所述原始录制数据时,根据所述目标方法以及所述第二输入参数信息,所确定的方法输出参数信息;若从所述接口包含的每个方法中,确定不存在与预先配置的虚拟mock方法匹配的目标方法,则将所述原始录制数据确定为所述录制数据。
36.根据权利要求35所述的装置,其特征在于, 所述第二获取模块,还用于获取添加至少一个安装有所述目标软件的设备为录制原始录制数据的目标设备的添加请求;
所述第二发送模块,还用于向所述目标设备发送初始化文件,以使所述目标设备通过运行所述初始化文件,实现初始化;
所述第二获取模块,还用于接收所述目标设备发送初始化完成的通知信息。
37.根据权利要求36所述的装置,其特征在于,所述第二发送模块,还用于将所述目标设备的设备标识发送至数据管理设备;
所述第二获取模块,还用于接收所述数据管理设备发送的所述目标设备的配置信息,以根据所述配置信息,实现所述引流设备与所述目标设备之间的数据交互;其中,所述配置信息包括所述目标设备所在的集群信息、所述目标设备的分布式应用程序协调服务组件zookeeper连接方式、所述目标设备的远程过程调用RPC的配置信息中的至少一种。
38.根据权利要求35所述的装置,其特征在于,所述第二处理单元,还用于若所述目标设备发送的所述原始录制数据为字节序列,对所述原始录制数据进行反序列化处理,以获取预设类型的原始录制数据;根据所述预设类型的原始录制数据,对所述原始录制数据进行更新。
39.根据权利要求35或38所述的装置,其特征在于,所述第二处理单元,还用于从所述原始录制数据中获取调用链路信息;根据所述调用链路信息中包含的调用链路标识,获取所述目标任务的任务状态信息;当根据所述任务状态信息,确定所述目标任务的任务状态为完成时,则获取所述目标设备在通过所述目标软件执行所述目标任务时的接口列表信息以及录制环境信息;将所述接口列表信息以及所述录制环境信息输出至展示设备,以使所述展示设备的显示器显示所述接口列表信息以及所述录制环境信息。
40.根据权利要求39所述的装置,其特征在于,所述第二处理单元,还用于若确定所述录制环境信息为线上,则根据录制环境信息为线上的每个原始录制数据中所包含的第一输入参数信息,对确定的每个所述原始录制数据进行去重处理。
41.根据权利要求35所述的装置,其特征在于,所述第二处理单元,具体用于获取设置mock方法的设置请求;根据所述设置请求中携带的每个方法所归属的类的信息以及方法信息,确定所述mock方法并保存。
42.根据权利要求35所述的装置,其特征在于,所述第二处理单元,具体用于若所述mock方法包括所述目标软件对应的配置中心中保存的配置方法,获取到代码仓库地址和所述配置中心的第一注解,将所述第一注解与预先保存的第二注解进行匹配;若存在与所述第一注解匹配的第二注解,则从所述代码仓库地址对应的代码仓库中,确定包含该匹配的第二注解的类的信息以及所述类中包含的方法的方法信息;根据所述类的信息以及所述类中包含的方法的方法信息,确定所述mock方法并保存;若不存在与所述第一注解匹配的第二注解,则将所述第一注解添加到所第二注解中;从所述代码仓库地址对应的代码仓库中,确定包含该第一注解的类的信息以及所述类中包含的方法的方法信息;根据所述类的信息以及所述类中包含的方法的方法信息,确定所述mock方法并保存。
43.根据权利要求35所述的装置,其特征在于,所述第二处理单元,还用于确定已存储的录制数据的数量是否达到预设的存储阈值;
所述第二发送单元,还用于若所述第二处理单元确定达到所述存储阈值,则向所述目标设备发送停止录制请求;其中,所述停止录制请求用于指示所述目标设备停止录制所述原始录制数据。
44.一种电子设备,其特征在于,所述电子设备至少包括处理器和存储器,所述处理器用于执行存储器中存储的计算机程序时实现如权利要求1-11中任一所述测试方法的步骤,或实现如权利要求12所述测试数据回放方法的步骤,或实现如权利要求13-22中任一所述录制数据录制方法的步骤。
45.一种计算机可读存储介质,其特征在于,其存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-11中任一所述测试方法的步骤,或实现如权利要求12所述测试数据回放方法的步骤,或实现如权利要求13-22中任一所述录制数据录制方法的步骤。
CN202111025552.4A 2021-09-02 2021-09-02 测试、数据回放及录制方法、***、装置、设备及介质 Active CN113742228B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111025552.4A CN113742228B (zh) 2021-09-02 2021-09-02 测试、数据回放及录制方法、***、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111025552.4A CN113742228B (zh) 2021-09-02 2021-09-02 测试、数据回放及录制方法、***、装置、设备及介质

Publications (2)

Publication Number Publication Date
CN113742228A CN113742228A (zh) 2021-12-03
CN113742228B true CN113742228B (zh) 2023-12-15

Family

ID=78734847

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111025552.4A Active CN113742228B (zh) 2021-09-02 2021-09-02 测试、数据回放及录制方法、***、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN113742228B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114553929B (zh) * 2022-01-10 2024-04-12 多点生活(成都)科技有限公司 录制调用动态Mock的录制回放增强方法和装置
CN114710542B (zh) * 2022-03-23 2023-12-26 中国工商银行股份有限公司 一种基于rpc的泛化路由mock方法及装置

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111625452A (zh) * 2020-05-22 2020-09-04 上海哔哩哔哩科技有限公司 流量回放方法和***
CN111694757A (zh) * 2020-08-04 2020-09-22 北京字节跳动网络技术有限公司 应用程序的测试方法、装置、电子设备及计算机可读存储介质
CN111862869A (zh) * 2020-05-25 2020-10-30 青岛山景虚拟现实研究院 一种飞行模拟器座舱显示设备自动测试方法及***
WO2020233331A1 (zh) * 2019-05-20 2020-11-26 深圳壹账通智能科技有限公司 用户界面自动化测试方法、装置及计算机可读存储介质
CN112559361A (zh) * 2020-12-22 2021-03-26 京东数字科技控股股份有限公司 流量回放方法、装置、设备及计算机可读介质
CN112799940A (zh) * 2021-01-26 2021-05-14 中国工商银行股份有限公司 回归测试方法、装置、计算机***和计算机可读存储介质
CN112860569A (zh) * 2021-02-23 2021-05-28 腾讯科技(深圳)有限公司 一种自动化测试方法、装置、电子设备和存储介质
WO2021135809A1 (zh) * 2019-12-30 2021-07-08 北京金山云网络技术有限公司 一种测试方法、装置、终端设备及存储介质
CN113315828A (zh) * 2021-05-25 2021-08-27 平安银行股份有限公司 一种流量录制方法、装置及流量录制设备、存储介质

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020233331A1 (zh) * 2019-05-20 2020-11-26 深圳壹账通智能科技有限公司 用户界面自动化测试方法、装置及计算机可读存储介质
WO2021135809A1 (zh) * 2019-12-30 2021-07-08 北京金山云网络技术有限公司 一种测试方法、装置、终端设备及存储介质
CN111625452A (zh) * 2020-05-22 2020-09-04 上海哔哩哔哩科技有限公司 流量回放方法和***
CN111862869A (zh) * 2020-05-25 2020-10-30 青岛山景虚拟现实研究院 一种飞行模拟器座舱显示设备自动测试方法及***
CN111694757A (zh) * 2020-08-04 2020-09-22 北京字节跳动网络技术有限公司 应用程序的测试方法、装置、电子设备及计算机可读存储介质
CN112559361A (zh) * 2020-12-22 2021-03-26 京东数字科技控股股份有限公司 流量回放方法、装置、设备及计算机可读介质
CN112799940A (zh) * 2021-01-26 2021-05-14 中国工商银行股份有限公司 回归测试方法、装置、计算机***和计算机可读存储介质
CN112860569A (zh) * 2021-02-23 2021-05-28 腾讯科技(深圳)有限公司 一种自动化测试方法、装置、电子设备和存储介质
CN113315828A (zh) * 2021-05-25 2021-08-27 平安银行股份有限公司 一种流量录制方法、装置及流量录制设备、存储介质

Also Published As

Publication number Publication date
CN113742228A (zh) 2021-12-03

Similar Documents

Publication Publication Date Title
CN110532020B (zh) 一种微服务编排的数据处理方法、装置及***
CN113742228B (zh) 测试、数据回放及录制方法、***、装置、设备及介质
CN109189680B (zh) 一种应用发布和配置的***及方法
CN106648556B (zh) 前后端集成开发测试的方法及装置
US11755461B2 (en) Asynchronous consumer-driven contract testing in micro service architecture
CN107608901B (zh) 基于Jmeter的测试方法及装置、存储介质、电子设备
CN109462507B (zh) 配置更新方法、装置、***及电子设备
CN113448837A (zh) 开发及测试环境部署方法、***、电子设备及介质
CN109542444B (zh) Java应用的监控方法、装置、服务器和存储介质
Rattanapoka et al. An MQTT-based IoT cloud platform with flow design by Node-RED
CN111897738A (zh) 基于原子服务的自动化测试方法及装置
US11341030B2 (en) Scriptless software test automation
KR20150133902A (ko) 소프트웨어 제품 라인에 기반한 서비스 개발 시스템 및 방법
CN114640614B (zh) Rpc接口自动化测试方法、***、电子设备、介质及产品
CN107193734B (zh) 用于移动Web应用的重放方法及重放***
CN110727646B (zh) ***日志的格式转换方法、装置、电子设备及计算机介质
CN114036060A (zh) 用于芯片测试的方法、***和计算机可读介质
US20160275002A1 (en) Image capture in application lifecycle management for documentation and support
CN113515452A (zh) 应用的自动测试方法、***、电子设备及存储介质
CN112000366B (zh) 基于代码生成器的***参数配置方法及装置
US20240160559A1 (en) Automated decoupling of unit tests
CN113722236B (zh) 游戏调试方法、装置、设备、存储介质
CN109445964B (zh) 外部***中与sap***进行数据传输的方法及装置
CN116028138B (zh) 应用发布方法及装置
US11734155B2 (en) Fully traceable and intermediately deterministic rule configuration and assessment framework

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