CN116450496A - ***性能测试方法、装置、计算机设备和存储介质 - Google Patents
***性能测试方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN116450496A CN116450496A CN202310220100.4A CN202310220100A CN116450496A CN 116450496 A CN116450496 A CN 116450496A CN 202310220100 A CN202310220100 A CN 202310220100A CN 116450496 A CN116450496 A CN 116450496A
- Authority
- CN
- China
- Prior art keywords
- function
- target
- tested
- performance
- test result
- 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
- 238000000034 method Methods 0.000 title claims abstract description 58
- 238000011056 performance test Methods 0.000 title claims abstract description 43
- 238000012360 testing method Methods 0.000 claims abstract description 244
- 238000001514 detection method Methods 0.000 claims abstract description 58
- 230000006870 function Effects 0.000 claims description 557
- 238000003780 insertion Methods 0.000 claims description 19
- 230000037431 insertion Effects 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 18
- 230000008859 change Effects 0.000 claims description 16
- 238000004458 analytical method Methods 0.000 claims description 13
- 230000008569 process Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 7
- 230000033772 system development Effects 0.000 description 7
- 230000009191 jumping Effects 0.000 description 5
- 230000004044 response Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000007547 defect Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 241000272878 Apodiformes Species 0.000 description 1
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000013100 final test Methods 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 239000002699 waste material Substances 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/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3692—Test management for test results analysis
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本申请涉及一种***性能测试方法、装置、计算机设备和存储介质。方法包括:获取被测***的待测试性能类别,确定待测试性能类别所对应的***函数;在***函数中的顶层函数的目标检测位置***第一目标代码,得到第一函数;当对第一函数进行测试得到的第一测试结果不满足第一目标条件时,在顶层函数的下层函数的目标检测位置***第二目标代码,得到第二函数;当对第二函数进行测试得到的第二测试结果满足第二目标条件时,基于第一测试结果和第二测试结果,得到待测试性能类别的性能测试结果。采用本方法能够减少***资源的消耗。
Description
技术领域
本申请涉及嵌入式***性能测试技术领域,特别是涉及一种***性能测试方法、装置、计算机设备和存储介质。
背景技术
目前针对嵌入式操作***的实时性能测试指标主要有实时操作***的六个关键操作的时间参数,即任务切换时间、中断响应时间、抢占时间、信号量混洗时间、死锁解除时间和消息传递延迟时间。现有的***性能测试方法主要是通过在中断函数开始和结束的位置***特定功能函数来获取对应位置的实时时间,进而得到函数的执行时间。
然而,现有技术在进行***性能测试时,需要调用***函数获取时间戳,且需要申请***资源,并且现有的方式都只考虑的实时操作***的六个关键操作的时间参数,这虽然能够在测试阶段发现操作***中某个大功能模块的实时性能否满足要求,但是模块具体在哪个运行阶段产生了时间滞后的问题还是需要各种检测排查,这会导致***资源消耗较多的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够减少***资源的消耗的***性能测试方法、装置、计算机设备和计算机可读存储介质。
第一方面,本申请提供了一种***性能测试方法,所述方法包括:
获取被测***的待测试性能类别,确定所述待测试性能类别所对应的***函数;
在所述***函数中的顶层函数的目标检测位置***第一目标代码,得到第一函数;
当对所述第一函数进行测试得到的第一测试结果不满足第一目标条件时,在所述顶层函数的下层函数的目标检测位置***第二目标代码,得到第二函数;
当对所述第二函数进行测试得到的第二测试结果满足第二目标条件时,基于所述第一测试结果和所述第二测试结果,得到所述待测试性能类别的性能测试结果。
在其中一个实施例中,所述方法还包括:
获取每一所述待测试性能类别各自的性能测试结果和每一所述待测试性能类别各自的权值;
将每一所述性能测试结果中的时间数据转换为性能得分数据;
基于每一所述权值和每一所述性能得分数据,得到所述被测***的测试结果。
在其中一个实施例中,所述目标检测位置包括函数的头部位置和尾部位置;
所述在所述***函数中的顶层函数的目标检测位置***第一目标代码,得到第一函数,包括:
使用语法分析工具生成所述待测试性能类别的抽象语法树,并基于所述抽象语法树确定所述待测试性能类别的***函数的函数分层结果;
获取所述函数分层结果中的顶层函数,并在所述顶层函数的头部位置和尾部位置***第一目标代码,得到第一函数。
在其中一个实施例中,所述当对所述第一函数进行测试得到的第一测试结果不满足第一目标条件时,在所述顶层函数的下层函数的目标检测位置***第二目标代码,得到第二函数,包括:
获取所述待测试性能类别的***函数的函数分层结果;
当所述第一测试结果不满足目标条件时,基于所述函数分层结果确定所述顶层函数的下层函数;
在所述顶层函数的下层函数的目标检测位置***第二目标代码,得到第二函数;
所述方法还包括:
使用所述待测试性能类别所对应的测试代码对所述第二函数进行测试,得到第二测试结果。
在其中一个实施例中,所述第一函数和所述第二函数均至少为两个;
所述在所述***函数中的顶层函数的目标检测位置***第一目标代码,得到第一函数,包括:
在所述***函数中每一顶层函数各自的目标检测位置处***第一目标代码,得到多个第一函数;
分别对各所述第一函数进行测试,得到多个所述第一函数各自的第一测试结果;
所述当对所述第一函数进行测试得到的第一测试结果不满足第一目标条件时,在所述顶层函数的下层函数的目标检测位置***第二目标代码,得到第二函数,包括:
从多个所述第一函数中,获取所述第一测试结果不满足目标条件的目标第一函数;
按照所述待测试性能类别的***函数的函数分层结果,在所述目标第一函数的每一下层函数的目标检测位置***第二目标代码,得到多个第二函数。
在其中一个实施例中,所述方法还包括:
当所述第二测试结果不满足所述目标条件时,按照所述待测试性能类别的***函数的函数分层结果,依次对不满足所述目标条件的函数的下层函数进行测试,直至目标函数不存在下层函数。
在其中一个实施例中,所述方法还包括:
当函数对应的目标检测位置处的目标代码被执行时,获取与所述被测***连接的示波器的电平变化;所述函数包括所述待测试性能类别所对应的***函数中的每一函数;
基于所述电平变化,确定所述函数的测试结果。
第二方面,本申请提供了一种***性能测试装置,所述装置包括:
函数确定模块,用于获取被测***的待测试性能类别,确定所述待测试性能类别所对应的***函数;
目标代码***模块,用于在所述***函数中的顶层函数的目标检测位置***第一目标代码,得到第一函数;
第一函数测试模块,用于当对所述第一函数进行测试得到的第一测试结果不满足第一目标条件时,在所述顶层函数的下层函数的目标检测位置***第二目标代码,得到第二函数;
第二函数测试模块,用于当对所述第二函数进行测试得到的第二测试结果满足第二目标条件时,基于所述第一测试结果和所述第二测试结果,得到所述待测试性能类别的性能测试结果。
第三方面,本申请提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述的方法的步骤。
第四方面,本申请提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法的步骤。
第五方面,本申请提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述的方法的步骤。
上述***性能测试方法、装置、计算机设备和存储介质,通过在待测试性能类别所对应的***函数中顶层函数的目标检测位置***第一目标代码,再对得到的第一函数进行测试,并在第一测试结果不满足第一目标条件时,对顶层函数的下层函数进行测试,在第二测试结果满足第二目标条件时,停止下层函数的目标代码***和测试,可以减少***性能测试时***目标代码的数量,从而减少***资源的消耗。
附图说明
图1为一个实施例中***性能测试方法的应用环境图;
图2为一个实施例中***性能测试方法的流程示意图;
图3为一个实施例中函数分层结果示意图;
图4为一个实施例中细粒度测试算法流程示意图;
图5为另一个实施例中***性能测试方法的流程示意图;
图6为一个实施例中测试装置连接示意图;
图7为一个实施例中***性能测试装置的结构框图;
图8为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的***性能测试方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储***可以存储服务器104需要处理的数据。数据存储***可以集成在服务器104上,也可以放在云上或其他网络服务器上。服务器104获取需要进行性能检测的被测***的待测试性能类别,再确定被测***各待测试性能类别各自所对应的***函数。服务器104获取待测试性能类别的***函数中的顶层函数后,并在顶层函数的目标检测位置***第一目标代码,得到第一函数。当服务器104检测到第一函数的第一测试结果不满足第一目标条件时,再搜索顶层函数的下层函数,并在下层函数的目标检测位置***第二目标代码,得到第二函数。当服务器104检测到第二函数的第二测试结果满足第二目标条件时,服务器104根据第一测试结果和第二测试结果确定待测试性能类别的性能测试结果。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种***性能测试方法,以该方法应用于图1中的服务器104为例进行说明,包括以下步骤:
步骤202,获取被测***的待测试性能类别,确定待测试性能类别所对应的***函数。
其中,被测***指的是需要进行测试的被测操作***开发板。被测***、示波器以及被测主机之间两两连接。示波器的电平变化用于描述函数的运行时间和运行状态。例如,示波器的电平从低电平跳变为高电平,则表示该函数正在被执行,当函数从高电平下降到低电平时,则表示该函数执行完毕,电平从低电平上升到高电平后所持续的时间则为函数的运行时间。例如,电平在0时刻从低电平跳变至高电平,经过30纳秒后跳变为低电平,则表示该函数的执行时间为30纳秒。其中,示波器的电位信号和时间变化范围会同步传输给测试主机,测试主机同时接收被测***中用栈存放的函数名,每当示波器电位信号下降时就从栈中取出一个函数名,将示波器在此电位下持续的时间与取出的函数名作为该待测试性能类别的测试结果的一组数据。
测试主机是为用户提供待测试性能类别选择的主机。例如,用户想要对被测***的待测试性能类别A进行测试,则需要在测试主机上进行选择。对于不同的待测试性能类别,测试主机会将提前设计好的对应测试代码烧写进被测***。测试主机中还包括了目标代码***工具和语法分析工具。其中,目标代码***工具用于在函数的特定位置***目标代码,语法分析工具用于生成抽象语法树。
待测试性能类别主要包括六个关键操作的时间参数,即任务切换时间、中断响应时间、抢占时间、信号量混洗时间、死锁解除时间和消息传递延迟时间。这些时间是用户编写程序调用***函数的过程中产生的。其中,在主任务M中创建两个任务A和B,任务A和B具有相同的优先级且低于M的优先级,然后将M的优先级设置为低于A、B,将M挂起,此后由于A、B的优先级相同,会按照就绪队列的顺序依次执行,当一个任务完成时,就会产生***调用,切换到另一个任务,这段***调用的时间就是任务切换时间。在主任务M中创建任务A并加载中断服务程序,任务A在测试过程中不断触发中断。中断发生时,任务A被挂起,***开始保存任务A的***环境并为中断程序设置***环境,之后开始运行中断服务程序,这段从触发中断到中断服务程序开始运行的时间即为中断响应时间。在主任务M中创建两个任务A和B,任务A优先级大于B且都低于M的优先级,然后将M的优先级设置为低于A、B,将M挂起。由于A优先级高,会首先运行A,而测试代码会让任务A延迟一个时钟周期,使任务B获得***控制权;在延迟时间到后,任务A被唤醒,由于优先级高于B,开始抢占任务B的***资源,最终B被挂起,A开始运行,从A被唤醒到开始运行的时间就是任务抢占时间。信号量混洗时间是指从一个任务释放信号量到另一个等待该信号量的任务被激活的时间延迟。测试过程中,设计一个任务M,M通过不断获取和释放信号量来模拟信号量的任务同步功能。从释放信号量到重新获得信号量的时间即为信号量混洗时间。在主任务M中创建互斥信号量和任务A、B、C,优先级A>B>C。M首先调度C运行,当任务C获取了互斥信号量这个临界资源后,唤醒任务A。由于临界资源已经被C获取,所以A会被挂起等待临界资源释放。此时激活任务B,任务B开始执行无限循环。这时,C有资源但是没有优先级,A有优先级但是没有资源,***进入死锁,操作***将会采用办法来解除死锁。而从死锁产生到死锁解除(A获得资源)的时间即为死锁解除时间。在主任务M中创建两个任务A和B,A发送信息,操作***中的消息缓冲区或者通道数据结构会存储信息并进行转发,B接收转发的信息。从A发送到B接收的时间则为消息传递时间。
***函数指的是待测试性能类别各自所涉及的代码段。例如,想要测试被测***的任务切换模块的性能时,则该***函数应至少具备以下功能:产生A任务和B任务,任务A调用B任务,任务B调用A任务,由此不断运行任务切换模块,供示波器收集运行数据。
可选地,服务器控制需要进行测试的被测操作***开发板、测试主机以及示波器之间两两连接,并将提前设计好的测试代码烧写进被测操作***开发板中,服务器再从测试主机中选择想要测试的被测操作***开发板的待测试性能类别,并获取该待测试性能类别的***函数。
可选地,服务器通过USB(Universal Serial Bus,通用串行总线)转串口线连接好测试主机与被测操作***开发板,使用串口调试助手打开串口,让测试主机与被测操作***能够进行通信。选定被测操作***开发板上的一个管脚与示波器的模拟输入通道相连,测试过程中目标代码***语句操作的就是这个选定的管脚。示波器与测试主机的连接可以用RS232电缆线直接相连,也可以通过以太网网络设置进行连接。
步骤204,在***函数中的顶层函数的目标检测位置***第一目标代码,得到第一函数。
其中,***函数的顶层函数指的是第一层节点的函数,数量至少为1。例如,***函数的函数分层结果如图3所示,其中A表示***函数中的顶层函数,B和C表示第二层函数,D和E表示函数B的下层函数,F、G以及H表示函数E的下层函数。每一***函数的函数层数没有明确的数据,少则调用四、五层,多则有几十上百层。***函数中各函数的函数分层结果由测试主机中的语法分析工具生成的抽象语法树所确定。
目标检测位置指的是***函数中每一函数***目标代码的位置,包括函数的头部位置和尾部位置。例如,在对函数进行检测时,在函数的头部位置***目标代码,可以检测函数是否被执行。又例如,在函数的头部位置和尾部位置均***目标代码时,可用于检测函数的运行时间或者函数是否运行完毕。
第一目标代码和第二目标代码均为目标代码,并且都为具有使示波器的电平发生跳变的功能的代码段。例如,当函数头部位置的第一目标代码被执行时,则示波器上的电平从低电平跳变为高电平,当函数尾部位置的第一目标代码被执行时,则示波器上的电平从高电平跳变为低电平。第一目标代码和第二目标代码的具体代码形式可以相同也可以不同。第一函数和第二函数均为***了目标代码的函数。
可选地,服务器根据测试主机中装载的语法分析工具生成的抽象语法树,确定***函数的顶层函数,并在顶层函数的头部位置和尾部位置均***可使示波器的电平发生跳变的第一目标代码,得到第一函数。
可选地,服务器根据测试主机中装载的语法分析工具生成的抽象语法树,确定***函数的顶层函数,并在顶层函数的头部位置或尾部位置***可使示波器的电平发生跳变的第一目标代码,得到第一函数,以检测函数是否被执行。
可选地,服务器根据测试主机中装载的语法分析工具生成的抽象语法树,确定***函数顶层的每一函数,并在每一函数的头部位置或尾部位置均***可使示波器的电平发生跳变的第一目标代码,得到多个第一函数,以检测顶层的每一函数的运行时间。
步骤206,当对第一函数进行测试得到的第一测试结果不满足第一目标条件时,在顶层函数的下层函数的目标检测位置***第二目标代码,得到第二函数。
其中,第一目标条件和第二目标条件均为函数对应的执行时间,也就是说函数的运行时间小于或等于执行时间才算是满足目标条件。例如,函数A在30纳秒内被执行完毕才算是正常执行,但是在对函数A进行测试时,函数A实际运行了40纳秒才运行完毕,则表示函数A的测试结果不满足对应的目标条件。又例如,函数B在30纳秒内被执行完毕才算是正常执行,在对函数B进行测试时,函数B实际运行了25纳秒,则表示函数B的测试结果满足对应的目标条件。由于每一函数所对应的执行时间存在相同的情况,也存在不同的情况,则第一目标条件和第二目标条件可以相同也可以不同。
可选地,当服务器运行第一函数后,检测到第一函数的运行时间超过了所对应的执行时间,即不满足第一目标条件,则服务器根据抽象语法树确定顶层函数的下层函数,并在下层函数的目标检测位置处***第二目标代码,从而得到第二函数,并对第二函数进行测试。
在一个具体应用中,服务器检测到第一函数的运行时间为30纳秒,而第一函数所对应的执行时间为25纳秒,则第一函数的第一测试结果不满足目标条件。服务器再根据抽象语法树确定顶层函数的下层函数,并在下层函数的目标检测位置处***第二目标代码,从而得到第二函数,并对第二函数进行测试。
步骤208,当对第二函数进行测试得到的第二测试结果满足第二目标条件时,基于第一测试结果和第二测试结果,得到待测试性能类别的性能测试结果。
其中,当第一测试结果不满足第一目标条件时,搜索顶层函数调用的下层函数,若下层函数***目标代码后得到的第二测试结果满足第二目标条件,则不再向下搜索,是顶层函数中的其它代码缺陷导致的低性能,若下层函数的第二测试结果也不满足第二测试结果,则还需要再对下层函数所调用的下层函数进行测试,相当于对第三层函数进行测试,直到找出影响***性能的最小函数。例如,如图3所示,A是主程序,测试发现A不满足目标条件,于是找到A调用的两个函数B和C,若B和C都满足目标条件,则不再需要向下定位,是A程序中的其它代码缺陷导致的低性能,若B和C中有任意一个不满足目标条件,则只需要对不满足的函数节点向下定位。另外,随着层数的加深,实时性能的要求会越来越严苛。
可选地,当服务器测试第二函数后,检测到第二函数的运行时间未超过所对应的执行时间,即满足第二目标条件,则服务器根据第一测试结果和第二测试结果得到的待测试性能类别的性能测试结果为顶层函数中的其它代码缺陷导致的低性能。
在一个具体应用中,当服务器检测到第一测试结果不满足第一目标条件,第二测试结果满足第二目标条件时,表示是顶层函数中其他代码或者***本身的缺陷所导致的低性能,不需要向下定位,可以直接输出待测试性能类别的性能测试结果为顶层函数中其他代码或者***本身的缺陷所导致的低性能。
上述***性能测试方法中,通过在待测试性能类别所对应的***函数中顶层函数的目标检测位置***第一目标代码,再对得到的第一函数进行测试,并在第一测试结果不满足第一目标条件时,对顶层函数的下层函数进行测试,在第二测试结果满足第二目标条件时,停止下层函数的目标代码***和测试,可以减少***性能测试时***目标代码的数量,从而减少***资源的消耗。
在一个实施例中,***性能测试方法还包括:
获取每一待测试性能类别各自的性能测试结果和每一待测试性能类别各自的权值。
将每一性能测试结果中的时间数据转换为性能得分数据。
基于每一权值和每一性能得分数据,得到被测***的测试结果。
其中,每一待测试性能类别各自的权值是根据待测试性能类别所属的模块调用频率和每一待测试性能类别所属的模块运行时间所决定的。例如,测量任务切换模块、中断响应模块、抢占模块、信号量混洗模块、死锁解除模块和消息传递延迟模块被调用的时间,平均归一化后分别为(t1,t2,t3,t4,t5,t6),将操作***使用过程中6个模块的调用频率记录为(f1,f2,f3,f4,f5,f6)。由于时间越短的模块重要程度越高,因此最终各模块的权值α计算公式为:其中,αi表示第i个模块,也即第i个待测试性能类别的权值。模块被调用的频率为该模块被调用的次数与6个模块被调用的总次数的商。
时间数据表示待测试性能类别所属的模块的运行时间,也就是待测试性能类别对应的***函数中的函数从开始执行到结束的时间,模块的运行时间越短越重要。性能得分数据是对测试结果得到的一系列时间数据进行归一化操作,将数据范围统一到[0,1]区间,同时由于时间数据越小,***实时性能越好,因此将测试时间数据转换为性能得分数据的公式为:其中new表示归一化后的新数据;old表示未归一化的数据;min表示数据中的最小值;max表示数据中的最大值。例如,未归一化时有一组测试时间数据:old=[400ns,600ns,1.2us,2.5us,800ns,50us],min=400ns,max=50us,归一化后的性能得分数据为new=[1,0.996,0.984,0.958,0.992,0]。
被测***的测试结果由每一待测试性能类别各自的权值与对应的性能得分数据的乘积之间的和所确定。例如,A待测试性能类别的权值为a,性能得分数据为X,B待测试性能类别权值为b,性能得分数据为Y,则被测***的测试结果总得分就是aX+bY。总得分越高表示被测***的实时性能越好。
可选地,服务器获取每一待测试性能类别所属的模块的运行时间,得到每一待测试性能类别各自的性能测试结果,并根据待测试性能类别所属的模块调用频率和每一待测试性能类别所属的模块的运行时间确定各待测试性能类别的权值。服务器再根据每一待测试性能类别各自的权值与对应的性能得分数据的乘积之间的和确定被测***的测试结果。
本实施例中,通过加权求和的方式计算被测***的测试总得分,能够综合考虑被测***的各个待测试性能类别的性能,避免出现测评不全面的情况,从而减小被测***的性能测试的误差。
在一个实施例中,目标检测位置包括函数的头部位置和尾部位置。
在***函数中的顶层函数的目标检测位置***第一目标代码,得到第一函数,包括:
使用语法分析工具生成待测试性能类别的抽象语法树,并基于抽象语法树确定待测试性能类别的***函数的函数分层结果。
获取函数分层结果中的顶层函数,并在顶层函数的头部位置和尾部位置***第一目标代码,得到第一函数。
其中,语法分析工具装载在测试主机中,用于生成待测试性能类别对应的抽象语法树。抽象语法树是源代码的抽象语法结构的树状表示,树上的每个节点都表示源代码中的一种结构,之所以说是抽象的,是因为抽象语法树并不会表示出真实语法出现的每一个细节,比如说,嵌套括号被隐含在树的结构中,并没有以节点的形式呈现。
函数分层结果用于按层次遍历搜索抽取调用的函数。例如,基于抽象语法树得到的函数分层结果中A函数为第一层,B和C为第二层,D、E以及F为第三层,则先对A进行调用,再调用B和C,最后调用D、E以及F。其中A函数也表示顶层函数。其中,函数的调用过程中具有最后调用的函数最先返回的特性,与数据结构中栈的后进先出特性一致,为了使函数及其测试时间一一对应,采用栈来存储函数名。例如,执行一个函数,则在栈中实时存储该函数的函数名。
可选地,服务器使用测试主机中的语法分析工具获取到待测试性能类别的抽象语法树,再根据抽象语法树得到的函数分层结果,确定***函数的顶层函数。服务器在确定顶层函数后,在顶层函数的头部位置和尾部位置均***使示波器的电平发生跳变的第一目标代码,得到第一函数。服务器再根据第一函数的测试结果,决定是否继续向下搜索。在第一函数的测试结果不满足目标条件的情况下则继续向下搜索,同时将该函数的函数名放入栈中。
在一个具体应用中,如图4所示,层次遍历搜索所使用的算法以archTaskCtxSwitch函数开始,对此函数进行目标代码***操作并测试。若此函数测试时间符合正常范围,则结束测试。若测试发现运行时间滞后,则搜索该函数节点的下一层函数信息,使用队列数据结构存放函数名,以便按序得到测试时间。
本实施例中,通过按照函数分层结果对待预测性能类别的***函数进行分层测试,并依据上层函数的测试结果决定是否对下层函数进行目标代码的***和测试,从而避免了在每一个函数的目标检测位置都***目标代码的操作,使得代码膨胀率减小,目标代码***效率升高。
在一个实施例中,当对第一函数进行测试得到的第一测试结果不满足第一目标条件时,在顶层函数的下层函数的目标检测位置***第二目标代码,得到第二函数,包括:
获取待测试性能类别的***函数的函数分层结果。
当第一测试结果不满足目标条件时,基于函数分层结果确定顶层函数的下层函数。
在顶层函数的下层函数的目标检测位置***第二目标代码,得到第二函数。
使用待测试性能类别所对应的测试代码对第二函数进行测试,得到第二测试结果。
其中,目标检测位置指的是***函数中每一函数***目标代码的位置,可以是函数的头部位置,也可以是函数的尾部位置。
可选地,服务器根据抽象语法树得到的函数分层结果,在第一函数的测试结果未达到目标条件的情况下,搜索顶层函数的下层函数。服务器在顶层函数的下层函数的头部位置和尾部位置均***使示波器的电平发生跳变的第二目标代码,得到第二函数。服务器再对第二函数进行测试,得到第二测试结果。服务器再根据第二测试结果决定是否继续向下搜索。在第二测试结果不满足目标条件的情况下则继续向下搜索并***目标代码和测试,在第二测试结果满足目标条件的情况下则停止搜索。同时将该函数的函数名放入栈中,也就是放入队列数据结构中。
本实施例中,通过按照函数分层结果对待预测性能类别的***函数进行分层测试,并依据上层函数的测试结果决定是否对下层函数进行目标代码的***和测试,避免了在每一个函数的目标检测位置都***目标代码的操作,从而减少了计算机资源的浪费。
在一个实施例中,如图5所示,第一函数和第二函数的数量均至少为两个。
在***函数中的顶层函数的目标检测位置***第一目标代码,得到第一函数,包括:
步骤502,在***函数中每一顶层函数各自的目标检测位置处***第一目标代码,得到多个第一函数。
其中,***函数中每一层的函数至少为两个。例如,第一层函数有函数A和函数B,函数A的下层函数有函数C和函数D,函数B的下层函数有函数E、函数F以及函数G。当函数A和函数B的目标检测位置均***第一目标代码时,则函数A和函数B***目标代码后均为第一函数。
步骤504,从多个第一函数中,获取第一测试结果中不满足目标条件的测试结果所对应的目标第一函数。
其中,目标第一函数指的是多个第一函数中运行时间不满足第一目标条件的函数,也就是运行时间超过了执行时间的函数。例如,第一层的函数A和函数B分别***第一目标代码后进行测试,测试结果显示函数A的运行时间不满足第一目标条件,而函数B的运行时间满足第一目标条件,则函数A***第一目标代码后的函数就为不满足目标条件的测试结果所对应的目标第一函数。
可选地,服务器使用测试主机生成的测试代码对多个第一函数进行测试后,分别得到各第一函数所对应的第一测试结果。服务器根据各第一测试结果,确定运行时间超过了执行时间的目标第一函数。
步骤506,按照待测试性能类别的***函数的函数分层结果,在目标第一函数的每一下层函数的目标检测位置***第二目标代码,得到多个第二函数。
其中,目标检测位置包括函数的头部位置和函数的尾部位置。在进行第二目标代码***操作时,可以在函数头部位置或者函数尾部位置***第二目标代码以检测函数是否被执行,也可以在函数头部位置和函数尾部位置均***第二目标代码,以检测函数的运行时间。
本实施例中,通过根据函数分层结果对函数进行分层测试,采用循序渐进的方法,只有当上层函数节点的测试结果异常时,才会向下寻找下层函数并进行目标代码的***和测试,可以降低目标代码的***次数,减少***资源的消耗。
在一个实施例中,***性能测试方法还包括:
当第二测试结果不满足目标条件时,按照待测试性能类别的***函数的函数分层结果,依次对不满足目标条件的函数的下层函数进行测试,直至目标函数不存在下层函数。
其中,目标函数是***函数中的最底层函数,也就是说目标函数为无下层函数的函数。例如,函数A的测试结果不满足目标条件,也就是运行时间超过了规定的执行时间,但是函数A的下层没有可调用的函数,则函数A就为目标函数。
可选地,服务器检测到第二测试结果依旧不满足目标条件时,再根据函数分层结果对第二测试结果对应函数的下层函数进行目标代码***和测试,直至搜索到***函数中测试结果不满足目标条件所对应的最底层函数,则结束测试。
本实施例中,通过在得到第二测试结果不满足目标条件后,再根据函数分层结果对不满足目标条件的函数的下层函数进行目标代码的***和测试,可以有针对性的对下层函数进行目标代码的***和测试,减少目标代码的***,从而避免代码发生膨胀。
在一个实施例中,***性能测试方法还包括:
当函数对应的目标检测位置处的目标代码被执行时,获取与被测***连接的示波器的电平变化。函数包括待测试性能类别所对应的***函数中的每一函数。
基于电平变化,确定函数的测试结果。
其中,目标代码可以是第一目标代码,也可以是第二目标代码,还可以是***函数中能使示波器电平发生跳变的其他代码段。
可选地,服务器执行到***函数中每一函数的头部位置和尾部位置***的目标代码时,示波器的电平则发生跳变。服务器再根据示波器中电平变化的结果,确定该函数的测试结果。
在一个具体应用中,函数A的头部位置和尾部位置均***了目标代码,当执行到函数A的头部位置目标代码时,示波器的电平从低电平跳变至高电平,并保持高电平信号,当执行到函数A的尾部位置目标代码时,示波器的电平从高电平跳变至低电平,高电平持续的时间为函数A的运行时间,也是函数A的测试结果。
本实施例中,通过示波器的电位信号变换情况,可以直观的看到函数调用过程和运行时间,避免了获取时间戳和申请***资源,从而可以减小实时性能结果的误差。
本申请还提供一种应用场景,该应用场景应用上述的***性能测试方法。具体地,该***性能测试方法在该应用场景的应用如下:通过USB转串口线实现测试主机USB接口到通用串口之间的转换,为没有串口的计算机提供快速的通道,使其能够与开发板进行通信。将型号为mini210s型的被测***开发板上S5PV210(Hummingbird,处理器)的GPJ3(7)GPIO(General Purpose Input Output,通用输入输出)管脚配置为输出模式,将GPJ3(7)GPIO管脚连接到DS1104Z型数字示波器的模拟输入通道CH1。将USB线正确连接于示波器和测试主机之间,点击测试主机桌面上的Tektronix Toolbar Start Preferences(泰克工具栏启动首选项)图标,打开Microsoft Excel(微软卓越)连接TekW(特瓦克)并用TekW toolbar(特瓦克工具栏)识别到示波器,使得测试主机能够获取示波器的数据,连接示意图如图6所示。在测试主机上预先设计任务切换时间指标的测试代码,由于Sylix操作***的线程上下文切换函数是archTaskCtxSwitch函数,因此还要将预先设计好的能够调用archTaskCtxSwitch函数的测试代码烧写进mini210s型被测***开发板中。同时,使用语法分析工具得到此函数执行过程的抽象语法树,即执行过程中调用的各类函数之间的先后关系或函数分层结果。从archTaskCtxSwitch函数开始,对此函数的头部位置和尾部位置均进行目标代码***操作并测试。若archTaskCtxSwitch函数的运行时间符合正常范围,则结束测试;若运行时间滞后,则搜索该函数节点的下一层函数信息,对下一层函数分别进行目标代码***和测试,并使用队列数据结构存放该函数名,以便按序得到函数的运行时间。在程序运行过程中,GPJ3(7)GPIO管脚处电压会随着任务切换不停的变换,示波器接收这些电压信号的变换并记录相应的运行时间,传输给测试主机,由测试主机整理这些数据生成最终的测试报告。
应该理解的是,虽然如上的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的***性能测试方法的***性能测试装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个***性能测试装置实施例中的具体限定可以参见上文中对于***性能测试方法的限定,在此不再赘述。
在一个实施例中,如图7所示,提供了一种***性能测试装置,包括:
函数确定模块702,用于获取被测***的待测试性能类别,确定待测试性能类别所对应的***函数。
目标代码***模块704,用于在***函数中的顶层函数的目标检测位置***第一目标代码,得到第一函数。
第一函数测试模块706,用于当对第一函数进行测试得到的第一测试结果不满足第一目标条件时,在顶层函数的下层函数的目标检测位置***第二目标代码,得到第二函数。
第二函数测试模块708,用于当对第二函数进行测试得到的第二测试结果满足第二目标条件时,基于第一测试结果和第二测试结果,得到待测试性能类别的性能测试结果。
在其中一个实施例中,***性能测试装置还包括:
权值获取单元,用于获取每一待测试性能类别各自的性能测试结果和每一待测试性能类别各自的权值。
得分获取单元,用于将每一性能测试结果中的时间数据转换为性能得分数据。
测试结果获取单元,用于基于每一权值和每一性能得分数据,得到被测***的测试结果。
在其中一个实施例中,目标代码***模块包括:
第一函数分层结果获取单元,用于使用语法分析工具生成待测试性能类别的抽象语法树,并基于抽象语法树确定待测试性能类别的***函数的函数分层结果。
第一函数获取单元,用于获取函数分层结果中的顶层函数,并在顶层函数的头部位置和尾部位置***第一目标代码,得到第一函数。
在其中一个实施例中,第一函数测试模块包括:
第二函数分层结果获取单元,用于获取待测试性能类别的***函数的函数分层结果。
下层函数确定单元,用于当第一测试结果不满足目标条件时,基于函数分层结果确定顶层函数的下层函数。
在顶层函数的下层函数的目标检测位置***第二目标代码,得到第二函数。
第二函数测试模块包括:
第二测试结果获取单元,用于使用待测试性能类别所对应的测试代码对第二函数进行测试,得到第二测试结果。
在其中一个实施例中,目标代码***模块包括:
第一目标代码***单元,用于在***函数中每一顶层函数各自的目标检测位置处***第一目标代码,得到多个第一函数。
第一函数测试单元,用于分别对各第一函数进行测试,得到多个第一函数各自的第一测试结果。
第一函数测试模块包括:
第一测试结果确定单元,用于从多个第一函数中,获取第一测试结果中不满足目标条件的测试结果所对应的目标第一函数。
第二目标代码***单元,用于按照待测试性能类别的***函数的函数分层结果,在目标第一函数的每一下层函数的目标检测位置***第二目标代码,得到多个第二函数。
在其中一个实施例中,***性能测试装置还包括:
层次搜索单元,用于当第二测试结果不满足目标条件时,按照待测试性能类别的***函数的函数分层结果,依次对不满足目标条件的函数的下层函数进行测试,直至目标函数不存在下层函数。
在其中一个实施例中,***性能测试装置还包括:
电平变化获取单元,用于当函数对应的目标检测位置处的目标代码被执行时,获取与被测***连接的示波器的电平变化;函数包括待测试性能类别所对应的***函数中的每一函数。
函数的测试结果确定单元,用于基于电平变化,确定函数的测试结果。
在其中一个实施例中,
上述***性能测试装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图8所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过***总线连接,通信接口通过输入/输出接口连接到***总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作***、计算机程序和数据库。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的数据库用于存储被测***的待测试性能类别、待测试性能类别所对应的***函数、***函数中的顶层函数、第一目标代码、第一函数、第一测试结果、第一目标条件、顶层函数的下层函数、目标检测位置、第二目标代码、第二函数、第二测试结果、第二目标条件、待测试性能类别的性能测试结果、待测试性能类别各自的权值、性能得分数据、被测***的测试结果、抽象语法树、函数分层结果以及示波器的电平变化数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种***性能测试方法。
本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种***性能测试方法,其特征在于,所述方法包括:
获取被测***的待测试性能类别,确定所述待测试性能类别所对应的***函数;
在所述***函数中的顶层函数的目标检测位置***第一目标代码,得到第一函数;
当对所述第一函数进行测试得到的第一测试结果不满足第一目标条件时,在所述顶层函数的下层函数的目标检测位置***第二目标代码,得到第二函数;
当对所述第二函数进行测试得到的第二测试结果满足第二目标条件时,基于所述第一测试结果和所述第二测试结果,得到所述待测试性能类别的性能测试结果。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取每一所述待测试性能类别各自的性能测试结果和每一所述待测试性能类别各自的权值;
将每一所述性能测试结果中的时间数据转换为性能得分数据;
基于每一所述权值和每一所述性能得分数据,得到所述被测***的测试结果。
3.根据权利要求1所述的方法,其特征在于,所述目标检测位置包括函数的头部位置和尾部位置;
所述在所述***函数中的顶层函数的目标检测位置***第一目标代码,得到第一函数,包括:
使用语法分析工具生成所述待测试性能类别的抽象语法树,并基于所述抽象语法树确定所述待测试性能类别的***函数的函数分层结果;
获取所述函数分层结果中的顶层函数,并在所述顶层函数的头部位置和尾部位置***第一目标代码,得到第一函数。
4.根据权利要求1所述的方法,其特征在于,所述当对所述第一函数进行测试得到的第一测试结果不满足第一目标条件时,在所述顶层函数的下层函数的目标检测位置***第二目标代码,得到第二函数,包括:
获取所述待测试性能类别的***函数的函数分层结果;
当所述第一测试结果不满足目标条件时,基于所述函数分层结果确定所述顶层函数的下层函数;
在所述顶层函数的下层函数的目标检测位置***第二目标代码,得到第二函数;
所述方法还包括:
使用所述待测试性能类别所对应的测试代码对所述第二函数进行测试,得到第二测试结果。
5.根据权利要求1所述的方法,其特征在于,所述第一函数和所述第二函数均至少为两个;
所述在所述***函数中的顶层函数的目标检测位置***第一目标代码,得到第一函数,包括:
在所述***函数中每一顶层函数各自的目标检测位置处***第一目标代码,得到多个第一函数;
分别对各所述第一函数进行测试,得到多个所述第一函数各自的第一测试结果;
所述当对所述第一函数进行测试得到的第一测试结果不满足第一目标条件时,在所述顶层函数的下层函数的目标检测位置***第二目标代码,得到第二函数,包括:
从多个所述第一函数中,获取所述第一测试结果不满足目标条件的目标第一函数;
按照所述待测试性能类别的***函数的函数分层结果,在所述目标第一函数的每一下层函数的目标检测位置***第二目标代码,得到多个第二函数。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述第二测试结果不满足所述目标条件时,按照所述待测试性能类别的***函数的函数分层结果,依次对不满足所述目标条件的函数的下层函数进行测试,直至目标函数不存在下层函数。
7.根据权利要求1至6任意一项所述的方法,其特征在于,所述方法还包括:
当函数对应的目标检测位置处的目标代码被执行时,获取与所述被测***连接的示波器的电平变化;所述函数包括所述待测试性能类别所对应的***函数中的每一函数;
基于所述电平变化,确定所述函数的测试结果。
8.一种***性能测试装置,其特征在于,所述装置包括:
函数确定模块,用于获取被测***的待测试性能类别,确定所述待测试性能类别所对应的***函数;
目标代码***模块,用于在所述***函数中的顶层函数的目标检测位置***第一目标代码,得到第一函数;
第一函数测试模块,用于当对所述第一函数进行测试得到的第一测试结果不满足第一目标条件时,在所述顶层函数的下层函数的目标检测位置***第二目标代码,得到第二函数;
第二函数测试模块,用于当对所述第二函数进行测试得到的第二测试结果满足第二目标条件时,基于所述第一测试结果和所述第二测试结果,得到所述待测试性能类别的性能测试结果。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310220100.4A CN116450496A (zh) | 2023-03-08 | 2023-03-08 | ***性能测试方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310220100.4A CN116450496A (zh) | 2023-03-08 | 2023-03-08 | ***性能测试方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116450496A true CN116450496A (zh) | 2023-07-18 |
Family
ID=87132770
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310220100.4A Pending CN116450496A (zh) | 2023-03-08 | 2023-03-08 | ***性能测试方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116450496A (zh) |
-
2023
- 2023-03-08 CN CN202310220100.4A patent/CN116450496A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108376221B (zh) | 一种基于aadl模型扩展的软件***安全性验证与评估方法 | |
US9529692B2 (en) | Memory management tools | |
CN110741354B (zh) | 呈现代码实体调用之间的差异 | |
US9715409B2 (en) | Job delay detection method and information processing apparatus | |
CN108153587B (zh) | 一种针对大数据平台的慢任务原因检测方法 | |
US5838949A (en) | System and method for execution-sequenced processing of electronic design simulation results | |
CN108319711A (zh) | 数据库的事务一致性测试方法、装置、存储介质及设备 | |
US10241895B2 (en) | Memory stack trace management tool | |
US9880925B1 (en) | Collecting structured program code output | |
CN117234859A (zh) | 一种性能事件监控方法、装置、设备和存储介质 | |
CN117112522A (zh) | 并发进程日志管理方法、装置、设备和存储介质 | |
US20150278656A1 (en) | Job discrimination method and device | |
CN117453437A (zh) | 数据库语句处理方法、装置、计算机设备和存储介质 | |
CN101515864B (zh) | 告警信息配制***及其配制方法 | |
CN116450496A (zh) | ***性能测试方法、装置、计算机设备和存储介质 | |
JP2007249949A (ja) | フォーマットする試験結果の文脈を提供する変数値を格納する装置 | |
CN106991116A (zh) | 数据库执行计划的优化方法和装置 | |
CN112766470A (zh) | 特征数据处理方法、指令序列生成方法、装置及设备 | |
CN115827636A (zh) | 存储及从波形数据库读取逻辑***设计的仿真数据的方法 | |
CN115757172A (zh) | 测试执行方法、装置、存储介质及计算机设备 | |
US20110295884A1 (en) | Data conversion method processing for conversion of database, apparatus and computer program of the same | |
CN112181825A (zh) | 测试案例库构建方法、装置、电子设备及介质 | |
CN111309475A (zh) | 一种检测任务执行方法及设备 | |
JP2019144873A (ja) | ブロック線図解析装置 | |
CN117217165B (zh) | 一种芯片设计前端质量行为的执行方法、装置及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |