CN118113545A - 测试监测方法、装置、计算机设备及计算机可读存储介质 - Google Patents
测试监测方法、装置、计算机设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN118113545A CN118113545A CN202211514451.8A CN202211514451A CN118113545A CN 118113545 A CN118113545 A CN 118113545A CN 202211514451 A CN202211514451 A CN 202211514451A CN 118113545 A CN118113545 A CN 118113545A
- Authority
- CN
- China
- Prior art keywords
- test
- information
- configuration information
- engineering
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 732
- 238000012544 monitoring process Methods 0.000 title claims abstract description 142
- 238000000034 method Methods 0.000 title claims abstract description 135
- 238000003860 storage Methods 0.000 title claims abstract description 18
- 238000005070 sampling Methods 0.000 claims abstract description 33
- 230000008569 process Effects 0.000 claims abstract description 20
- 230000003213 activating effect Effects 0.000 claims abstract description 10
- 238000004590 computer program Methods 0.000 claims abstract description 8
- 230000006870 function Effects 0.000 claims description 29
- 230000015654 memory Effects 0.000 claims description 25
- 238000004891 communication Methods 0.000 claims description 19
- 230000004913 activation Effects 0.000 claims description 15
- 230000007547 defect Effects 0.000 claims description 15
- 230000004044 response Effects 0.000 claims description 15
- 238000012545 processing Methods 0.000 claims description 9
- 238000012795 verification Methods 0.000 claims description 5
- 238000012806 monitoring device Methods 0.000 abstract description 6
- 238000011156 evaluation Methods 0.000 abstract description 2
- 238000007726 management method Methods 0.000 description 197
- 238000004458 analytical method Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 13
- 238000009434 installation Methods 0.000 description 8
- 239000003795 chemical substances by application Substances 0.000 description 7
- 239000008186 active pharmaceutical agent Substances 0.000 description 5
- 230000000007 visual effect Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000002360 preparation method Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000000977 initiatory effect Effects 0.000 description 3
- 230000001364 causal effect Effects 0.000 description 2
- 235000019800 disodium phosphate Nutrition 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 125000002015 acyclic group Chemical group 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000003416 augmentation Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000008014 freezing Effects 0.000 description 1
- 238000007710 freezing Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000004549 pulsed laser deposition Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 238000009666 routine test Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/32—Monitoring with visual or acoustical indication of the functioning of the machine
- G06F11/323—Visualisation of programs or trace data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/3668—Testing of software
- G06F11/3672—Test management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请提供了一种测试监测方法、装置、计算机设备、计算机可读存储介质及计算机程序产品;方法包括:获取待启动的测试监测任务,并获取所述测试监测任务包括的目标测试工程;在检测到测试监测任务启动时,激活目标测试工程上挂载的测试管理客户端;获取测试管理客户端基于所述目标测试工程的配置信息采集到的目标测试工程的测试信息,配置信息包括采样配置信息、网络接口配置信息和用于字节码增强的待监测的方法切面信息;确定所述目标测试工程的调用关系链,并在监测结果显示界面呈现目标测试工程的测试信息和调用关系链。通过本申请,能够对测试工程进行监测,将采集到的测试信息和调用关系链进行可视化显示,实现测试过程的精准化、可评测。
Description
技术领域
本申请涉及测试技术,尤其涉及一种测试监测方法、装置、计算机设备及计算机可读存储介质。
背景技术
目前在完成软件开发之后,需要对完成开发的软件程序进行测试,以确定开发出的软件程序是否能够完成预期的功能。在对Java语音编写的软件程序进行测试时,先将软件处程序的源代码编译成字节码,通过对字节码进行修改以进行测试分析,由于相关技术中提供的测试分析方法需要侵入代码,因此不仅人力成本高,效率低,并且缺少清晰、条理的组织方式去展示核心链路和关键节点的处理逻辑和层次。
发明内容
本申请实施例提供一种测试监测方法、装置、计算机设备及计算机可读存储介质,能够对测试工程进行监测,将采集到的测试信息和调用关系链进行可视化显示,实现测试过程的精准化、可评测。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种测试监测方法,所述方法包括:
获取待启动的测试监测任务,并获取所述测试监测任务包括的目标测试工程;
在检测到所述测试监测任务启动时,激活所述目标测试工程上挂载的测试管理客户端;
获取所述测试管理客户端基于所述目标测试工程的配置信息采集到的所述目标测试工程的测试信息,所述配置信息包括采样配置信息、网络接口配置信息和用于字节码增强的待监测的方法切面信息;
确定所述目标测试工程的调用关系链,并在所述监测结果显示界面呈现所述目标测试工程的测试信息和所述调用关系链。
本申请实施例提供一种测试监测方法,所述方法包括:
响应于测试管理服务器发送的激活指令,获取测试监测任务包括的目标测试工程的配置信息;
基于所述配置信息对所述目标测试工程进行字节码增强,并采集所述目标测试工程的测试信息;
将所述目标测试工程的测试信息发送至测试管理服务器。
本申请实施例提供一种测试监测装置,包括:
第一获取模块,用于获取待启动的测试监测任务,并获取所述测试监测任务包括的目标测试工程;
第一激活模块,用于在检测到所述测试监测任务启动时,激活所述目标测试工程上挂载的测试管理客户端;
第二获取模块,用于获取所述测试管理客户端基于所述目标测试工程的配置信息采集到的所述目标测试工程的测试信息,所述配置信息包括采样配置信息、网络接口配置信息和用于字节码增强的待监测的方法切面信息;
第一呈现模块,用于确定所述目标测试工程的调用关系链,并在所述监测结果显示界面呈现所述目标测试工程的测试信息和所述调用关系链。
本申请实施例提供一种测试监测装置,包括:
第三获取模块,用于响应于测试管理服务器发送的激活指令,获取测试监测任务包括的目标测试工程的配置信息;
数据采集模块,用于基于所述配置信息对所述目标测试工程进行字节码增强,并采集所述目标测试工程的测试信息;
第一发送模块,用于将所述目标测试工程的测试信息发送至测试管理服务器。
本申请实施例提供一种计算机设备,所述计算机设备包括:
存储器,用于存储计算机可执行指令;
处理器,用于执行所述存储器中存储的计算机可执行指令时,实现本申请实施例提供的测试监测方法。
本申请实施例提供一种计算机可读存储介质,存储有计算机可执行指令,用于被处理器执行时,实现本申请实施例提供的测试监测方法。
本申请实施例提供一种计算机程序产品,包括计算机程序或计算机可执行指令,述计算机程序或计算机可执行指令被处理器执行时,实现本申请实施例提供的测试监测方法。
本申请实施例具有以下有益效果:
在获取到待启动的测试监测任务之后,获取所述测试监测任务包括的目标测试工程,当检测到所述测试监测任务启动时,激活所述目标测试工程上挂载的测试管理客户端,以通知测试管理客户端进行测试信息的录制和采集,然后获取所述测试管理客户端基于所述目标测试工程的配置信息采集到的所述目标测试工程的测试信息,所述配置信息至少包括自定义的、用于字节码增强的配置信息,最后在所述监测结果显示界面呈现所述目标测试工程的测试信息,由于在本申请实施例中,进行字节码增强的配置信息是可以自定义的,也即支持核心逻辑函数的自定义配置,只对需要关注的关键函数节点进行测试信息的监测,能够降低其他无关函数带来的干扰,提高测试信息的精准性,另外监测到的测试信息可以通过可视化的形式显示,能够提高测试分析的效率。
附图说明
图1是本申请实施例提供的测试监测系统100的架构示意图;
图2是本申请实施例提供的测试管理服务器400的结构示意图;
图3A是本申请实施例提供的测试监测方法的一种实现流程示意图;
图3B为本申请实施例提供的监测结果显示界面示意图;
图4为本申请实施例提供的测试前期准备工作的实现流程示意图;
图5是本申请实施例提供的测试监测方法的另一种实现流程示意图;
图6为本申请实施例提供的测试监测方法的实现时序示意图;
图7为本申请实施例提供的测试管理客户端挂载到被测java进程的实现方式示意图;
图8为本申请实施例提供的trace记录存储结构和最终视图化呈现的过程示意图;
图9为本申请实施例提供的测试分析系统的组成结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)字节码(Byte-code)是一种包含执行程序,由一序列op代码/数据对组成的二进制文件,是一种中间码。
2)字节码增强,Java代码编译后会生成固定格式的字节码(.class文件)供JVM使用。字节码增强的实质就是在编译期或运行期对字节码进行插桩,以便在运行期影响程序的执行行为。
3)OpenTracing,通过提供平台无关、厂商无关的API,使得开发人员能够方便的添加(或更换)监测系统的实现。一个链路(trace)代表了一个事务或者流程在(分布式)系统中的执行过程。
本申请实施例提供一种测试监测方法、装置、设备和计算机可读存储介质,能够解决相关技术中测试分析无法聚焦于核心逻辑,实用性差以及可视化能力差的问题。下面说明本申请实施例提供的计算机设备的示例性应用,本申请实施例提供的计算机设备可以实施为笔记本电脑,平板电脑,台式计算机,机顶盒,移动设备(例如,移动电话,便携式音乐播放器,个人数字助理,专用消息设备,便携式游戏设备)等各种类型的用户终端,也可以实施为服务器。下面,将说明设备实施为服务器时示例性应用。
参见图1,图1是本申请实施例提供的测试监测系统100的架构示意图,如图1所示,该测试监测系统100包括测试环境服务器200、网络300、测试管理服务器400和测试管理客户端500,其中,测试管理客户端500安装在测试环境服务器200上,测试管理服务器400和测试环境服务器200通过网络300建立有通信连接,网络300可以是广域网或者局域网,又或者是二者的组合。
测试管理服务器400在前期准备工作阶段可以首先添加并配置工程实例,然后设置进行字节码增强的配置信息。在测试环境服务器200上安装测试管理客户端500,测试管理客户端500在安装完成后,会自动上报测试管理服务器400,完成注册,之后从测试管理服务器400拉取工程实例的配置信息,以在测试监测任务启动后,测试管理客户端500根据配置信息对目标测试工程进行字节码增强,并完成测试埋点。
在需要进行测试监测任务时,测试管理服务器400响应于任务创建操作,创建测试监测任务,并从已注册的工程实例中选择出本次测试监测任务包括的目标测试工程,在启动测试监测任务后,激活目标测试工程,并将测试管理客户端500挂载到目标测试工程中,以使得测试管理客户端对目标测试工程的测试信息进行采集,测试管理客户端500将采集到的测试信息发送至测试管理服务器400,测试管理服务器400在测试管理界面呈现目标测试工程的测试信息,以供测试人员能够直观地查看到目标测试工程的测试情况,提高测试分析效率。
在一些实施例中,测试环境服务器200和测试管理服务器400可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。测试管理服务器400和测试环境服务器200可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例中不做限制。
参见图2,图2是本申请实施例提供的测试管理服务器400的结构示意图,图2所示的终端400包括:至少一个处理器410、存储器450、至少一个网络接口420和用户接口430。终端400中的各个组件通过总线系统440耦合在一起。可理解,总线系统440用于实现这些组件之间的连接通信。总线系统440除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统440。
处理器410可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
用户接口430包括使得能够呈现媒体内容的一个或多个输出装置431,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口430还包括一个或多个输入装置432,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
存储器450可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器450可选地包括在物理位置上远离处理器410的一个或多个存储设备。
存储器450包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Me mory),易失性存储器可以是随机存取存储器(RAM,Random Access Memor y)。本申请实施例描述的存储器450旨在包括任意适合类型的存储器。
在一些实施例中,存储器450能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统451,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块452,用于经由一个或多个(有线或无线)网络接口420到达其他电子设备,示例性的网络接口420包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等;
呈现模块453,用于经由一个或多个与用户接口430相关联的输出装置431(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
输入处理模块454,用于对一个或多个来自一个或多个输入装置432之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本申请实施例提供的装置可以采用软件方式实现,图2示出了存储在存储器450中的测试监测装置455,其可以是程序和插件等形式的软件,包括以下软件模块:第一获取模块4551、第一激活模块4552、第二获取模块4553和第一呈现模块4554,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
在另一些实施例中,本申请实施例提供的装置可以采用硬件方式实现,作为示例,本申请实施例提供的装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的测试监测方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application Specif ic Integrated Circuit)、DSP、可编程逻辑器件(PLD,Programmable Logic De vice)、复杂可编程逻辑器件(CPLD,ComplexProgrammable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable GateArray)或其他电子元件。
将结合本申请实施例提供的测试管理服务器的示例性应用和实施,说明本申请实施例提供的测试监测方法。
下面,说明本申请实施例提供的测试监测方法,如前所述,实现本申请实施例的测试监测方法的计算机设备可以是终端、服务器,又或者是二者的结合。因此下文中不再重复说明各个步骤的执行主体。
参见图3A,图3A是本申请实施例提供的测试监测方法的一种实现流程示意图,将结合图3A示出的步骤进行说明。
在步骤101中,获取待启动的测试监测任务,并获取所述测试监测任务包括的目标测试工程。
在一些实施例中,首先根据测试需求创建测试监测任务,并预先设置测试监测任务中包括的目标测试工程。一个测试监测任务中可以包括一个或多个目标测试工程,目标测试工程为需要监测的测试工程。在本申请实施例中,测试工程为Java工程。
在步骤102中,在检测到所述测试监测任务启动时,激活所述目标测试工程上挂载的测试管理客户端。
在一些实施例中,当测试管理服务器接收到任务启动操作时,响应于该任务启动操作,启动该测试监测任务。在检测到测试监测任务启动时,测试管理服务器会向目标测试工程上挂载的测试管理客户端发送激活命令,以激活该测试管理客户端。其中,测试管理客户端安装在该目标测试工程所在测试环境服务器上。测试环境服务器是用于执行各个被测试的测试工程的服务器,而测试管理服务器是对测试任务进行监测、管理的服务器。在本申请实施例中,激活目标测试工程上挂载的测试管理客户端,是为了通知该测试管理客户端对目标测试工程进行监测,基于目标测试工程对应的配置信息,录制并采集目标测试工程上的测试信息。
在步骤103中,获取所述测试管理客户端基于所述目标测试工程的配置信息采集到的所述目标测试工程的测试信息。
其中,配置信息包括采样配置信息、网络接口配置信息和用于字节码增强的待监测的方法切面信息。通过待监测的方法切面信息可以确定本次测试监测任务所关注的关键函数节点,从而使得测试管理客户端基于待监测的方法切面信息完成埋点逻辑,实现字节码增强,而不需要侵入开发源代码,如此能够降低测试分析的人工成本,提高测试分析的效率。在一些实施例中,目标测试工程的配置信息还可以包括采样配置信息和网络接口配置信息。其中,采样配置信息可以包括是否进行采样、进行采样时采用的采样率。
在一些实施例中,在测试工程的执行过程中,测试数据以请求的形式发送至测试工程对应的被测服务,这就是一条测试信息(或者成为测试流量)。测试信息的内容包括流量标识、目标测试工程对应的主机IP地址、目标测试工程的测试环境信息、测试执行路径、中间经过的函数、对下游调用时传送的请求、返回数据等。
在步骤104中,确定所述目标测试工程的调用关系链,并在所述监测结果显示界面呈现所述目标测试工程的测试信息和调用关系链。
在本申请实施例中,确定目标测试工程的调用关系链在实现时,首先获取所述目标测试工程在执行过程中各个预设的目标函数节点之间的调用层级关系信息,然后基于所述调用层级关系生成所述目标测试工程对应的调用关系链。
在一些实施例中,预设的目标函数节点包括测试工程中一些个性化的关键函数节点,可以是根据测试工程的配置信息中待监测的方法切面信息确定的,预设的目标函数节点还可以包括测试工程通用的基础组件(如访问数据库,对外部模块发起HTTP请求等)对应的函数节点。
一条调用关系链代表了一个事务或者流程在(分布式)系统中的执行过程,调用关系链为有向无环图,所述各个预设的目标函数节点为所述有向无环图中的顶点,所述有向无环图中的连接边连接的两个顶点之间存在调用关系。在一些实施例中,调用关系链中的目标函数节点又称为span,一个span代表系统中具有开始时间和执行时长的逻辑运行单元,表示一个函数调用,由全局唯一的SpanID标识。span之间通过嵌套或者顺序排列建立逻辑因果关系,一个span可以和一个或者多个span间存在因果关系。
在一些实施例中,通过OpenTracing标准规范来记录目标函数节点之间的调用层级关系,通过目标函数节点之间的调用层级关系,可以确定出具有调用关系的目标函数节点,并建立具有调用关系的目标函数之间的连接边,从而构建出调用关系链。
目标测试工程的测试信息和调用关系链是通过可视化的形式呈现在监测结果显示界面,图3B为本申请实施例提供的监测结果显示界面示意图,如图3B所示,在监测结果显示界面上呈现有流量ID、创建时间、录制时间、应用名称、环境标识、主机IP地址等。在图3B中通过有向无环图的形式呈现有关键函数的调用关系链301,从而能够清晰、有条理地展示出核心链路和关键节点的处理逻辑和层次,能够提高测试分析效率。
在本申请实施例中,在获取到待启动的测试监测任务之后,获取所述测试监测任务包括的目标测试工程,当检测到所述测试监测任务启动时,激活所述目标测试工程上挂载的测试管理客户端,以通知测试管理客户端进行测试信息的录制和采集,然后获取所述测试管理客户端基于所述目标测试工程的配置信息采集到的所述目标测试工程的测试信息,所述配置信息至少包括自定义的、用于字节码增强的配置信息,最后在所述监测结果显示界面呈现所述目标测试工程的测试信息,由于在本申请实施例中,进行字节码增强的配置信息是可以自定义的,也即支持核心逻辑函数的自定义配置,只对需要关注的关键函数节点进行测试信息的监测,能够降低其他无关函数带来的干扰,提高测试信息的精准性,另外监测到的测试信息可以通过可视化的形式显示,能够提高测试分析的效率。
在一些实施例中,在步骤S101之前还可以通过图4所示的步骤完成前期准备工作,包括添加和配置工程实例、创建测试监测任务等,以下结合图4对各个步骤进行说明。
在步骤001中,测试管理服务器响应于接收到的实例添加操作,获取待添加的测试工程,将所述待添加的测试工程添加至工程实例集合。
在本申请实施例中,将测试工程添加至测试管理服务器,对于测试管理平台来说,一个测试工程即为一个工程实例。在测试管理服务器通过web界面接收实例添加操作,并获取待添加的测试工程。在将待添加的测试工程添加至工程实例集合时,获取待添加的测试工程对应的应用名和测试环境服务器的IP地址,进而以将待添加的测试工程以“实例=应用名+服务器IP”的维度添加至工程实例集合。
在步骤002中,测试管理服务器获取待添加的工程实例的配置信息。
其中,配置信息包括采样配置信息、网络接口配置信息和待监测的方法切面信息。采样配置信息可以包括是否进行采样、进行采样时采用的采样率。当是否进行采样对应的参数“sampled”为false时,表示不进行采样,也即在进行测试信息采集时,测试管理客户端录制(或称为采集)所有流量。当“samp led”为ture时,说明进行采样,此时需要进一步设置采样率“sampleRate”。采样率表征进行测试信息采集时的采集频率,采集率为正整数,例如可以为10、100、1000等。如sampleRate=1000,则测试管理客户端采样率为1/1000,也即每1000条测试信息中采集一条测试信息。
因为被测服务一般是以HTTP接口的形式提供服务的,一个测试工程对应的服务被很多HTTP接口调用,而在一次测试监测任务中,只需要关注本次测试相关的HTTP接口。因此在本申请实施例中,网络接口配置信息一般是指HTTP接口配置信息,用来指定测试管理客户端录制的HTTP接口,以避免采集到不是本次测试监测任务相关的测试信息。
通过待监测的方法切面信息可以确定本次测试监测任务所关注的关键函数节点,从而使得测试管理客户端基于待监测的方法切面信息完成埋点逻辑,实现字节码增强。在实现时通过待监测的方法切面信息指定测试管理客户端监测的方法切面,以使得测试管理客户端在启动后基于待检测的方法切面信息对应的方法时通过监测类进行埋点(插桩)。
在步骤003中,测试环境服务器响应于测试管理客户端的安装操作,安装测试管理客户端。
在一些实施例中,测试环境服务器中存储有测试管理客户端的安装程序,测试环境服务器接收针对安装程序的安装操作,并响应该安装操作将测试管理客户端安装在测试环境服务器对应的安装路径下。
在步骤004中,在确定测试管理客户端安装完成后,测试管理客户端向测试管理服务器发送注册请求。
其中,注册请求中携带有所述测试管理客户端的通信端口信息、测试管理客户端的标识信息和测试管理客户端所在测试环境服务器的IP地址。
在步骤005中,测试管理服务器获取测试管理客户端的注册请求,基于所述测试管理客户端的通信端口信息,对所述测试管理客户端进行注册处理。
在本申请实施例中,测试管理服务器建立测试管理客户端的标识信息和通信端口号的对应关系,并存储该对应关系,以在后续需要向测试管理客户端发送数据时,通过该对应关系确定通信端口号,并利用该通信端口号进行数据传输。
在步骤006中,测试管理服务器在所述测试管理客户端注册完成后,确定测试管理客户端对应的工程实例。
在一些实施例中,测试管理服务器在对测试管理客户端注册完成后,获取测试管理客户端所在测试环境服务器的IP地址,然后基于该测试环境服务器的IP地址确定测试管理客户端对应的工程实例。由于在注册工程实例时,是以“实例=应用名+服务器IP”的维度添加的,因此将服务器IP为该测试环境服务器IP的工程实例确定为该测试管理客户端对应的工程实例。
在步骤007中,测试管理服务器将该测试管理客户端对应的工程实例的配置信息发送至所述测试管理客户端。
举例来说,测试管理服务器上添加了10个工程用例,分别为工程用例1至10,其中,工程用例1至5对应的测试工程是运行于该测试管理客户端所在测试环境服务器中的,那么在步骤008中,测试管理服务器将工程用例1至5对应的配置信息发送至该测试管理客户端。
在步骤008中,测试管理客户端接收测试管理服务器发送的配置信息,并确定所述配置信息对应的测试工程。
在一些实施例中,测试管理服务器中每个配置信息对应有工程用例标识,由于工程用例与测试工程是一一对应的,测试管理服务器在向测试管理客户端发送配置信息时,会同步每个待发送的配置信息对应的测试工程标识,测试管理客户端在接收到多个配置信息后,可以基于每个配置信息对应的测试工程标识,确定各个配置信息对应的测试工程。
在步骤009中,测试管理客户端基于所述配置信息对所述测试工程进行字节码增强。
在一些实施例中,测试管理客户端基于所述待监测的方法切面信息对所述测试工程的字节码进行埋点处理。在实现时,测试管理客户端实现JVM提供的Instrumentation接口,对已经加载的类进行字节码增强。Instrumentation是JVM提供的可以在运行时动态修改已加载类的基础库,在Instrumentation接口中提供了多个应用程序界面(API,Application Program Interface)用来管理和操作字节码。其中addTransformer接口用于注册字节码转换器,当注册一个字节码转换器后,所有的类加载都会经过字节码转换器进行处理。在本申请实施例中,通过此项技术对被测工程的字节码进行动态增强。这里定义一个监测类(Spy)专门用于代码增强埋点,将插入Spy类到字节码中,当待监测方法切面对应的方法被执行时,Spy类通过反射的方式调用测试管理客户端中的埋点逻辑,完成埋点处理。
在步骤010中,测试管理服务器响应于接收到的任务创建操作,创建测试监测任务。
当基于一个测试需求提出测试请求,那么此时需要创建测试监测任务,在实现时,测试管理服务器响应于接收到的任务创建操作,创建测试监测任务,在一些实施例中,在创建测试监测任务后,还可以设置本次测试监测任务的标识,并且会记录测试监测任务的创建时间。
在步骤011中,测试管理服务器响应于接收到的工程选择操作,从工程实例集合中确定所述测试监测任务包含的目标测试工程。
由于一个测试需求可能涉及对多个测试工程的测试,因此一个测试监测任务中可能需要包括多个测试工程。在测试管理服务器中已经预先添加多个测试工程,一个测试工程注册到测试管理平台,对于测试管理平台来说即添加了一个工程实例至工程实例集合中。但是在一次测试监测任务中,并不需要对已添加的工程实例集合中的所有测试工程进行监测,因此在创建好本次测试监测任务后,可以根据实际需求,从工程实例集合中选择出本次测试监测任务所关注的测试工程。
通过上述步骤S001至步骤S011,测试管理服务器在进行测试监测之前,首先添加工程实例,并对进行测试监测所需要的配置信息进行设置,在完成配置信息的设置之后,测试管理服务器将配置信息发送至安装在测试环境服务器上的测试管理客户端,从而使得测试管理客户端能够利用配置信息对测试工程的字节码进行增强。
在一些实施例中,如图4所示,在步骤011之后,执行步骤101和步骤102,其中,在步骤102中的激活所述目标测试工程上挂载的测试管理客户端,可以是向测试管理客户端发送激活指令,以激活目标测试工程上挂载的测试管理客户端,之后测试管理客户端执行下述步骤201和步骤203,下面结合图4进行说明。
在步骤201中,测试管理客户端响应于测试管理服务器发送的激活指令,确定所述激活指令对应的目标测试工程。
在一些实施例中,激活指令中包括目标测试工程的标识,测试管理客户端基于目标测试工程的标识确定激活指令对应的目标测试工程。
在步骤202中,测试管理客户端基于目标测试工程的配置信息采集目标测试工程的测试信息。
在一些实施例中,测试管理客户端基于所述目标测试工程的网络接口配置信息确定待监测的网络接口,按照所述目标测试工程的采样配置信息采集通过所述待监测的网络接口传输的测试信息。
在步骤203中,测试管理客户端将所述目标测试工程的测试信息发送至测试管理服务器。
在一些实施例中,测试管理客户端通过安装时设置的通信端口信息对应的通信链路将目标测试工程的测试信息发送至测试管理服务器。
继续参考图4,在步骤203之后执行步骤103和步骤104,测试管理服务器在接收到目标测试工程的测试信息后,在监测结果显示界面呈现测试信息。
通过上述步骤201至步骤203,测试管理客户端在接收到激活指令后,基于目标测试工程的配置信息采集所述目标测试工程的测试信息,由于目标测试工程中的配置信息中限定了网络接口信息,仅采集配置信息中规定的网络接口信息的网络接口传输的测试信息,如此可以避免采集到不是本次测试监测任务关注的网络接口传输的测试信息带来的数据噪声,能够提高测试信息的精准性。
在一些实施例中,在完成对工程实例的配置信息的设置之后,还可以对某个或者某些工程实例的配置信息进行修改,在实现时首先响应于接收到的实例选择操作,确定待更新的工程实例,然后接收针对所述工程实例的信息更新操作,响应于所述信息更新操作,对所述待更新的工程实例的配置信息进行更新,得到更新后的配置信息,其中,对所述待更新的工程实例的配置信息进行更新,包括以下至少之一:修改所述配置信息中的采样率、修改所述网络接口配置信息、增加待监测的方法切面信息、删除待监测的方法切面信息,最后存储所述待更新的工程实例的更新后的配置信息。如此,能够根据监测需求动态修改工程实例的配置信息,尤其能够随时动态增加或删减测试关注的方法切面信息,提高测试监测的可扩展性,从而提升测试效率。
在一些实施例中,测试管理服务器存储更新后的配置信息之后,将更新后的配置信息发送至测试管理客户端,测试管理客户端基于所述更新后的配置信息进行信息更新,在实现时,测试管理服务器在将更新后的测试配置信息发送至测试管理客户端时,会携带该更新后的测试配置信息对应的测试工程的标识,测试管理客户端基于测试工程的标识,对相应的测试工程的配置信息进行更新。进而测试管理客户端判断更新后的配置信息中是否包括新增的待监测方法切面信息,当所述更新后的配置信息中包括新增的待监测方法切面信息,将预设的监测类增加至所述待监测方法切面信息对应的方法中,在执行所述待监测方法切面信息对应的方法时,利用所述监测类基于所述待监测方法切面信息进行埋点。测试管理客户端还可以判断更新后的配置信息中是否包括待删除的待监测测方法切面信息,当更新后的配置信息中包括待删除的待监测方法切面信息,那么将待删除的待监测方法切面信息对应方法中的监测类删除,从而取消在该方法中的埋点。如此,能够动态增加或删减测试关注的方法切面,保证字节码增强实时生效,提升测试效率。
在一些实施例中,测试管理客户端在安装并启动后,会挂载至测试管理客户端所在的测试环境服务器中运行的各个测试工程上。其中将测试管理客户端挂载至所述测试工程至少可以有以下两种实现方式:第一、获取所述测试工程的启动参数,基于所述启动参数,将所述测试管理客户端挂载至所述测试工程。
在本申请实施例中,测试工程可以是Java测试工程。测试工程启动时,通过启动参数-javaagent进行加载。javaagent是java命令的一个参数,可以用于指定一个jar包。当Java虚拟机(JVM,Java Virtual Machine)启动时,在执行main函数之前,JVM会先运行-javaagent所指定jar包内的逻辑。在本申请实施例中,测试管理客户端是以jar包的形式挂载在测试工程上。
第二、利用预设的连接接口,在检测到所述测试工程启动时,将测试管理客户端挂载至所述测试工程。在一些实施例中,可以在检测到所述测试工程启动时,利用JVM提供的Attach API接口将测试管理客户端挂载至测试工程上。
在一些实施例中,如图5所示,在步骤104之后,可以通过图5示出的步骤105至步骤107确定出用例存证测试信息和缺陷存证测试信息,以下结合图5进行说明。
在步骤105中,获取所述目标测试工程的预期测试结果。
在一些实施例中,目标测试工程的预期测试结果可以是预先设置好的。
在步骤106中,如果所述目标测试工程的测试信息与所述预期测试结果满足匹配条件,将所述目标测试工程的测试信息确定为用例存证测试信息。
其中,如果目标测试工程的测试信息与预期测试结果满足匹配条件,也即目标测试工程是不存在缺陷的测试工程,那么将所述目标测试工程的测试信息确定为用例存证测试信息。
在步骤107中,如果所述目标测试工程的测试信息与预期测试结果不满足匹配条件,将所述目标测试工程的测试信息确定为缺陷存证测试信息。
如果目标测试工程的测试信息与预期测试结果不满足匹配条件,也即目标测试工程是存在缺陷的测试工程,后续需要由相关人员进行缺陷原因的定位及解决,那么将所述第二目标测试工程的测试信息确定为缺陷存证测试信息。
用例存证测试信息是用于证明目标测试工程是正常的、不存在缺陷的,缺陷存证测试信息用于证明目标测试工程是存在缺陷的。
通过上述步骤105至步骤107,能够基于目标测试工程的测试信息与预期测试结果是否相符进行不同的存储,便于开发人员对存在缺陷的目标测试工程进行问题定位和解决,能够提高缺陷处理效率。
下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。
本申请实施例中提供一种测试监测方法,通过提供web平台的方式提供给测试人员用于可视化的操作和交互。
图6为本申请实施例提供的测试监测方法的实现时序示意图,如图6所示,需要通过下述的步骤601至步骤605完成前期准备工作,以下结合图6进行说明。
在步骤601中,测试管理服务器添加实例&配置。
在一些实施例中,响应于接收到的添加实例和配置信息的第一操作,添加实例和配置信息。在测试管理服务器通过web界面注册工程实例。测试管理服务器支持以“实例=应用名+服务器IP”的维度,添加工程实例。工程实例的配置信息主要包括:
a.采样率:
sampled=false时,测试管理客户端(Agent)端录制所有流量,不进行采样。
sampled=true时,通过sampleRate设置采样率,如sampleRate=1000,则Agent端采样率为1/1000。
b、HTTP接口配置:指定Agent端录制和监测的HTTP接口。
c、关注的关键节点配置:用于指定Agent端监测的方法切面。Agent端在启动后拉取工程实例的配置信息,根据方法切面的配置信息完成监测类的插桩。
在步骤602中,安装测试管理客户端。
在一些实施例中,响应于接收到的客户端安装操作,安装测试管理客户端,其中该测试管理客户端安装到被测工程(对应其他实施例中的测试工程)所在测试环境服务器。
在步骤603中,将测试管理客户端注册到测试管理服务器。
测试管理客户端按照完成并启动后,会自动上报测试管理服务器,以完成注册。
在步骤604中,测试管理客户端从测试管理服务器拉取工程实例的配置信息。
测试管理客户端拉取测试管理服务器的工程实例的配置信息,根据配置信息对被测服务(测试工程)进行字节码增强,完成埋点。
在步骤605中,管理实例。
在一些实施例中,管理实例可以包括激活工程实例或者冻结工程实例。
继续参考图6,在日常测试中,可以通过图6所示的步骤606至步骤614进行测试分析,以下结合图6进行说明。
在步骤606中,新建测试监测任务。
在本申请实施例中,可以基于实际的测试需求,在测试管理服务器新建测试监测任务。在实现时,测试管理服务器响应于任务创建操作,新建测试监测任务。
在步骤607中,添加本次测试监测任务要监测的工程实例。
测试管理服务器提供测试任务监测、管理的能力,测试人员可以在一个测试监测任务下添加多个需要监测的工程实例。
在步骤608中,启动测试监测任务。
在确定完成对测试监测任务包括的工程实例的配置后,响应于接收到的任务启动操作,启动测试监测任务。
在步骤609中,激活测试管理客户端。
在一些实施例中,启动测试监测任务后,会激活测试监测任务下包含的各个工程实例上挂载的测试管理客户端,以通知测试管理客户端开始进行测试流量的监测和录制。
在步骤610中,测试管理客户端录制流量。
在步骤611中,测试管理客户端将测试流量发送至测试管理服务器。
在步骤612中,测试管理服务器呈现测试流量以及调用关系链(Trace)。
在步骤613中,测试管理服务器进行缺陷存证。
在步骤614中,测试管理服务器进行用例存证。
在一些实施例中,测试管理服务器在呈现出测试流量以及表征关键节点之间的调用关系的有向无环图之后,测试人员可以通过测试监测服务器提供的UI界面,对测试流量进行分析,并判断测试执行逻辑是否符合预期。其中执行逻辑符合预期的流量可以保存为用例存证,执行逻辑符合预期的流量可以保存为缺陷存证。
通过上述的步骤606至步骤614,在日常测试中,测试人员执行了测试用例之后,测试管理客户端可以自动监测到完整的测试过程,并在测试管理服务器通过Trace结构进行展示。测试人员可以实时查看到关键节点的输入、输出、耗时、异常等关键信息,并且可以分析关键节点之间的调用关系。测试分析结果界面示意图如图3B所示,会在该界面中呈现应用名称、流量ID、创建时间、录制时间、TraceID等,并且还会将关键节点之间的调用关系利用有向无环图的形式呈现。
在本申请实施例中,测试管理客户端采用字节码增强技术实现一种通用的、动态的运行时可以插拔的面向切面编程(AOP,Aspect Oriented Programming)方式。
对于字节码增强,需要自定义一个java Agent,实现Java虚拟机(JVM,JavaVirtualMachine)提供的Instrumentation接口,对已经加载的类进行字节码增强。
如图7所示,测试管理客户端挂载到被测java进程中有两种方式:一是通过图7中701所示的方式:被测java进程启动时,通过启动参数加载;二是通过图7中702所示的方式:通过JVM提供的attach API在运行时挂载。
在本申请实施例中,以通过第二种方式,利用attach API接口将测试管理客户端(jar包)动态地挂载到指定进程id的Java进程内。
在本申请实施例中,通过OpenTracing标准规范来记录和呈现关键函数节点之间的调用层级关系。在广义上,一个trace代表了一个事务或者流程在(分布式)系统中的执行过程。在OpenTracing标准中,trace是多个span组成的一个有向无环图(DAG),每一个span代表trace中被命名并计时的连续性的执行片段。图8中展示了trace记录存储结构和最终视图化呈现的过程,其中801为Trace中包括的各个span和各个span的标识信息,802展示了Trace构成的有向无环图中的节点和连接边信息,基于该节点信息和连接边信息形成803所示的有向无环图。
图9为本申请实施例提供的测试分析系统的组成结构示意图,如图9所示,该测试分析系统中包括测试环境服务器901和测试管理服务器902,其中测试管理客户端903安装在被测运行工程所在的测试环境服务器901中,被测运行工程启动后,测试管理客户端903连接到目标java进程,主要完成的功能包括:埋点、监测、调用关系确定、trace生成、序列化、流量发送等;测试管理服务器主要完成配置管理,Agent管理,流量呈现,数据保存等支撑性功能。
在本申请实施例提供的测试监测方法中,通过动态字节码增强的方式,构建一套计算机测试辅助分析系统,对测试过程的活动进行监测,将采集到的监测数据进行分析和可视化,实现测试过程的精准化、可评测,利用本申请实例提供的测试监测方法针对黑盒测试所存在的:验证点遗漏、场景遗漏等隐患,提供了清晰可视化的测试执行过程洞悉能力,用于测试的精准性和有效性分析,提升测试工作的可靠性。测试执行过程自动存证,大大提升了用例流转效率,降低了测试人员与研发人员的沟通成本。
下面继续说明本申请实施例提供的测试监测装置455的实施为软件模块的示例性结构,在一些实施例中,如图2所示,存储在存储器440的测试监测装置455中的软件模块可以包括:
第一获取模块4551,用于获取待启动的测试监测任务,并获取所述测试监测任务包括的目标测试工程;
第一激活模块4552,用于在检测到所述测试监测任务启动时,激活所述目标测试工程上挂载的测试管理客户端;
第二获取模块4553,用于获取所述测试管理客户端基于所述目标测试工程的配置信息采集到的所述目标测试工程的测试信息,所述配置信息包括采样配置信息、网络接口配置信息和用于字节码增强的待监测的方法切面信息;
第一呈现模块4554,用于确定所述目标测试工程的调用关系链,并在所述监测结果显示界面呈现所述目标测试工程的测试信息。
在一些实施例中,该装置还包括:
第四获取模块,用于响应于接收到的实例添加操作,获取待添加的测试工程,将所述待添加的测试工程添加至工程实例集合;
第五获取模块,用于获取所述待添加的测试工程的配置信息,所述配置信息包括采样配置信息、网络接口配置信息和待监测的方法切面信息。
在一些实施例中,该装置还包括:
第六获取模块,用于获取测试管理客户端的注册请求,所述注册请求中携带有所述测试管理客户端的通信端口信息;
注册模块,用于基于所述测试管理客户端的通信端口信息,对所述测试管理客户端进行注册处理;
第一确定模块,用于在所述测试管理客户端注册完成后,确定所述测试管理客户端对应的工程实例;
第二发送模块,用于将所述测试管理客户端对应的工程实例的配置信息发送至所述测试管理客户端。
在一些实施例中,该装置还包括:
任务创建模块,用于响应于接收到的任务创建操作,创建测试监测任务;
第二确定模块,用于响应于接收到的工程选择操作,从工程实例集合中确定所述测试监测任务包含的目标测试工程。
在一些实施例中,第一呈现模块,还用于:
获取所述测试工程在执行过程中各个预设的目标函数节点之间的调用层级关系信息;
基于所述调用层级关系生成所述测试工程对应的调用关系链,其中,所述调用关系链为有向无环图,所述各个预设的目标函数节点为所述有向无环图中的顶点,所述有向无环图中的连接边连接的两个顶点之间存在调用关系。
在一些实施例中,该装置还包括:
第八获取模块,用于获取所述目标测试工程的预期测试结果;
第三确定模块,用于如果所述目标测试工程的测试信息与所述预期测试结果满足匹配条件,将所述目标测试工程的测试信息确定为用例存证测试信息;
第四确定模块,用于如果所述目标测试工程的测试信息与预期测试结果不满足匹配条件,将所述目标测试工程的测试信息确定为缺陷存证测试信息。
在一些实施例中,该装置还包括:
第五确定模块,用于响应于接收到的工程实例选择操作,确定待更新的工程实例;
信息更新模块,用于接收针对所述工程实例的信息更新操作,响应于所述信息更新操作,对所述待更新的工程实例的配置信息进行更新,得到更新后的配置信息;
信息存储模块,用于存储所述待更新的工程实例的更新后的配置信息;
第三发送模块,用于将所述更新后的配置信息发送至测试管理客户端。
在一些实施例中,对所述待更新的工程实例的配置信息进行更新,包括以下至少之一:
修改所述配置信息中的采样配置信息、修改所述网络接口配置信息、增加待监测的方法切面信息、删除待监测的方法切面信息。
需要说明的是,本申请实施例针对测试监测装置的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
本申请实施例提供一种测试管理客户端,包括:至少一个处理器、存储器、至少一个网络接口、用户接口。测试管理客户端中的各个组件通过总线系统耦合在一起。可理解,总线系统用于实现这些组件之间的连接通信。总线系统除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。存储器450中还可以包括测试监测装置,本申请实施例提供的测试监测装置可以采用软件方式实现,可以是程序和插件等形式的软件,包括以下软件模块:第三获取模块、数据采集模块和第一发送模块,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。以下对各个模块的功能进行说明。
第三获取模块,用于响应于测试管理服务器发送的激活指令,获取测试监测任务包括的目标测试工程的配置信息;
数据采集模块,用于基于所述配置信息对所述目标测试工程进行字节码增强,并采集所述目标测试工程的测试信息;
第一发送模块,用于将所述目标测试工程的测试信息发送至测试管理服务器。
在一些实施例中,配置信息包括采样配置信息、网络接口配置信息和待监测的方法切面信息,所述数据采集模块,还用于:
基于所述待监测的方法切面信息对所述测试工程的字节码进行埋点处理;
所述基于所述目标测试工程的配置信息采集所述目标测试工程的测试信息,包括:
基于所述目标测试工程的网络接口配置信息确定待监测的网络接口,按照所述目标测试工程的采样配置信息采集通过所述待监测的网络接口传输的测试信息。
在一些实施例中,该装置还包括:
接收模块,用于接收测试管理服务器发送的更新后的配置信息,并基于所述更新后的配置信息进行信息更新;
添加模块,用于当所述更新后的配置信息中包括新增的待监测方法切面信息,将预设的监测类增加至所述待监测方法切面信息对应的方法中;
埋点模块,用于在执行所述待监测方法切面信息对应的方法时,利用所述监测类基于所述待监测方法切面信息进行埋点。
需要说明的是,本申请实施例针对测试监测装置的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
本申请实施例提供了一种计算机程序产品,该计算机程序产品包括计算机程序或计算机可执行指令,该计算机程序或计算机可执行指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机可执行指令,处理器执行该计算机可执行指令,使得该电子设备执行本申请实施例上述的测试监测方法。
本申请实施例提供一种存储有计算机可执行指令的计算机可读存储介质,其中存储有计算机可执行指令,当计算机可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的测试监测方法,例如,如图3A、图4、图5示出的测试监测方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EP ROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,计算机可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,计算机可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,HyperText Markup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个电子设备上执行,或者在位于一个地点的多个电子设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个电子设备上执行。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。
Claims (16)
1.一种测试监测方法,其特征在于,所述方法包括:
获取待启动的测试监测任务,并获取所述测试监测任务包括的目标测试工程;
在检测到所述测试监测任务启动时,激活所述目标测试工程上挂载的测试管理客户端;
获取所述测试管理客户端基于所述目标测试工程的配置信息采集到的所述目标测试工程的测试信息,所述配置信息包括采样配置信息、网络接口配置信息和用于字节码增强的待监测的方法切面信息;
确定所述目标测试工程的调用关系链,并在监测结果显示界面呈现所述目标测试工程的测试信息和所述调用关系链。
2.根据权利要求1中所述的方法,其特征在于,所述方法还包括:
响应于接收到的实例添加操作,获取待添加的测试工程,将所述待添加的测试工程添加至工程实例集合;
获取所述待添加的测试工程的配置信息。
3.根据权利要求2中所述的方法,其特征在于,所述方法还包括:
获取测试管理客户端的注册请求,所述注册请求中携带有所述测试管理客户端的通信端口信息;
基于所述测试管理客户端的通信端口信息,对所述测试管理客户端进行注册处理;
在所述测试管理客户端注册完成后,确定所述测试管理客户端对应的工程实例;
将所述测试管理客户端对应的工程实例的配置信息发送至所述测试管理客户端。
4.根据权利要求2中所述的方法,其特征在于,所述方法还包括:
响应于接收到的任务创建操作,创建测试监测任务;
响应于接收到的工程选择操作,从工程实例集合中确定所述测试监测任务包含的目标测试工程。
5.根据权利要求4中所述的方法,其特征在于,所述确定所述目标测试工程的调用关系链,包括:
获取所述目标测试工程在执行过程中各个预设的目标函数节点之间的调用层级关系信息;
基于所述调用层级关系生成所述目标测试工程对应的调用关系链,其中,所述调用关系链为有向无环图,所述各个预设的目标函数节点为所述有向无环图中的顶点,所述有向无环图中的连接边连接的两个顶点之间存在调用关系。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述方法还包括:
获取所述目标测试工程的预期测试结果;
如果所述目标测试工程的测试信息与所述预期测试结果满足匹配条件,将所述目标测试工程的测试信息确定为用例存证测试信息;
如果所述目标测试工程的测试信息与预期测试结果不满足匹配条件,将所述目标测试工程的测试信息确定为缺陷存证测试信息。
7.根据权利要求3至5任一项所述的方法,其特征在于,所述方法还包括:
响应于接收到的工程实例选择操作,确定待更新的工程实例;
接收针对所述工程实例的信息更新操作,响应于所述信息更新操作,对所述待更新的工程实例的配置信息进行更新,得到更新后的配置信息;
存储所述待更新的工程实例的更新后的配置信息;
将所述更新后的配置信息发送至测试管理客户端。
8.根据权利要求7所述的方法,其特征在于,所述对所述待更新的工程实例的配置信息进行更新,包括以下至少之一:
修改所述配置信息中的采样配置信息、修改所述网络接口配置信息、增加待监测的方法切面信息、删除待监测的方法切面信息。
9.一种测试监测方法,其特征在于,所述方法包括:
接收测试管理服务器发送的配置信息,并确定所述配置信息对应的测试工程;
基于所述配置信息对所述测试工程进行字节码增强;
响应于测试管理服务器发送的激活指令,确定所述激活指令对应的目标测试工程;
基于所述目标测试工程的配置信息采集所述目标测试工程的测试信息;
将所述目标测试工程的测试信息发送至测试管理服务器。
10.根据权利要求9中所述的方法,其特征在于,所述配置信息包括采样配置信息、网络接口配置信息和待监测的方法切面信息,所述基于所述配置信息对所述测试工程进行字节码增强,包括:
基于所述待监测的方法切面信息对所述测试工程的字节码进行埋点处理;
所述基于所述目标测试工程的配置信息采集所述目标测试工程的测试信息,包括:
基于所述目标测试工程的网络接口配置信息确定待监测的网络接口,按照所述目标测试工程的采样配置信息采集通过所述待监测的网络接口传输的测试信息。
11.根据权利要9或10中所述的方法,其特征在于,所述方法还包括:
接收测试管理服务器发送的更新后的配置信息,并基于所述更新后的配置信息进行信息更新;
当所述更新后的配置信息中包括新增的待监测方法切面信息,将预设的监测类增加至所述待监测方法切面信息对应的方法中;
在执行所述待监测方法切面信息对应的方法时,利用所述监测类基于所述待监测方法切面信息进行埋点。
12.一种测试监测装置,其特征在于,所述装置包括:
第一获取模块,用于获取待启动的测试监测任务,并获取所述测试监测任务包括的目标测试工程;
第一激活模块,用于在检测到所述测试监测任务启动时,激活所述目标测试工程上挂载的测试管理客户端;
第二获取模块,用于获取所述测试管理客户端基于所述目标测试工程的配置信息采集到的所述目标测试工程的测试信息,所述配置信息包括采样配置信息、网络接口配置信息和用于字节码增强的待监测的方法切面信息;
第一呈现模块,用于确定所述目标测试工程的调用关系链,并在所述监测结果显示界面呈现所述目标测试工程的测试信息和所述调用关系链。
13.一种测试监测装置,其特征在于,所述装置包括:
第三获取模块,用于响应于测试管理服务器发送的激活指令,获取测试监测任务包括的目标测试工程的配置信息;
数据采集模块,用于基于所述配置信息对所述目标测试工程进行字节码增强,并采集所述目标测试工程的测试信息;
第一发送模块,用于将所述目标测试工程的测试信息发送至测试管理服务器。
14.一种计算机设备,其特征在于,所述计算机设备包括:
存储器,用于存储计算机可执行指令;
处理器,用于执行所述存储器中存储的计算机可执行指令时,实现权利要求1至8或权利要求9至11任一项所述的方法。
15.一种计算机可读存储介质,存储有计算机可执行指令,其特征在于,所述计算机可执行指令被处理器执行时实现权利要求1至8或权利要求9至11任一项所述的方法。
16.一种计算机程序产品,包括计算机程序或计算机可执行指令,其特征在于,所述计算机程序或计算机可执行指令被处理器执行时实现权利要求1至8或权利要求9至11任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211514451.8A CN118113545A (zh) | 2022-11-29 | 2022-11-29 | 测试监测方法、装置、计算机设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211514451.8A CN118113545A (zh) | 2022-11-29 | 2022-11-29 | 测试监测方法、装置、计算机设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118113545A true CN118113545A (zh) | 2024-05-31 |
Family
ID=91209262
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211514451.8A Pending CN118113545A (zh) | 2022-11-29 | 2022-11-29 | 测试监测方法、装置、计算机设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118113545A (zh) |
-
2022
- 2022-11-29 CN CN202211514451.8A patent/CN118113545A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109302522B (zh) | 测试方法、装置以及计算机系统和介质 | |
CN110554965B (zh) | 自动化模糊测试方法及相关设备、计算机可读存储介质 | |
CN112162753A (zh) | 软件部署方法、装置、计算机设备和存储介质 | |
CN105740144B (zh) | 一种Android移动终端的自动化测试方法及系统 | |
CN110013672B (zh) | 用于机器运行的游戏的自动化测试的方法、设备、装置以及计算机可读存储介质 | |
CN113535567B (zh) | 软件测试方法、装置、设备和介质 | |
CN112650688A (zh) | 自动化回归测试方法、关联设备以及计算机程序产品 | |
CN110928777B (zh) | 测试用例的处理方法、装置、设备及存储介质 | |
CN115422063A (zh) | 一种低代码接口自动化系统、电子设备及存储介质 | |
CN112882930B (zh) | 自动化测试方法、装置、存储介质及电子设备 | |
KR101449201B1 (ko) | 철강 공정용 소프트웨어 자동 테스트 시스템 | |
CN113986679A (zh) | 基于配置信息热加载的性能分析方法及装置 | |
US9489179B2 (en) | Application programming interface tracing mechanism | |
CN113094267B (zh) | 一种测试结果收集方法及装置 | |
CN105339974B (zh) | 模拟传感器 | |
CN116756016A (zh) | 多浏览器测试方法、装置、设备、介质及程序产品 | |
CN118113545A (zh) | 测试监测方法、装置、计算机设备及计算机可读存储介质 | |
CN115509913A (zh) | 软件自动化测试方法、装置、机器可读介质及设备 | |
CN111459547B (zh) | 一种函数调用链路的展示方法和装置 | |
CN115617671A (zh) | 测试脚本的自动生成方法、装置、计算机设备及存储介质 | |
US20160275002A1 (en) | Image capture in application lifecycle management for documentation and support | |
CN117155628B (zh) | 一种容器化应用交互式安全测试方法、系统、装置及可读存储介质 | |
CN112988585B (zh) | 一种PaaS平台测试方法、装置、设备及介质 | |
CN113590327B (zh) | 项目资源检测方法、装置、电子设备及存储介质 | |
CN118519920B (zh) | 自动化测试方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |