CN112905432A - 性能测试方法、装置、存储介质及终端 - Google Patents
性能测试方法、装置、存储介质及终端 Download PDFInfo
- Publication number
- CN112905432A CN112905432A CN202110254160.9A CN202110254160A CN112905432A CN 112905432 A CN112905432 A CN 112905432A CN 202110254160 A CN202110254160 A CN 202110254160A CN 112905432 A CN112905432 A CN 112905432A
- Authority
- CN
- China
- Prior art keywords
- performance
- module
- target
- application program
- target application
- 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
- 238000011056 performance test Methods 0.000 title claims abstract description 101
- 238000000034 method Methods 0.000 title claims abstract description 65
- 238000003860 storage Methods 0.000 title claims abstract description 13
- 238000012360 testing method Methods 0.000 claims abstract description 95
- 238000012545 processing Methods 0.000 claims abstract description 48
- 238000004088 simulation Methods 0.000 claims abstract description 27
- 230000015654 memory Effects 0.000 claims description 33
- 238000012544 monitoring process Methods 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 13
- 238000012163 sequencing technique Methods 0.000 claims description 10
- 238000004458 analytical method Methods 0.000 claims description 9
- 238000010586 diagram Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 6
- 238000003672 processing method Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请实施例公开了一种性能测试方法、装置、存储介质及终端,属于计算机技术领域。方法包括:终端监测目标应用程序对应的程序代码是否发生变化,在目标应用程序对应的程序代码发生变化的情况下,对目标应用程序进行Mock模拟测试处理得到目标模块对应的性能占比数据,分析性能占比数据得到目标模块的性能测试结果,由此可准确地区分目标应用程序中目标模块在运行过程中产生的性能数据,提高性能测试效率和准确性。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种性能测试方法、装置、存储介质及终端。
背景技术
在软件产品开发过程中,对软件产品进行性能测试是一个必不可少的环节,以此来提升软件产品的性能。现有技术中,通常会通过获取软件产品在运行过程中产生的各种性能数据的方式,对软件产品的性能进行分析评估,但每个软件产品又是由多个运行模块组成的,在不同工作环境下,每个运行模块产生的性能数据可能是不同的,因此会存在无法获取或区分每个运行模块在运行过程中产生的性能数据的问题。
发明内容
本申请实施例提供了一种性能测试方法、装置、存储介质及终端,可以解决在相关技术中无法区分每个运行模块在运行过程中产生的性能数据的问题。所述技术方案如下:
第一方面,本申请实施例提供了一种性能测试方法,所述性能测试方法应用于电子设备,所述电子设备中安装至少一个应用程序,每个所述应用程序的程序代码对应至少两个模块,其特征在于,所述方法包括:
监测目标应用程序对应的程序代码是否发生变化;其中,所述至少一个应用程序包括所述目标应用程序;
在所述目标应用程序对应的程序代码发生变化的情况下,对所述目标应用程序进行Mock模拟测试处理得到目标模块对应的性能占比数据;其中,所述至少两个模块包括所述目标模块;
分析所述性能占比数据得到所述目标模块的性能测试结果。
第二方面,本申请实施例提供了一种性能测试装置,所述性能测试装置应用于电子设备,所述电子设备中安装至少一个应用程序,每个所述应用程序的程序代码对应至少两个模块,其特征在于,所述装置包括:
监测模块,用于监测目标应用程序对应的程序代码是否发生变化;其中,所述至少一个应用程序包括所述目标应用程序;
处理模块,用于在所述目标应用程序对应的程序代码发生变化的情况下,对所述目标应用程序进行Mock模拟测试处理得到目标模块对应的性能占比数据;其中,所述至少两个模块包括所述目标模块;
分析模块,用于分析所述性能占比数据得到所述目标模块的性能测试结果。
第三方面,本申请实施例提供一种计算机存储介质,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行上述的方法步骤。
第四方面,本申请实施例提供一种终端,可包括:处理器、存储器、显示屏;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行上述的方法步骤。
本申请一些实施例提供的技术方案带来的有益效果至少包括:
本申请实施例的方案在执行时,终端监测目标应用程序对应的程序代码是否发生变化,在目标应用程序对应的程序代码发生变化的情况下,对目标应用程序进行Mock模拟测试处理得到目标模块对应的性能占比数据,分析性能占比数据得到目标模块的性能测试结果,通过Mock测试处理的方法模拟与目标模块处于同一运行进程的其他模块(也即模拟目标应用程序中除目标模块之外的其他模块)的工作状态,进而实现将目标模块在运行过程中产生的性能数据准确地区分开来,也即可准确地区分目标应用程序中目标模块在运行过程中产生的性能数据,提高性能测试效率和准确性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的性能测试方法的流程示意图;
图2是本申请实施例提供的性能测试方法的另一流程示意图;
图3是本申请实施例提供的Mock模拟处理的示意图;
图4是本申请实施例提供的性能测试方法的显示界面效果图;
图5是本申请实施例提供的一种装置的结构示意图;
图6是本申请实施例提供的一种装置的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施例方式作进一步地详细描述。
需要说明的是,终端设备可以是具有显示屏的各种电子设备,包括但不限于智能手机、平板电脑、便携式计算机和台式计算机等等。终端设备可以是硬件,也可以是软件。当终端设备为软件时,可以是安装于上述所列举的电子设备中。其可以实现呈多个软件或软件模块,也可以实现成单个软件或软件模块,在此不作具体限定。当终端设备为硬件时,其上还可以安装有显示设备和摄像头,显示设备显示可以是各种能实现显示功能的设备,摄像头用于采集视频流;例如:显示设备可以是阴极射线管显示器(Cathode Raytubedisplay,CR)、发光二极管显示器(Light-Emitting diode Display,LED)、电子墨水屏、液晶显示屏(Liquid Crystal Display,LCD)、等离子显示面板(Plasma DisplayPanel,PDP)等。用户可以利用终端设备上的显示设备,来查看显示的文字、图片、视频等信息。
本申请中的终端设备上可以安装多个应用程序,每个应用程序的程序代码对应至少两个模块,终端设备上的应用程序在投入使用之前都需要进行性能调试。
下面将结合附图1至附图4,对本申请实施例提供的性能测试方法进行详细介绍。
请参见图1,为本申请实施例提供了一种性能测试方法的流程示意图。如图1所示,本申请实施例的所述方法可以包括以下步骤:
S101,监测目标应用程序对应的程序代码是否发生变化。
其中,目标应用程序是指需要进行性能测试的应用程序。终端上可以安装有至少一个应用程序。至少一个应用程序中包括该目标应用程序。应用程序是指用于完成某项或多项特定工作的计算机程序。每个应用程序的程序代码对应至少两个模块,也即每个应用程序在工作过程中调用至少两个模块。
一般的,终端上的应用程序(如:目标应用程序)在正式投入使用前,用户(本申请中的用户可以是研发人员和/或测试人员)会对该应用程序作出多次性能调试。其中会涉及到对该应用程序对应的程序代码进行改动。终端对应用程序进行性能测试的过程也是对用户作出的调试进行性能检测。用户可控制终端是否进行性能测试,用户可通过在终端上执行开启测试操作,以控制终端开启性能测试。
在一种可行的实施方式中,在终端进行性能测试时,可以是用户根据需求从安装在终端上的至少一个应用程序中选择一个应用程序作为性能测试的对象,也即被选择的应用程序为目标应用程序。终端通过监测目标应用程序对应的程序代码是否变化,进而确定目标应用程序中需要进行性能测试的模块。
在另一种可行的实施方式中,在终端进行性能测试时,会对安装在终端上的所有应用程序对应的程序代码进行监测。终端检测到有程序代码变化的应用程序,则将该应用程序作为目标应用程序,进而基于程序代码变化情况确定目标应用程序中需要进行性能测试的模块。
S102,在目标应用程序对应的程序代码发生变化的情况下,对目标应用程序进行Mock模拟测试处理得到目标模块对应的性能占比数据。
其中,Mock模拟测试处理包括Mock模拟处理和性能测试处理。Mock模拟处理是指在测试过程中对于一些不容易构造或不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法。虚拟的对象就是Mock对象,Mock对象就是真实对象在调试期间的代替品。性能测试处理可以通过perfdog测试方式或性能打点采集方式完成。目标模块是指目标应用程序中程序代码发生变化的模块,通常每个应用程序中包括至少两个模块,目标应用程序中的模块包括该目标模块。性能占比数据是指应用程序中各个模块在运行过程中性能占用的数据,可以包括内存占用数据、处理器占用数据等。
一般的,在终端检测到目标应用程序对应的程序代码发生变化时,会基于目标应用程序代码发生变化的位置,进一步确定目标应用程序中程序代码发生变化的模块,将程序代码发生变化的模块作为目标模块。其中,目标应用程序中发生程序代码变化的模块可以是一个或多个。
可选地,若终端监测到目标应用程序中只有一个模块对应的程序代码发生变化,则可直接将该模块确定为目标模块,并基于该目标模块对目标应用程序进行Mock模拟测试处理得到该目标模块对应的性能占比数据。
可选地,若终端同时监测到目标应用程序中有多个模块对应的程序代码发生变化,则可按照预设的优先级顺序(如:模块发生程序代码变化的时间顺序,或模块在运行过程中的重要程度顺序,或模块对应的名称顺序等),将发生程序代码变化的模块依次作为目标模块,并基于目标模块对目标应用程序依次进行Mock模拟测试处理得到各个目标模块对应的性能占比数据。
举例说明:终端上安装有应用程序A、应用程序B和应用程序C。在用户选择对终端上的应用程序A进行性能测试时,则应用程序A为目标应用程序。应用程序A对应的程序代码可分为模块A、模块B和模块C。终端在识别到用户执行的开启测试操作后开启监测应用程序A对应的程序代码是否发生变化。在监测到应用程序A对应的程序代码发生变化时,确定应用程序A中发生程序代码变化的模块有模块A和模块B,则按照模块A和模块B各自发生程序代码变化的时间顺序进行优先级排序得到模块A的优先级顺序高于模块B的优先级顺序,则按照优先级排序结果依次将模块A和模块B作为目标模块,并基于目标模块对目标应用程序依次进行Mock模拟测试处理。在对模块A进行性能测试时,通过Mock模拟的方法模拟模块B和模块C的工作状况以配合模块A进行正常工作,在对模块B进行性能测试时,通过Mock模拟的方法模拟模块A和模块C的工作状况以配合模块B进行正常工作,进而利用相关的性能测试方法分别测得到模块A和模块B各自对应的性能占比数据。
S103,分析性能占比数据得到目标模块的性能测试结果。
其中,性能测试结果是指根据终端所测得目标模块对应的性能占比数据生成的测试结果,可直观地显示目标应用程序中目标模块对应的性能占用情况。
一般的,由于目标应用程序中发生代码变化的目标模块可以是一个或多个,不同的目标模块在运行过程中的性能占用会有区别,在终端测得目标应用程序中代码发生变化的目标模块对应的性能占比数据后,可对得到的性能占比数据进行分析归纳得到性能测试结果。可以通过比对目标模块对应的性能占比数据与目标应用程序对应的标准性能数据得到性能测试结果(性能测试结果中包括是否符合性能占比标准的指示信息),如:目标模块对应的性能占比数据对应的性能占比数值小于标准性能数据对应的性能占比数值时,可确定性能测试结果符合性能占比标准;目标模块对应的性能占比数据对应的性能占比数值大于或等于标准性能数据对应的性能占比数值时,可确定性能测试结果不符合性能占比标准。该性能测试结果可通过终端的显示单元直观地显示目标应用程序中的目标模块在运行过程中产生的性能占用情况,以及目标模块是否符合性能占比标准的情况,便于用户区分目标应用程序中的模块对应的性能占比数据。
举例说明:在终端监测到目标应用程序中模块A和模块B各自对应的程序代码均发生改变时,对模块A和模块B进行优先级排序后,确定每次进行性能测试的目标模块,基于目标模块对目标应用程序进行Mock模拟测试处理后,进一步测得目标模块对应的性能占比数据:模块A的性能占比数据为内存占用20%和处理器占用30%,以及模块B的性能占比数据为内存占用15%和处理器占用20%。终端将进一步对得到的性能占比数据进行分析归纳得到性能测试结果,性能测试结果是终端对模块A对应的性能占比数据和模块B对应的性能占比数据进行分析归纳后得到的可供用户直观查看的性能占用数据。
本申请实施例的方案在执行时,终端监测目标应用程序对应的程序代码是否发生变化,在目标应用程序对应的程序代码发生变化的情况下,对目标应用程序进行Mock模拟测试处理得到目标模块对应的性能占比数据,分析性能占比数据得到目标模块的性能测试结果,通过Mock测试处理的方法模拟与目标模块处于同一运行进程的其他模块(也即模拟目标应用程序中除目标模块之外的其他模块)的工作状态,进而实现将目标模块在运行过程中产生的性能数据准确地区分开来,也即可准确地区分目标应用程序中目标模块在运行过程中产生的性能数据,有效提高性能测试效率和准确性。
请参见图2,为本申请实施例提供了一种性能测试方法的流程示意图。本实施例以性能测试方法应用于终端中来举例说明。该性能测试方法可以包括以下步骤:
S201,响应于用户针对电子设备中的应用程序执行的开启测试操作,生成开启测试操作对应的测试指令。
其中,开启测试操作是指用户通过触控、语音或第三方工具控制终端启动对终端(电子设备)中的应用程序进行性能测试的操作,测试指令是终端根据开启测试操作生成的用于启动性能测试任务的控制指令。
一般的,用户可控制终端是否进行性能测试,用户通过在终端上执行开启测试操作,以控制终端基于开启测试操作生成的测试指令开启性能测试任务。在终端开启性能测试的任务后,可以基于预设的时间间隔监测安装在终端上的各个应用程序各自对应的程序代码变化情况。在终端检测到有程序代码变化的应用程序,则将该应用程序作为目标应用程序,以初步确定需要进行性能测试的目标。
S202,基于测试指令执行监测目标应用程序对应的程序代码是否发生变化。
具体地,可参见步骤S101,此处不再赘述。
S203,在目标应用程序对应的程序代码发生内容变化的情况下,确定目标应用程序中发生变化的程序代码对应的至少两个待测试模块。
其中,待测试模块是指目标应用程序中发生变化的程序代码对应的模块,目标应用程序在工作过程中会有至少两个模块参与工作,目标应用程序中可以是一个模块发生程序代码变化,也可以是多个模块发生程序代码变化。待测试模块均是需要进行性能测试的模块,在确定待测试模块为性能测试时的目标模块时,则是对该待测试模块进行性能测试处理。
一般的,在终端监测到目标应用程序对应的程序代码发生变化时,需要进一步确定目标应用程序中发生程序代码变化的具体模块。在终端监测到目标应用程序中有多个模块对应的程序代码发生变化时,则所监测到的多个模块为多个待测试模块,进一步按照预设的优先级顺序(如:模块发生程序代码变化的时间顺序,或模块在运行过程中的重要程度顺序,或模块对应的名称顺序等),将多个待测试模块依次作为目标模块,并基于目标模块对目标应用程序依次进行Mock模拟测试处理得到各个目标模块对应的性能占比数据。
S204,对至少两个待测试模块进行优先级排序。
其中,优先级排序是指对至少两个待测试模块按照预设的规则进行先后测试顺序的排序,优先级高的待测试模块优先作为目标模块进行后续的性能测试。可以按照待测试模块各自发生程序代码变化的时间顺序,或待测试模块各自在运行过程中的重要程度顺序,或待测试模块各自对应的名称顺序等对至少两个待测试模块进行优先级排序。
S205,按照优先级排序依次从至少两个待测试模块中选择一个待测试模块作为目标模块。
其中,目标模块是指目标应用程序中程序代码发生变化的模块,也是在各次性能测试中作为性能测试对象的待测试模块,通常每个应用程序中包括至少两个模块,目标应用程序中的模块包括该目标模块。
一般的,对至少两个待测试模块进行优先级排序后,可基于所排列的顺序按照优先级高到低或低到高的顺序,依次选择一个待测试模块作为目标模块进行后续的性能测试,在完成对一个待测试模块的性能测试后,再按照优先级排序的顺序再次选择一个待测试模块进行性能测试,直到完成对至少两个待测试模块的性能测试为止。
S206,对目标应用程序调用的至少两个模块中除目标模块以外的其他模块进行Mock处理,并对目标模块进行性能测试得到性能占比数据。
其中,Mock处理也即Mock模拟处理,Mock处理是指在测试过程中对于一些不容易构造或不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法。虚拟的对象就是Mock对象,Mock对象就是真实对象在调试期间的代替品。性能测试可以通过perfdog测试方式或性能打点采集方式完成。性能占比数据是指应用程序中目标模块在运行过程中性能占用的数据,可以包括目标模块在工作过程中产生的内存占用数据、处理器占用数据等。
一般的,终端在确定目标模块后,可通过Mock处理的方式对目标应用程序中的其他模块进行模拟处理,模拟目标应用程序中其他模块正常的工作状态,以便能准确区分目标模块在工作过程中产生的性能占用情况。在对目标应用程序调用的至少两个模块中除目标模块以外的其他模块进行Mock处理后,可通过perfdog测试方式或性能打点采集方式测得目标模块在工作过程中的性能占比数据。
举例说明:请参见图3所示的Mock模拟处理的示意图。目标应用程序为终端内的教学应用程序30,教学应用程序30对应的程序代码分为网络课堂模块31、课件播放模块32和音视频播放模块33。在确定发生程序代码变化的为网络课堂模块31,则可确定网络课堂模块31为目标模块,终端可基于目标模块对教学应用程序30中的课件播放模块32和音视频播放模块33进行Mock模拟处理34(执行Mock课件播放模块和音视频播放模块处理35),也即分别Mock模拟处理课件播放模块32和音视频播放模块33在正常工作情况下的工作状态,以配合网络课堂模块31能进行正常工作。在终端执行Mock课件播放模块和音视频播放模块处理35时,是直接模拟返回课件播放模块32和音视频播放模块33在正常工作情况下的处理结果,由此实现在Mock模拟处理过程中,可忽略课件播放模块32和音视频播放模块33各自的性能占用。
S207,获取目标应用程序对应的标准性能数据。
其中,标准性能数据是指目标应用程序中各个模块在正常工作情况下满足的性能占比数据,根据标准性能数据可判定目标模块对应的性能占比数据是否符合要求。标准性能数据根据不同的目标应用程序而有所差异。
S208,在性能占比数据对应的性能占比数值小于标准性能数据对应的性能占比数值时,确定性能测试结果符合性能占比标准;或在性能占比数据对应的性能占比数值大于或等于标准性能数据对应的性能占比数值时,确定性能测试结果不符合性能占比标准。
其中,性能占比数值是指用于表示模块性能占用情况的数值,性能占比数据中可以包括模块在工作过程中的内存占比数值和处理器占比数值,相对应地,标准性能数据中也可以包括模块在工作过程中需要符合标准的内存占比数值和处理器占比数值。性能测试结果是指根据终端所测得目标模块对应的性能占比数据生成的测试结果,可直观地显示目标应用程序中目标模块对应的性能占用情况,以及目标模块是否符合性能占比标准的情况。性能占比标准是指模块在工作过程中需要满足性能占用的统一规定,满足性能占比标准的模块是符合调试标准的模块,也即符合标准要求的模块。
一般的,不同的目标应用程序对应的标准性能数据也不同,目标应用程序的标准性能数据可以由用户预先设置。可通过比对目标模块对应的性能占比数据与目标应用程序对应的标准性能数据得到性能测试结果,性能测试结果中包括是否符合性能占比标准的指示信息。在确定性能测试结果符合性能占比标准时,终端会基于性能测试结果生成显示有符合性能占比标准的指示信息;相同地,在确定性能测试结果不符合性能占比标准时,终端会基于性能测试结果生成显示有不符合性能占比标准的指示信息。
S209,基于性能测试结果生成提醒消息。
其中,提醒消息是指用于提醒用户性能测试结果是否符合要求的指示信息,用户可根据该提醒消息查看到本次性能测试的直观结果。
一般的,终端在获得性能测试结果后,可对该性能测试结果进行进一步的归纳分析,生成可用于提醒用户本次性能测试结果的提醒消息,以便用户可直观地了解本次性能测试结果。
举例说明:请参见图4终端的显示界面效果图,终端获取到目标应用程序中目标模块(模块A)的性能测试结果41为:模块A的性能占比数据为内存占用20%和处理器占用30%,而终端通过查询可知模块A的性能占比标准为内存占用10%和处理器占用20%,也即模块A的性能测试结果不符合性能占比标准,故终端可基于性能测试结果生成“模块A的性能测试未通过”的提醒消息42,并通过终端的显示单元40显示该提醒消息42,性能测试结果41也可通过显示单元40显示出来,以此来提醒用户本次性能测试的结果。
S210,通过显示单元显示提醒消息。
一般的,终端可将基于性能测试结果生成的提醒消息通过显示单元显示出来,用户则可在终端完成对目标模块的性能测试时,查看到终端显示单元上显示的提醒消息,直观地了解到本次性能测试的结果,给用户后续对目标应用程序或目标模块的调试以具体的参考。
本申请实施例的方案在执行时,终端响应于用户针对电子设备中的应用程序执行的开启测试操作,生成开启测试操作对应的测试指令,基于测试指令执行监测目标应用程序对应的程序代码是否发生变化,监测目标应用程序对应的程序代码是否发生变化,在目标应用程序对应的程序代码发生内容变化的情况下,确定目标应用程序中发生变化的程序代码对应的至少两个待测试模块,对至少两个待测试模块进行优先级排序,按照优先级排序依次从至少两个待测试模块中选择一个待测试模块作为目标模块,对目标应用程序调用的至少两个模块中除目标模块以外的其他模块进行Mock处理,并对目标模块进行性能测试得到性能占比数据,获取目标应用程序对应的标准性能数据,在性能占比数据对应的性能占比数值小于标准性能数据对应的性能占比数值时,确定性能测试结果符合性能占比标准;或在性能占比数据对应的性能占比数值大于或等于标准性能数据对应的性能占比数值时,确定性能测试结果不符合性能占比标准,基于性能测试结果生成提醒消息,通过显示单元显示提醒消息,通过Mock测试处理的方法模拟与目标模块处于同一运行进程的其他模块(也即模拟目标应用程序中除目标模块之外的其他模块)的工作状态,进而可准确地区分目标应用程序中目标模块在运行过程中产生的性能数据,提高了性能测试效率和准确性,并将性能测试结果直观地展示给用户,提升了用户的测试体验。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
请参见图5,其示出了本申请一个示例性实施例提供的性能测试装置的结构示意图。以下简称装置5,装置5可以通过软件、硬件或者两者的结合实现成为终端的全部或一部分。装置5包括第一监测模块501、第一处理模块502和分析模块503。
第一监测模块501,用于监测目标应用程序对应的程序代码是否发生变化;其中,所述至少一个应用程序包括所述目标应用程序;
第一处理模块502,用于在所述目标应用程序对应的程序代码发生变化的情况下,对所述目标应用程序进行Mock模拟测试处理得到目标模块对应的性能占比数据;其中,所述至少两个模块包括所述目标模块;
分析模块503,用于分析所述性能占比数据得到所述目标模块的性能测试结果。
可选地,所述第一处理模块502包括:
第一确定单元,用于在所述目标应用程序对应的程序代码发生变化的情况下,确定所述目标应用程序中发生变化的程序代码对应的模块为所述目标模块;
第一处理单元,用于对所述目标应用程序调用的所述至少两个模块中除所述目标模块以外的其他模块进行Mock处理,并对所述目标模块进行性能测试得到所述性能占比数据。
可选地,所述第一确定单元包括:
第一确定子单元,用于在所述目标应用程序对应的程序代码发生内容变化的情况下,确定所述目标应用程序中发生变化的程序代码对应的至少两个待测试模块;
排序子单元,用于对所述至少两个待测试模块进行优先级排序;
选择子单元,用于按照所述优先级排序依次从所述至少两个待测试模块中选择一个待测试模块作为所述目标模块。
可选地,所述装置5还包括:
第二处理模块,用于响应于用户针对所述电子设备中的应用程序执行的开启测试操作,生成所述开启测试操作对应的测试指令;
第二监测模块,用于基于所述测试指令执行所述监测目标应用程序对应的程序代码是否发生变化。
可选地,所述分析模块503包括:
获取单元,用于获取所述目标应用程序对应的标准性能数据;
分析单元,用于将所述性能占比数据与所述标准性能数据进行比对分析得到所述性能测试结果。
可选地,所述分析单元包括:
第二确定子单元,用于在所述性能占比数据对应的性能占比数值小于所述标准性能数据对应的性能占比数值时,确定所述性能测试结果符合性能占比标准;或
第三确定子单元,用于在所述性能占比数据对应的性能占比数值大于或等于所述标准性能数据对应的性能占比数值时,确定所述性能测试结果不符合性能占比标准。
可选地,所述装置5还包括:
第三处理模块,用于基于所述性能测试结果生成提醒消息;
显示模块,用于通过显示单元显示所述提醒消息。
需要说明的是,上述实施例提供的装置5在执行性能测试方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的性能测试方法实施例属于同一构思,其体现实现过程详见方法实施例,这里不再赘述。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本申请实施例还提供了一种计算机存储介质,所述计算机存储介质可以存储有多条指令,所述指令适于由处理器加载并执行如上述图2~图3所示实施例的方法步骤,具体执行过程可以参见图2~图3所示实施例的具体说明,在此不进行赘述。
本申请还提供了一种计算机程序产品,该计算机程序产品存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上各个实施例所述的性能测试方法。
图6为本申请实施例提供的一种性能测试装置结构示意图,以下简称装置6,装置6可以集成于前述终端设备中。如图6所示,该装置包括:存储器602、处理器601、输入装置603、输出装置604和通信接口。
存储器602可以是独立的物理单元,与处理器601、输入装置603和输出装置604可以通过总线连接。存储器602、处理器601、输入装置603和输出装置604也可以集成在一起,通过硬件实现等。
存储器602用于存储实现以上方法实施例,或者装置实施例各个模块的程序,处理器601调用该程序,执行以上方法实施例的操作。
输入装置602包括但不限于键盘、鼠标、触摸面板、摄像头和麦克风;输出装置包括但限于显示屏。
通信接口用于收发各种类型的消息,通信接口包括但不限于无线接口或有线接口。
可选地,当上述实施例的性能测试方法中的部分或全部通过软件实现时,装置也可以只包括处理器。用于存储程序的存储器位于装置之外,处理器通过电路/电线与存储器连接,用于读取并执行存储器中存储的程序。
处理器可以是中央处理器(central processing unit,CPU),网络处理器(network processor,NP)或者CPU和NP的组合。
处理器还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmablelogic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complexprogrammable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gatearray,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。
存储器可以包括易失性存储器(volatile memory),例如存取存储器(random-access memory,RAM);存储器也可以包括非易失性存储器(non-volatile memory),例如快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);存储器还可以包括上述种类的存储器的组合。
其中,处理器601调用存储器602中的程序代码用于执行以下步骤:
监测目标应用程序对应的程序代码是否发生变化;其中,所述至少一个应用程序包括所述目标应用程序;
在所述目标应用程序对应的程序代码发生变化的情况下,对所述目标应用程序进行Mock模拟测试处理得到目标模块对应的性能占比数据;其中,所述至少两个模块包括所述目标模块;
分析所述性能占比数据得到所述目标模块的性能测试结果。
在一个或多个实施例中,处理器601执行在所述目标应用程序对应的程序代码发生变化的情况下,对所述目标应用程序进行Mock模拟测试处理得到目标模块对应的性能占比数据时,具体用于执行:
在所述目标应用程序对应的程序代码发生变化的情况下,确定所述目标应用程序中发生变化的程序代码对应的模块为所述目标模块;
对所述目标应用程序调用的所述至少两个模块中除所述目标模块以外的其他模块进行Mock处理,并对所述目标模块进行性能测试得到所述性能占比数据。
在一个或多个实施例中,处理器601执行在所述目标应用程序对应的程序代码发生变化的情况下,确定所述目标应用程序中程序代码发生变化的运行模块为所述目标模块时,具体用于执行:
在所述目标应用程序对应的程序代码发生内容变化的情况下,确定所述目标应用程序中发生变化的程序代码对应的至少两个待测试模块;
对所述至少两个待测试模块进行优先级排序;
按照所述优先级排序依次从所述至少两个待测试模块中选择一个待测试模块作为所述目标模块。
在一个或多个实施例中,处理器601执行监测目标应用程序对应的程序代码是否发生变化之前,具体用于执行:
响应于用户针对所述电子设备中的应用程序执行的开启测试操作,生成所述开启测试操作对应的测试指令;
基于所述测试指令执行所述监测目标应用程序对应的程序代码是否发生变化。
在一个或多个实施例中,处理器601执行分析所述性能占比数据得到所述目标模块的性能测试结果时,具体用于执行:
获取所述目标应用程序对应的标准性能数据;
将所述性能占比数据与所述标准性能数据进行比对分析得到所述性能测试结果。
在一个或多个实施例中,处理器601执行将所述性能占比数据与所述标准性能数据进行比对分析得到所述性能测试结果时,具体用于执行:
在所述性能占比数据对应的性能占比数值小于所述标准性能数据对应的性能占比数值时,确定所述性能测试结果符合性能占比标准;或
在所述性能占比数据对应的性能占比数值大于或等于所述标准性能数据对应的性能占比数值时,确定所述性能测试结果不符合性能占比标准。
在一个或多个实施例中,处理器601执行分析所述性能占比数据得到所述目标模块性能测试结果之后,具体用于执行:
基于所述性能测试结果生成提醒消息;
通过显示单元显示所述提醒消息。
本申请实施例还提供了一种计算机存储介质,存储有计算机程序,该计算机程序用于执行上述实施例提供的性能测试方法。
本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例提供的性能测试方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
Claims (10)
1.一种性能测试方法,所述性能测试方法应用于电子设备,所述电子设备中安装至少一个应用程序,每个所述应用程序的程序代码对应至少两个模块,其特征在于,所述方法包括:
监测目标应用程序对应的程序代码是否发生变化;其中,所述至少一个应用程序包括所述目标应用程序;
在所述目标应用程序对应的程序代码发生变化的情况下,对所述目标应用程序进行Mock模拟测试处理得到目标模块对应的性能占比数据;其中,所述至少两个模块包括所述目标模块;
分析所述性能占比数据得到所述目标模块的性能测试结果。
2.根据权利要求1所述的方法,其特征在于,所述在所述目标应用程序对应的程序代码发生变化的情况下,对所述目标应用程序进行Mock模拟测试处理得到目标模块对应的性能占比数据,包括:
在所述目标应用程序对应的程序代码发生变化的情况下,确定所述目标应用程序中发生变化的程序代码对应的模块为所述目标模块;
对所述目标应用程序调用的所述至少两个模块中除所述目标模块以外的其他模块进行Mock处理,并对所述目标模块进行性能测试得到所述性能占比数据。
3.根据权利要求2所述的方法,其特征在于,所述在所述目标应用程序对应的程序代码发生变化的情况下,确定所述目标应用程序中程序代码发生变化的运行模块为所述目标模块,包括:
在所述目标应用程序对应的程序代码发生内容变化的情况下,确定所述目标应用程序中发生变化的程序代码对应的至少两个待测试模块;
对所述至少两个待测试模块进行优先级排序;
按照所述优先级排序依次从所述至少两个待测试模块中选择一个待测试模块作为所述目标模块。
4.根据权利要求1所述的方法,其特征在于,所述监测目标应用程序对应的程序代码是否发生变化之前,还包括:
响应于用户针对所述电子设备中的应用程序执行的开启测试操作,生成所述开启测试操作对应的测试指令;
基于所述测试指令执行所述监测目标应用程序对应的程序代码是否发生变化。
5.根据权利要求1所述的方法,其特征在于,所述分析所述性能占比数据得到所述目标模块的性能测试结果,包括:
获取所述目标应用程序对应的标准性能数据;
将所述性能占比数据与所述标准性能数据进行比对分析得到所述性能测试结果。
6.根据权利要求5所述的方法,其特征在于,所述将所述性能占比数据与所述标准性能数据进行比对分析得到所述性能测试结果,包括:
在所述性能占比数据对应的性能占比数值小于所述标准性能数据对应的性能占比数值时,确定所述性能测试结果符合性能占比标准;或
在所述性能占比数据对应的性能占比数值大于或等于所述标准性能数据对应的性能占比数值时,确定所述性能测试结果不符合性能占比标准。
7.根据权利要求1所述的方法,其特征在于,所述分析所述性能占比数据得到所述目标模块性能测试结果之后,还包括:
基于所述性能测试结果生成提醒消息;
通过显示单元显示所述提醒消息。
8.一种性能测试装置,所述性能测试装置应用于电子设备,所述电子设备中安装至少一个应用程序,每个所述应用程序的程序代码对应至少两个模块,其特征在于,所述装置包括:
监测模块,用于监测目标应用程序对应的程序代码是否发生变化;其中,所述至少一个应用程序包括所述目标应用程序;
处理模块,用于在所述目标应用程序对应的程序代码发生变化的情况下,对所述目标应用程序进行Mock模拟测试处理得到目标模块对应的性能占比数据;其中,所述至少两个模块包括所述目标模块;
分析模块,用于分析所述性能占比数据得到所述目标模块的性能测试结果。
9.一种计算机存储介质,其特征在于,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行如权利要求1~7任意一项的方法步骤。
10.一种终端,其特征在于,包括:处理器、存储器、显示屏;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行如权利要求1~7任意一项的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110254160.9A CN112905432A (zh) | 2021-03-09 | 2021-03-09 | 性能测试方法、装置、存储介质及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110254160.9A CN112905432A (zh) | 2021-03-09 | 2021-03-09 | 性能测试方法、装置、存储介质及终端 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112905432A true CN112905432A (zh) | 2021-06-04 |
Family
ID=76108068
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110254160.9A Pending CN112905432A (zh) | 2021-03-09 | 2021-03-09 | 性能测试方法、装置、存储介质及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112905432A (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090125891A1 (en) * | 2007-11-13 | 2009-05-14 | International Business Machines Corporation | Method and system for monitoring code change impact on software performance |
CN103793316A (zh) * | 2012-10-29 | 2014-05-14 | 腾讯科技(深圳)有限公司 | 确定软件性能的方法和系统 |
US20170046245A1 (en) * | 2015-08-13 | 2017-02-16 | Ca, Inc. | Method and Apparatus for Recommending Regression Tests |
CN106708818A (zh) * | 2015-07-17 | 2017-05-24 | 阿里巴巴集团控股有限公司 | 一种压力测试方法和系统 |
CN109462491A (zh) * | 2017-09-06 | 2019-03-12 | 北京京东尚科信息技术有限公司 | 用于测试服务器功能的系统、方法和装置 |
CN110162464A (zh) * | 2019-04-19 | 2019-08-23 | 平安普惠企业管理有限公司 | Mcok测试方法及系统、电子设备及可读存储介质 |
CN110362487A (zh) * | 2019-07-11 | 2019-10-22 | 腾讯科技(深圳)有限公司 | 一种应用程序的测试方法及装置 |
CN110795357A (zh) * | 2019-11-04 | 2020-02-14 | 中国工商银行股份有限公司 | 程序监控方法及装置 |
CN111949536A (zh) * | 2020-08-14 | 2020-11-17 | 中国工商银行股份有限公司 | 基于字节码技术的java应用程序测试方法及系统 |
-
2021
- 2021-03-09 CN CN202110254160.9A patent/CN112905432A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090125891A1 (en) * | 2007-11-13 | 2009-05-14 | International Business Machines Corporation | Method and system for monitoring code change impact on software performance |
CN103793316A (zh) * | 2012-10-29 | 2014-05-14 | 腾讯科技(深圳)有限公司 | 确定软件性能的方法和系统 |
CN106708818A (zh) * | 2015-07-17 | 2017-05-24 | 阿里巴巴集团控股有限公司 | 一种压力测试方法和系统 |
US20170046245A1 (en) * | 2015-08-13 | 2017-02-16 | Ca, Inc. | Method and Apparatus for Recommending Regression Tests |
CN109462491A (zh) * | 2017-09-06 | 2019-03-12 | 北京京东尚科信息技术有限公司 | 用于测试服务器功能的系统、方法和装置 |
CN110162464A (zh) * | 2019-04-19 | 2019-08-23 | 平安普惠企业管理有限公司 | Mcok测试方法及系统、电子设备及可读存储介质 |
CN110362487A (zh) * | 2019-07-11 | 2019-10-22 | 腾讯科技(深圳)有限公司 | 一种应用程序的测试方法及装置 |
CN110795357A (zh) * | 2019-11-04 | 2020-02-14 | 中国工商银行股份有限公司 | 程序监控方法及装置 |
CN111949536A (zh) * | 2020-08-14 | 2020-11-17 | 中国工商银行股份有限公司 | 基于字节码技术的java应用程序测试方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109302522B (zh) | 测试方法、装置以及计算机系统和介质 | |
US8924912B2 (en) | Method of recording and replaying call frames for a test bench | |
CN104331373A (zh) | 一种Monkey测试系统及方法 | |
CN107659455B (zh) | 一种iOS端Mock数据的方法、存储介质、设备及系统 | |
CN103838663A (zh) | 一种应用程序的测试方法及装置 | |
CN108830383B (zh) | 用于展示机器学习建模过程的方法及系统 | |
CN107193747B (zh) | 代码测试方法、装置和计算机设备 | |
Holl et al. | Mobile application quality assurance | |
CN110674034A (zh) | 一种健康检查方法、装置及电子设备和存储介质 | |
CN109408361A (zh) | Monkey测试复原方法、装置、电子设备及计算机可读存储介质 | |
CN113590454A (zh) | 测试方法、装置、计算机设备和存储介质 | |
US11169910B2 (en) | Probabilistic software testing via dynamic graphs | |
CN112463432A (zh) | 基于指标数据的巡检方法、装置及系统 | |
CN111736951A (zh) | 自动驾驶的仿真方法、计算机设备、及存储介质 | |
CN114880238A (zh) | 移动端界面测试方法、装置、设备及存储介质 | |
CN105138458A (zh) | 智能终端与电脑端结合录制自动化测试脚本的方法及系统 | |
CN102622233A (zh) | 自动生成适应于某交互终端设备用户界面的系统及方法 | |
US9280627B1 (en) | GUI based verification at multiple abstraction levels | |
CN106708705B (zh) | 终端后台进程监控方法和系统 | |
CN112905432A (zh) | 性能测试方法、装置、存储介质及终端 | |
CN110971483B (zh) | 一种压力测试的方法、装置及计算机系统 | |
CN112445711A (zh) | 一种基于Web网页可视化拖拽生成模拟测试场景的测试方法 | |
CN112765018A (zh) | 一种仪器仪表调试系统及方法 | |
CN112561331A (zh) | 一种可视化的试验分析评估指标构建方法 | |
CN112380800A (zh) | 自动评测的在线fpga实验平台及相关方法 |
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 |