CN105912467B - 一种性能测试方法及装置 - Google Patents
一种性能测试方法及装置 Download PDFInfo
- Publication number
- CN105912467B CN105912467B CN201610216189.7A CN201610216189A CN105912467B CN 105912467 B CN105912467 B CN 105912467B CN 201610216189 A CN201610216189 A CN 201610216189A CN 105912467 B CN105912467 B CN 105912467B
- Authority
- CN
- China
- Prior art keywords
- function
- control
- version code
- calling
- current version
- 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
Links
Images
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/368—Test management for test version control, e.g. updating test cases to a new software version
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
技术领域
本发明涉及电子技术领域,尤其涉及一种性能测试方法及装置。
背景技术
开发人员在开发一个软件过程中,需要不断对软件的版本代码进行改进,在开发出一个新的版本代码之后,需要对新的版本代码进行测试,检查出新的版本代码是否存在Bug,在现有技术方案中,存在如下几种测试方法:第一,覆盖核心测试场景测试,根据用户的数据上报反馈或主观判定,筛选操作频率较高的应用场景相关的测试输入集,但是,对于拥有大量用户的产品,仅覆盖核心场景不能达到实际测试需要;第二,使用多台测试设备并行测试,但是,在资源限制情况下无法满足测试要求;第三,对软件输入和输出的记录进行机器学习,寻找一些容易造成软件异常的输入场景进行优先测试,但是,实现复杂度和学习成本过高;第四,测试输入集正交化,尽量降低测试输入集(输入操作的集合)彼此之间的相关性,但是,对于不同的测试场景,如何降低输入集元素的相关性很难实现。
发明内容
本发明实施例提供一种性能测试方法及装置。可以降低测试输入集,减低测试的复杂度以及提高测试的效率。
本发明第一方面提供了一种性能测试方法,包括:
获取控件函数映射表,所述控件函数映射表包括操作控件与调用函数的多个映射关系;
确定当前版本代码与参考版本代码之间的差异函数;
根据所述差异函数,从所述控件函数映射表查找与所述差异函数对应的操作控件;
触发所述当前版本代码中的所述与所述差异函数对应的操作控件进行测试,并获取所述当前版本代码的测试数据;
根据所述当前版本代码的测试数据,确定所述当前版本代码的测量结果。
其中,所述获取控件函数映射表包括:
触发所述当前版本代码或所述参考版本代码中的所有操作控件进行遍历测试,并跟踪所述遍历测试中调用的调用函数;
获取所述所有操作控件的触发信息以及所述调用函数的调用信息;
根据所述所有操作控件的触发信息以及所述调用函数的调用信息,确定所述控件函数映射表。
其中,所述触发信息包括控件触发时间戳,所述调用信息包括函数调用时间戳,所述根据所述所有操作控件的触发信息以及所述调用函数的调用信息,确定所述控件函数映射表包括:
将所述所有操作控件的控件触发时间戳与所述调用函数的函数调用时间戳进行对比;
若所述所有操作控件中的目标控件的控件触发时间戳与所述调用函数中的目标函数的函数调用时间戳相同,则建立所述目标控件与所述目标函数的映射关系。
其中,所述确定当前版本代码与参考版本代码之间的差异函数包括:
将所述当前版本代码与所述参考版本代码进行对比,确定所述差异函数。
其中,所述测试结果包括测试异常,所述根据所述当前版本代码的测试数据,确定所述当前版本代码的测量结果包括:
获取所述参考版本代码的测试数据;
将所述当前版本代码的测试数据与所述参考版本代码的测试数据进行对比,确定调用所述差异函数所引发的测试异常。
相应地,本发明第二方面提供了一种性能测试装置,包括:
关系获取模块,用于获取控件函数映射表,所述控件函数映射表包括操作控件与调用函数的多个映射关系;
函数确定模块,用于确定当前版本代码与参考版本代码之间的差异函数;
控件查找模块,用于根据所述差异函数,从所述控件函数映射表查找与所述差异函数对应的操作控件;
数据获取模块,用于触发所述当前版本代码中的所述与所述差异函数对应的操作控件进行测试,并获取所述当前版本代码的测试数据;
结果确定模块,用于根据所述当前版本代码的测试数据,确定所述当前版本代码的测量结果。
其中,所述关系获取模块包括:
控件触发单元,用于触发所述当前版本代码或所述参考版本代码中的所有操作控件进行遍历测试,并跟踪所述遍历测试中调用的调用函数;
信息获取单元,用于获取所述所有操作控件的触发信息以及所述调用函数的调用信息;
映射表确定单元,用于根据所述所有操作控件的触发信息以及所述调用函数的调用信息,确定所述控件函数映射表。
其中,所述触发信息包括控件触发时间戳,所述调用信息包括函数调用时间戳,所述映射表确定单元具体用于:
将所述所有操作控件的控件触发时间戳与所述调用函数的函数调用时间戳进行对比;
若所述所有操作控件中的目标控件的控件触发时间戳与所述调用函数中的目标函数的函数调用时间戳相同,则建立所述目标控件与所述目标函数的映射关系。
其中,所述函数确定模块具体用于:
将所述当前版本代码与所述参考版本代码进行对比,确定所述差异函数。
其中,所述测试结果包括测试异常,所述结果确定模块具体用于:
获取所述参考版本代码的测试数据;
将所述当前版本代码的测试数据与所述参考版本代码的测试数据进行对比,确定调用所述差异函数所引发的测试异常。
相应地,本发明第三方面提供了一种性能测试装置,所述装置包括接口电路、存储器以及处理器,其中,存储器中存储一组程序代码,且处理器用于调用存储器中存储的程序代码,用于执行以下操作:
获取控件函数映射表,所述控件函数映射表包括操作控件与调用函数的多个映射关系;
确定当前版本代码与参考版本代码之间的差异函数;
根据所述差异函数,从所述控件函数映射表查找与所述差异函数对应的操作控件;
触发所述当前版本代码中的所述与所述差异函数对应的操作控件进行测试,并获取所述当前版本代码的测试数据;
根据所述当前版本代码的测试数据,确定所述当前版本代码的测量结果。
实施本发明实施例,首先获取控件函数映射表;然后确定当前版本代码与参考版本代码之间的差异函数;其次根据所述差异函数,从所述控件函数映射表查找与所述差异函数对应的操作控件;再次触发所述当前版本代码中的所述与所述差异函数对应的操作控件进行测试,并获取所述当前版本代码的测试数据;最后根据所述当前版本代码的测试数据,确定所述当前版本代码的测量结果,通过查找当前版本代码和参考版本代码之间的差异代码,减小测试输入集,从而降低测试的复杂度以及提高测试的效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提出的一种性能测试的方法的第一实施例流程图;
图2是本发明实施例提供的一种获取控件函数映射表的结构示意图;
图3是本发明实施例提供的一种控件函数映射表;
图4是本发明实施例提供的一种获取差异函数的结构示意图;
图5是本发明提出的一种性能测试的方法的第二实施例流程图;
图6是本发明实施例提出的一种性能测试的装置的结构示意图;
图7是本发明实施例提出的装置中关系获取模块的结构示意图;
图8是本发明实施例提出的另一种性能测试的装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1是本发明提出的一种性能测试的方法的第一实施例流程图。如图所示,本发明实施例中的方法包括:
S101,获取控件函数映射表,所述控件函数映射表包括操作控件与调用函数的多个映射关系。
具体实现中,可以首先触发所述当前版本代码或所述参考版本代码中的所有操作控件进行遍历测试,并跟踪所述遍历测试中调用的调用函数;然后获取所述所有操作控件的触发信息以及所述调用函数的调用信息;最后根据所述所有操作控件的触发信息以及所述调用函数的调用信息,确定所述控件函数映射表,其中,所述触发信息包括控件触发时间戳,所述调用信息包括函数调用时间戳。进一步的,可以将所述所有操作控件的控件触发时间戳与所述调用函数的函数调用时间戳进行对比;若所述所有操作控件中的目标控件的控件触发时间戳与所述调用函数中的目标函数的函数调用时间戳相同,则建立所述目标控件与所述目标函数的映射关系,若所述所有操作控件中的目标控件的控件触发时间戳与所述调用函数中的目标函数的函数调用时间戳不相同,则确定所述目标控件与所述目标函数不存在映射关系。
例如,如图2所示,在使用NewMonkey进行遍历测试(点击所有操作控件进行测试)的同时,开启***内置工具Trace对启动操作控件之后调用的函数进行跟踪,NewMonkey记录所有操作控件的触发信息,Trace跟踪获取调用函数的调用信息,然后将两种信息对比,生成得到控件函数映射表,如图3所示,图3是本发明实施例提供的一种控件函数映射表,每个操作控件可以分别对应至少一个调用函数,如:在触发操作控件wiget_w1时,需要调用函数f1、f2以及f3,最后将控件函数映射表存入数据库。
需要说明的是,可以使用任何一个版本代码来建立控件函数映射表,并使用该控件函数映射表来测试之后的多个版本代码,如果某个版本代码与当前版本代码的差异性很大,就可以使用新的版本代码来重新生成控件函数映射表,在建立控件函数映射表时,可以采用并行遍历测试的方法。另外,为提高建立控件函数映射表速度,可以依据之前建立的控件函数映射表,对调用函数与操作控件相关的聚类进行分析,然后确定与新添加的调用函数相关性较强的操作控件,优先遍历这些操作控件,从而建立新添加的调用函数与操作控件的映射关系。
S102,确定当前版本代码与参考版本代码之间的差异函数。
具体实现中,可以将所述当前版本代码与所述参考版本代码进行对比,确定所述差异函数。如图4所示,可以将当前版本代码和参考版本代码输入到差异分析平台,对当前版本代码和参考版本代码进行比较,从而确定差异函数。
S103,根据所述差异函数,从所述控件函数映射表查找与所述差异函数对应的操作控件。
具体实现中,可以首先从控件函数映射表中查找与所述差异函数相同的调用函数,然后根据调用函数与操作控件的对应关系,确定查找到的调用函数对应的操作控件。
S104,触发所述当前版本代码中的所述与所述差异函数对应的操作控件进行测试,并获取所述当前版本代码的测试数据。
例如:在对音乐软件进行测试时,如果确定差异函数对应的操作控件为“下载”控件,则用户可以直接点击“下载”对该音乐软件进行测试,并在点击“下载”控件之后,获取测试数据,因此不需要对音乐软件的其他操作控件进行一一测试,缩短了测试的时间。
S105,根据所述当前版本代码的测试数据,确定所述当前版本代码的测量结果。
具体实现中,可以采集控件触发时间点到控件结束时间点之间的测试数据,其中,测试数据可以包括帧数据、IO操作次数等等,例如,可以确定帧数据的数量是否满足预设要求,IO操作次数是否满足预设次数等等,如果不满足,则表示差异函数引发了操作异常,需要对差异函数进行改进,如果满足,则测试正常。
在本发明实施例中,首先获取控件函数映射表;然后确定当前版本代码与参考版本代码之间的差异函数;其次根据所述差异函数,从所述控件函数映射表查找与所述差异函数对应的操作控件;再次触发所述当前版本代码中的所述与所述差异函数对应的操作控件进行测试,并获取所述当前版本代码的测试数据;最后根据所述当前版本代码的测试数据,确定所述当前版本代码的测量结果,通过查找当前版本代码和参考版本代码之间的差异代码,减小测试输入集,从而降低测试的复杂度以及提高测试的效率。
请参考图5,图5是本发明提出的一种性能测试的方法的第二实施例流程图。如图所示,本发明实施例中的方法包括:
S501,获取控件函数映射表,所述控件函数映射表包括操作控件与调用函数的多个映射关系。
具体实现中,首先触发所述当前版本代码或所述参考版本代码中的所有操作控件进行遍历测试,并跟踪所述遍历测试中调用的调用函数;然后获取所述所有操作控件的触发信息以及所述调用函数的调用信息;最后根据所述所有操作控件的触发信息以及所述调用函数的调用信息,确定所述控件函数映射表,其中,所述触发信息包括控件触发时间戳,所述调用信息包括函数调用时间戳。进一步的,将所述所有操作控件的控件触发时间戳与所述调用函数的函数调用时间戳进行对比;若所述所有操作控件中的目标控件的控件触发时间戳与所述调用函数中的目标函数的函数调用时间戳相同,则建立所述目标控件与所述目标函数的映射关系,若所述所有操作控件中的目标控件的控件触发时间戳与所述调用函数中的目标函数的函数调用时间戳不相同,则确定所述目标控件与所述目标函数不存在映射关系。
例如,如图2所示,在使用NewMonkey进行遍历测试(点击所有操作控件进行测试)的同时,开启***内置工具Trace对启动操作控件之后调用的函数进行跟踪,NewMonkey记录所有操作控件的触发信息,Trace跟踪获取调用函数的调用信息,然后将两种信息对比,生成得到控件函数映射表,如图3所示,图3是本发明实施例提供的一种控件函数映射表,每个操作控件可以分别对应至少一个调用函数,如:在触发操作控件wiget_w1时,需要调用函数f1、f2以及f3,最后将控件函数映射表存入数据库。
需要说明的是,可以使用任何一个版本代码来建立控件函数映射表,并使用该控件函数映射表来测试之后的多个版本代码,如果某个版本代码与当前版本代码的差异性很大,就可以使用新的版本代码来重新生成控件函数映射表,在建立控件函数映射表时,可以采用并行遍历测试的方法。另外,为提高建立控件函数映射表速度,可以依据之前建立的控件函数映射表,对调用函数与操作控件相关的聚类进行分析,然后确定与新添加的调用函数相关性较强的操作控件,优先遍历这些操作控件,从而建立新添加的调用函数与操作控件的映射关系。
S502,确定当前版本代码与参考版本代码之间的差异函数。
具体实现中,可以将所述当前版本代码与所述参考版本代码进行对比,确定所述差异函数。如图4所示,可以将当前版本代码和参考版本代码输入到差异分析平台,对当前版本代码和参考版本代码进行比较,从而确定差异函数。
S503,根据所述差异函数,从所述控件函数映射表查找与所述差异函数对应的操作控件。
具体实现中,可以首先从控件函数映射表中查找与所述差异函数相同的调用函数,然后根据调用函数与操作控件的对应关系,确定查找到的调用函数对应的操作控件。
S504,触发所述当前版本代码中的所述与所述差异函数对应的操作控件进行测试,并获取所述当前版本代码的测试数据。
例如:在对音乐软件进行测试时,如果确定差异函数对应的操作控件为“下载”控件,则用户可以直接点击“下载”对该音乐软件进行测试,并在点击“下载”控件之后,获取测试数据,因此不需要对音乐软件的其他操作控件进行一一测试,缩短了测试的时间。
S505,获取所述参考版本代码的测试数据。
具体实现中,可以触发所述参考版本代码中的所述与所述差异函数对应的操作控件,采集参考版本代码中控件触发时间点到控件结束时间点之间的测试数据。
S506,将所述当前版本代码的测试数据与所述参考版本代码的测试数据进行对比,确定调用所述差异函数所引发的测试异常。
具体实现中,可以确定所述当前版本代码的测试数据与所述参考版本代码的测试数据是否相同,如果相同,则说明所述差异函数没有引发测试异常,若不相同,则说明所述差异函数引发了测试异常,需要对差异函数进一步进行检测,确定差异函数引发测试异常的位置点。
在本发明实施例中,首先获取控件函数映射表;然后确定当前版本代码与参考版本代码之间的差异函数;其次根据所述差异函数,从所述控件函数映射表查找与所述差异函数对应的操作控件;再次触发所述当前版本代码中的所述与所述差异函数对应的操作控件进行测试,并获取所述当前版本代码的测试数据;最后根据所述当前版本代码的测试数据,确定所述当前版本代码的测量结 果,通过查找当前版本代码和参考版本代码之间的差异代码,减小测试输入集,从而降低测试的复杂度以及提高测试的效率。
请参考图6,图6是本发明实施例提出的一种性能测试的装置的结构示意图。如图所示,本发明实施例中的装置包括:
关系获取模块601,用于获取控件函数映射表,所述控件函数映射表包括操作控件与调用函数的多个映射关系。
具体实现中,如图7所示,关系获取模块601还可以进一步包括:
控件触发单元701,用于触发所述当前版本代码或所述参考版本代码中的所有操作控件进行遍历测试,并跟踪所述遍历测试中调用的调用函数。
信息获取单元702,用于获取所述所有操作控件的触发信息以及所述调用函数的调用信息,其中,所述触发信息包括控件触发时间戳,所述调用信息包括函数调用时间戳。
映射表确定单元703,用于根据所述所有操作控件的触发信息以及所述调用函数的调用信息,确定所述控件函数映射表。
具体实现中,可以将所述所有操作控件的控件触发时间戳与所述调用函数的函数调用时间戳进行对比;若所述所有操作控件中的目标控件的控件触发时间戳与所述调用函数中的目标函数的函数调用时间戳相同,则建立所述目标控件与所述目标函数的映射关系,若所述所有操作控件中的目标控件的控件触发时间戳与所述调用函数中的目标函数的函数调用时间戳不相同,则确定所述目标控件与所述目标函数不存在映射关系。
例如,如图2所示,在使用NewMonkey进行遍历测试(点击所有操作控件进行测试)的同时,开启***内置工具Trace对启动操作控件之后调用的函数进行跟踪,NewMonkey记录所有操作控件的触发信息,Trace跟踪获取调用函数的调用信息,然后将两种信息对比,生成得到控件函数映射表,如图3所示,图3是本发明实施例提供的一种控件函数映射表,每个操作控件可以分别对应至少一个调用函数,如:在触发操作控件wiget_w1时,需要调用函数f1、f2以及f3,最后将控件函数映射表存入数据库。
需要说明的是,可以使用任何一个版本代码来建立控件函数映射表,并使用该控件函数映射表来测试之后的多个版本代码,如果某个版本代码与当前版 本代码的差异性很大,就可以使用新的版本代码来重新生成控件函数映射表,在建立控件函数映射表时,可以采用并行遍历测试的方法。另外,为提高建立控件函数映射表速度,可以依据之前建立的控件函数映射表,对调用函数与操作控件相关的聚类进行分析,然后确定与新添加的调用函数相关性较强的操作控件,优先遍历这些操作控件,从而建立新添加的调用函数与操作控件的映射关系。
函数确定模块602,用于确定当前版本代码与参考版本代码之间的差异函数。
具体实现中,可以将所述当前版本代码与所述参考版本代码进行对比,确定所述差异函数。如图4所示,可以将当前版本代码和参考版本代码输入到差异分析平台,对当前版本代码和参考版本代码进行比较,从而确定差异函数。
控件查找模块603,用于根据所述差异函数,从所述控件函数映射表查找与所述差异函数对应的操作控件。
具体实现中,可以首先从控件函数映射表中查找与所述差异函数相同的调用函数,然后根据调用函数与操作控件的对应关系,确定查找到的调用函数对应的操作控件。
数据获取模块604,用于触发所述当前版本代码中的所述与所述差异函数对应的操作控件进行测试,并获取所述当前版本代码的测试数据。
例如:在对音乐软件进行测试时,如果确定差异函数对应的操作控件为“下载”控件,则用户可以直接点击“下载”对该音乐软件进行测试,并在点击“下载”控件之后,获取测试数据,因此不需要对音乐软件的其他操作控件进行一一测试,缩短了测试的时间。
结果确定模块605,用于根据所述当前版本代码的测试数据,确定所述当前版本代码的测量结果。其中,测试数据可以包括帧数据、IO操作次数等等,例如,可以确定帧数据的数量是否满足预设要求,IO操作次数是否满足预设次数等等,如果不满足,则表示差异函数引发了操作异常,需要对差异函数进行改进,如果满足,则测试正常。
具体实现中,可以首先触发所述参考版本代码中的所述与所述差异函数对应的操作控件,采集参考版本代码中控件触发时间点到控件结束时间点之间的测试数据,以及当前版本代码中控件触发时间点到控件结束时间点之间的测试 数据,然后将所述当前版本代码的测试数据与所述参考版本代码的测试数据进行对比,确定调用所述差异函数所引发的测试异常,进一步的,可以确定所述当前版本代码的测试数据与所述参考版本代码的测试数据是否相同,如果相同,则说明所述差异函数没有引发测试异常,若不相同,则说明所述差异函数引发了测试异常,需要对差异函数进一步进行检测,确定差异函数引发测试异常的位置点。
在本发明实施例中,首先获取控件函数映射表;然后确定当前版本代码与参考版本代码之间的差异函数;其次根据所述差异函数,从所述控件函数映射表查找与所述差异函数对应的操作控件;再次触发所述当前版本代码中的所述与所述差异函数对应的操作控件进行测试,并获取所述当前版本代码的测试数据;最后根据所述当前版本代码的测试数据,确定所述当前版本代码的测量结果,通过查找当前版本代码和参考版本代码之间的差异代码,减小测试输入集,从而降低测试的复杂度以及提高测试的效率。
请继续参考图8,图8是本发明实施例提出的另一种性能测试的装置的结构示意图。如图8所示,该装置包括处理器801和接口电路802,图中还给出了存储器803和总线804,该处理器801、接口电路802和存储器803通过总线804连接并完成相互间的通信。
其中,处理器801用于执行如下操作步骤:
获取控件函数映射表,所述控件函数映射表包括操作控件与调用函数的多个映射关系;
确定当前版本代码与参考版本代码之间的差异函数;
根据所述差异函数,从所述控件函数映射表查找与所述差异函数对应的操作控件;
触发所述当前版本代码中的所述与所述差异函数对应的操作控件进行测试,并获取所述当前版本代码的测试数据;
根据所述当前版本代码的测试数据,确定所述当前版本代码的测量结果。
其中,处理器801用于执行如下操作步骤:
触发所述当前版本代码或所述参考版本代码中的所有操作控件进行遍历测试,并跟踪所述遍历测试中调用的调用函数;
获取所述所有操作控件的触发信息以及所述调用函数的调用信息;
根据所述所有操作控件的触发信息以及所述调用函数的调用信息,确定所述控件函数映射表。
其中,处理器801用于执行如下操作步骤:
将所述所有操作控件的控件触发时间戳与所述调用函数的函数调用时间戳进行对比;
若所述所有操作控件中的目标控件的控件触发时间戳与所述调用函数中的目标函数的函数调用时间戳相同,则建立所述目标控件与所述目标函数的映射关系。
其中,处理器801用于执行如下操作步骤:
将所述当前版本代码与所述参考版本代码进行对比,确定所述差异函数。
其中,处理器801用于执行如下操作步骤:
获取所述参考版本代码的测试数据;
将所述当前版本代码的测试数据与所述参考版本代码的测试数据进行对比,确定调用所述差异函数所引发的测试异常。
需要说明的是,这里的处理器801可以是一个处理元件,也可以是多个处理元件的统称。例如,该处理元件可以是中央处理器(Central Processing Unit,CPU),也可以是特定集成电路(Application Specific Integrated Circuit,ASIC),
该装置还可以包括输入输出装置,连接于总线808,以通过总线与处理器801等其它部分连接。该输入输出装置可以为操作人员提供一输入界面,以便操作人员通过该输入界面选择布控项,还可以是其它接口,可通过该接口外接其它设备。
或者是被配置成实施本发明实施例的一个或多个集成电路,例如:一个或多个微处理器(digital singnal processor,DSP),或,一个或者多个现场可编程门阵列(FieldProgrammable Gate Array,FPGA)。
存储器803可以是一个存储装置,也可以是多个存储元件的统称,且用于存储可执行程序代码或应用程序运行装置运行所需要参数、数据等。且存储器803可以包括随机存储器(RAM),也可以包括非易失性存储器(non-volatile memory),例如磁盘存储器,闪存(Flash)等。
总线804可以是工业标准体系结构(Industry Standard Architecture,ISA) 总线、外部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(ExtendedIndustry Standard Architecture,EISA)总线等。该总线804可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
需要说明的是,对于前述的各个方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某一些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其他实施例的相关描述。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。
以上对本发明实施例所提供的内容下载方法及相关设备、***进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (12)
1.一种性能测试方法,其特征在于,所述方法包括:
触发当前版本代码或参考版本代码中的所有操作控件进行遍历测试,并跟踪所述遍历测试中调用的调用函数;
获取所有操作控件的触发信息以及所述调用函数的调用信息;
根据所述所有操作控件的触发信息以及所述调用函数的调用信息,确定控件函数映射表,所述控件函数映射表包括操作控件与调用函数的多个映射关系;所述触发信息包括控件触发时间戳,所述调用信息包括函数调用时间戳,若所述所有操作控件中的目标控件的控件触发时间戳与所述调用函数中的目标函数的函数调用时间戳相同,则建立所述目标控件与所述目标函数的映射关系,以形成所述控件函数映射表;
其中,所述控件函数映射表用于测试之后的多个版本代码,如果任一版本代码与当前版本代码的差异性大于阈值,则使用新的版本代码来重新生成所述控件函数映射表;
确定当前版本代码与参考版本代码之间的差异函数;
从所述控件函数映射表中查找与所述差异函数相同的调用函数,并根据所述调用函数与所述操作控件的所述映射关系,查找与所述差异函数对应的操作控件;
触发所述当前版本代码中的所述与所述差异函数对应的操作控件进行测试,并获取所述当前版本代码的测试数据;
根据所述当前版本代码的测试数据,确定所述当前版本代码的测量结果。
2.如权利要求1所述的方法,其特征在于,所述获取所述当前版本代码的测试数据,包括:
采集对所述操作控件的控件触发时间点到控件结束时间点之间的测试数据,其中,所述测试数据至少包括帧数据和IO操作次数;
所述根据所述当前版本代码的测试数据,确定所述当前版本代码的测量结果,包括:
确定所述帧数据的数量是否满足预设要求,以及,确定IO操作次数是否满足预设次数;
如果不满足,则对所述差异函数进行改进;如果满足,则所述测量结果为测试正常。
3.如权利要求1所述的方法,其特征在于,所述方法还包括:
根据所建立的所述控件函数映射表,对所述调用函数与所述操作控件相关的聚类进行分析;
确定与新添加的调用函数相关性大于相关性阈值的操作控件为目标操作控件;
优先遍历所述目标操作控件,以建立新添加的调用函数与所述操作控件的映射关系。
4.如权利要求1所述的方法,其特征在于,所述确定当前版本代码与参考版本代码之间的差异函数包括:
将所述当前版本代码与所述参考版本代码进行对比,确定所述差异函数。
5.如权利要求1-4任意一项所述的方法,其特征在于,所述测量结果包括测试异常,所述根据所述当前版本代码的测试数据,确定所述当前版本代码的测量结果包括:
获取所述参考版本代码的测试数据;
将所述当前版本代码的测试数据与所述参考版本代码的测试数据进行对比,确定调用所述差异函数所引发的测试异常。
6.一种性能测试装置,其特征在于,所述装置包括:
关系获取模块包括控件触发单元、信息获取单元和映射表确定单元,
其中,所述控件触发单元用于触发当前版本代码或参考版本代码中的所有操作控件进行遍历测试,并跟踪所述遍历测试中调用的调用函数;所述信息获取单元用于获取所有操作控件的触发信息以及所述调用函数的调用信息;所述映射表确定单元用于根据所述所有操作控件的触发信息以及所述调用函数的调用信息,确定控件函数映射表,所述控件函数映射表包括操作控件与调用函数的多个映射关系;所述触发信息包括控件触发时间戳,所述调用信息包括函数调用时间戳,若所述所有操作控件中的目标控件的控件触发时间戳与所述调用函数中的目标函数的函数调用时间戳相同,则建立所述目标控件与所述目标函数的映射关系,以形成所述控件函数映射表;其中,所述控件函数映射表用于测试之后的多个版本代码,如果任一版本代码与当前版本代码的差异性大于阈值,则使用新的版本代码来重新生成所述控件函数映射表
函数确定模块,用于确定当前版本代码与参考版本代码之间的差异函数;
控件查找模块,用于从所述控件函数映射表中查找与所述差异函数相同的调用函数,并根据所述调用函数与所述操作控件的所述映射关系,查找与所述差异函数对应的操作控件;
数据获取模块,用于触发所述当前版本代码中的所述与所述差异函数对应的操作控件进行测试,并获取所述当前版本代码的测试数据;
结果确定模块,用于根据所述当前版本代码的测试数据,确定所述当前版本代码的测量结果。
7.如权利要求6所述的装置,其特征在于,所述数据获取模块还用于:
采集对所述操作控件的控件触发时间点到控件结束时间点之间的测试数据,其中,所述测试数据至少包括帧数据和IO操作次数;
所述结果确定模块还用于:确定所述帧数据的数量是否满足预设要求,以及,确定IO操作次数是否满足预设次数;如果不满足,则对所述差异函数进行改进;如果满足,则所述测量结果为测试正常。
8.如权利要求6所述的装置,其特征在于,所述装置还包括:
分析模块,用于根据所建立的所述控件函数映射表,对所述调用函数与所述操作控件相关的聚类进行分析;
目标操作控件确定模块,用于确定与新添加的调用函数相关性大于相关性阈值的操作控件为目标操作控件;
遍历模块,用于优先遍历所述目标操作控件,以建立新添加的调用函数与所述操作控件的映射关系。
9.如权利要求6所述的装置,其特征在于,所述函数确定模块具体用于:
将所述当前版本代码与所述参考版本代码进行对比,确定所述差异函数。
10.如权利要求6-9任意一项所述的装置,其特征在于,所述测量结果包括测试异常,所述结果确定模块具体用于:
获取所述参考版本代码的测试数据;
将所述当前版本代码的测试数据与所述参考版本代码的测试数据进行对比,确定调用所述差异函数所引发的测试异常。
11.一种性能测试装置,其特征在于,所述装置包括接口电路、存储器以及处理器,其中,存储器中存储一组程序代码,且处理器用于调用存储器中存储的程序代码,用于执行以下操作:
触发当前版本代码或参考版本代码中的所有操作控件进行遍历测试,并跟踪所述遍历测试中调用的调用函数;
获取所有操作控件的触发信息以及所述调用函数的调用信息;
根据所述所有操作控件的触发信息以及所述调用函数的调用信息,确定控件函数映射表,所述控件函数映射表包括操作控件与调用函数的多个映射关系;所述触发信息包括控件触发时间戳,所述调用信息包括函数调用时间戳,若所述所有操作控件中的目标控件的控件触发时间戳与所述调用函数中的目标函数的函数调用时间戳相同,则建立所述目标控件与所述目标函数的映射关系,以形成所述控件函数映射表;
其中,所述控件函数映射表用于测试之后的多个版本代码,如果任一版本代码与当前版本代码的差异性大于阈值,则使用新的版本代码来重新生成所述控件函数映射表;
确定当前版本代码与参考版本代码之间的差异函数;
从所述控件函数映射表中查找与所述差异函数相同的调用函数,并根据所述调用函数与所述操作控件的所述映射关系,查找与所述差异函数对应的操作控件;
触发所述当前版本代码中的所述与所述差异函数对应的操作控件进行测试,并获取所述当前版本代码的测试数据;
根据所述当前版本代码的测试数据,确定所述当前版本代码的测量结果。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序能够被处理器执行以实现权利要求1-5任一项所述的性能测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610216189.7A CN105912467B (zh) | 2016-04-08 | 2016-04-08 | 一种性能测试方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610216189.7A CN105912467B (zh) | 2016-04-08 | 2016-04-08 | 一种性能测试方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105912467A CN105912467A (zh) | 2016-08-31 |
CN105912467B true CN105912467B (zh) | 2021-05-11 |
Family
ID=56745023
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610216189.7A Active CN105912467B (zh) | 2016-04-08 | 2016-04-08 | 一种性能测试方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105912467B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108459949B (zh) * | 2017-02-17 | 2021-08-06 | 腾讯科技(深圳)有限公司 | 一种测试方法及终端 |
CN107807882B (zh) * | 2017-10-26 | 2021-08-31 | 北京广利核***工程有限公司 | 基于mpu运行的时序算法块测试方法和装置 |
CN110908898B (zh) * | 2019-11-06 | 2023-07-21 | 贝壳找房(北京)科技有限公司 | 生成测试方案的方法及*** |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101256490A (zh) * | 2008-03-18 | 2008-09-03 | 腾讯科技(深圳)有限公司 | 一种可扩展的皮肤***及其实现方法 |
CN105404582A (zh) * | 2015-10-26 | 2016-03-16 | 努比亚技术有限公司 | 一种应用改善验证方法及*** |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100002685A1 (en) * | 2008-06-30 | 2010-01-07 | Shaham Eliezer | Method and system for providing communication |
US9075718B2 (en) * | 2013-03-14 | 2015-07-07 | Vmware, Inc. | Dynamic field extraction of log data |
US9594549B2 (en) * | 2013-03-15 | 2017-03-14 | International Business Machines Corporation | Automated patch generation |
CN105302710B (zh) * | 2014-07-03 | 2019-06-07 | 腾讯科技(深圳)有限公司 | 一种确定需要回归测试的测试用例的方法和装置 |
CN104298595A (zh) * | 2014-09-29 | 2015-01-21 | 百视通网络电视技术发展有限责任公司 | 自动化测试方法及测试*** |
-
2016
- 2016-04-08 CN CN201610216189.7A patent/CN105912467B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101256490A (zh) * | 2008-03-18 | 2008-09-03 | 腾讯科技(深圳)有限公司 | 一种可扩展的皮肤***及其实现方法 |
CN105404582A (zh) * | 2015-10-26 | 2016-03-16 | 努比亚技术有限公司 | 一种应用改善验证方法及*** |
Non-Patent Citations (1)
Title |
---|
在Visual C++中任意多个控件的创建;闵 艳 等;《计算机工程与设计》;20030831;55-57 * |
Also Published As
Publication number | Publication date |
---|---|
CN105912467A (zh) | 2016-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107562610B (zh) | 获取页面加载时间的方法、装置、终端和介质 | |
CN108845930B (zh) | 界面操作测试方法和装置、存储介质及电子装置 | |
US20110055777A1 (en) | Verification of Soft Error Resilience | |
WO2018120720A1 (zh) | 客户端程序的测试错误定位方法、电子装置及存储介质 | |
CN109766261B (zh) | 覆盖测试方法、装置、计算机设备和存储介质 | |
CN109815119B (zh) | 一种app链接渠道的测试方法及装置 | |
CN111108481B (zh) | 故障分析方法及相关设备 | |
CN113342685A (zh) | 精准测试方法、装置、计算机设备和存储介质 | |
CN105912467B (zh) | 一种性能测试方法及装置 | |
CN104021072A (zh) | 用于评估失效的软件程序的机器和方法 | |
CN111190827A (zh) | 接口自动化测试方法、装置、存储介质及电子设备 | |
CN110019067A (zh) | 一种日志分析方法及*** | |
CN112149136A (zh) | loT设备固件漏洞的检测方法、***及电子设备 | |
CN111897727A (zh) | 软件测试方法、装置、计算机设备及存储介质 | |
US9842044B2 (en) | Commit sensitive tests | |
CN106557419B (zh) | 程序的测试方法及装置 | |
CN111654495B (zh) | 用于确定流量产生来源的方法、装置、设备及存储介质 | |
CN108399125B (zh) | 自动化测试方法、装置、计算机设备和存储介质 | |
CN115686961A (zh) | 处理器测试方法、装置及电子设备 | |
CN108572892B (zh) | 一种基于PowerPC多核处理器的离线测试方法和装置 | |
US20140258991A1 (en) | Trace coverage analysis | |
CN110908903B (zh) | 一种基于可编辑yaml文件的测试方法 | |
CN116738091A (zh) | 页面监控方法、装置、电子设备及存储介质 | |
CN115827636A (zh) | 存储及从波形数据库读取逻辑***设计的仿真数据的方法 | |
US10055341B2 (en) | To-be-stubbed target determining apparatus, to-be-stubbed target determining method and non-transitory recording medium storing to-be-stubbed target determining program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |