一种性能测试方法、测试平台及测试机的制作方法

文档序号:6402046阅读:417来源:国知局
专利名称:一种性能测试方法、测试平台及测试机的制作方法
技术领域
本发明涉及测试技术领域,尤其涉及一种性能测试方法、测试平台及测试机。
背景技术
在对服务器进行性能测试时,主要是使用不同工具或方法对服务器的各个方面进行性能测试,例如CPU性能测试、磁盘读写能力测试等。针对同一服务器的不同测试,需要使用不同工具在该服务器上分别进行测试,然后收集该服务器的不同测试工具所产生的测试数据,最后通过人工录入测试数据并将所述测试数据转换为图表的方式来呈现测试结果。但是这种测试过程费时费力,需要测试人员不停地去监视测试过程和状态,在完成某一个硬件测试之后需要手动换另外一个工具进行另外一个硬件的测试。
当需要对多个服务器进行对比测试时,要依次对每个服务器进行测试并进行数据的收集和对比,这时需要在不同的服务器上运行同一工具,通过定制测试参数,监控测试过程,并将各自的测试结果进行收集,且在收集到测试数据之后人工将其有用的字段进行拆分,用以录入到同一个位置进行对比。
可见,当大量服务器需要进行大量的不同方面的测试时,由于存在工具种类繁多、测试时间长、人为干预性能测试过程、单一服务器上需要多种工具的重复测试、各种工具之间输入输出差异性极大、结果分析需要从大量数据中进行挑选、测试类型多样(包含硬件测试,性能测试,应用测试等)等弊端,且对于不同的测试此过程需要重复多次,对于测试人员来说,这是复杂且循环的操作,某一步的操作失误将会直接导致测试结果产生错误,从而影响接下来的决策,且当多个服务器进行对比分析时不能方便的进行统计。基于工具繁复多样、人工干预过多,从而浪费了大量的人力和花费了大量的测试时间,并导致测试数据出错率较高,测试结果不直观。发明内容
有鉴于此,本发明实施例的主要目的在于提供一种性能测试方法、测试平台及测试机,以实现减少测试所花费的人力和时间、提高测试结果准确度和直观度的目的。
为实现上述目的,本发明实施例提供了一种性能测试方法,包括:
确定测试方式;
当所述测试方式为单机独立测试时,向测试机推送客户端脚本,以使测试机利用所述客户端脚本部署测试客户端;
发送测试命令至所述测试客户端,以使所述测试客户端根据接收的测试命令下载对应的工具包并运行下载的工具包中的各个测试工具;
接收所述测试客户端返回的通过运行测试工具所产生的测试结果。
优选地,上述方法还包括:
当所述测试方式为多机联合测试时,分别向测试机和各个负载注入机器推送客户端脚本,以使测试机和各个负载注入机器分别利用获取的客户端脚本部署测试客户端;
发送测试命令至测试机的测试客户端,以使测试机的测试客户端根据接收的测试命令下载对应的工具包;并分别发送测试命令至各个负载注入机器,以使各个负载注入机器根据接收的测试命令下载对应的工具包;
待接收到测试机和所有负载注入机器通过测试客户端发送的下载完成信息后,同时向测试机和各个负载注入机器发送开始命令,以使各个负载注入机器的测试客户端利用下载工具包中的测试工具同时向测试机注入测试压力且使测试机的测试客户端利用注入的测试压力运行下载工具包中的测试工具;
分别接收测试机和各个负载注入机器利用测试客户端返回的通过运行测试工具所产生的测试结果。
优选地,上述方法还包括:
利用获取的测试机的登陆信息与对应的测试机建立连接;
利用获取的各个负载注入机器的登录信息分别与对应的各个负载注入机器建立连接。
优选地,在上述方法中,所述测试命令包括测试包的UR L地址、工具名称和设置参数。
优选地,上述方法还包括:
对同一测试机在不同配置下的测试结果进行对比,以获取第一对比结果;
对同一配置的至少两个测试机的测试结果进行对比,以获取第二对比结果。
优选地,在上述方法中,所述测试结果的输出方式包括:单一数值输出、多数值一维输出、多数值二维输出。
本发明实施例还提供了一种性能测试方法,包括:
获取测试平台推送的客户端脚本,并利用所述客户端脚本在本地部署测试客户端;
接收测试平台发送的测试命令,并根据接收的测试命令下载对应的工具包;
在测试方式为单机独立测试时,直接运行下载的工具包中的各个测试工具;
将通过运行测试工具所产生的测试结果返回至测试平台。
优选地,上述方法还包括:
当所述测试方式为多机联合测试时,当接收到测试平台发送的开始命令后,利用各个负载注入机器注入的测试压力运行下载工具包中的测试工具。
优选地,在上述方法中,通过执行监听端口命令以打开所述测试客户端的监听端口来接收测试平台发送的测试命令或开始命令。
优选地,在上述方法中,所述测试命令包括工具包的URL地址、工具名称和设置参数;
所述根据接收的测试命令下载对应的工具包包括:
从接收测试命令中的URL地址下载对应的工具包。
本发明实施例还提供了 一种测试平台,包括:
确定单元,用于确定测试方式;
第一推送单元,用于当所述确定单元确定的测试方式为单机独立测试时,向测试机推送客户端脚本,以使测试机利用所述客户端脚本部署测试客户端;
第一发送单元,用于发送测试命令至所述测试客户端,以使所述测试客户端根据接收的测试命令下载对应的工具包并运行下载的工具包中的各个测试工具;
第一接收单元,用于接收所述测试客户端返回的通过运行测试工具所产生的测试结果。
优选地,上述测试平台还包括:
第二推送单元,用于当所述确定单元确定的测试方式为多机联合测试时,分别向测试机和各个负载注入机器推送客户端脚本,以使测试机和各个负载注入机器分别利用获取的客户端脚本部署测试客户端;
第二发送单元,用于发送测试命令至测试机的测试客户端,以使测试机的测试客户端根据接收的测试命令下载对应的工具包;并分别发送测试命令至各个负载注入机器,以使各个负载注入机器根据接收的测试命令下载对应的工具包;
第二接收单元,用于接收测试机和所有负载注入机器通过测试客户端发送的下载完成信息;
第三发送单元,用于接收到测试机和所有负载注入机器通过测试客户端发送的下载完成信息后,同时向测试机和各个负载注入机器发送开始命令,以使各个负载注入机器的测试客户端利用下载工具包中的测试工具同时向测试机注入测试压力且使测试机的测试客户端利用注入的测试压力运行下载工具包中的测试工具;
第三接收单元,用于分别接收测试机和各个负载注入机器利用测试客户端返回的通过运行测试工具所产生的测试结果。
优选地,上述测试平台还包括:
第一连接单元,用于利用获取的测试机的登陆信息与对应的测试机建立连接;
第二连接单元,用于利用获取的各个负载注入机器的登录信息分别与对应的各个负载注入机器建立连接。
优选地,所述测试命令包括测试包的URL地址、工具名称和设置参数。
优选地,上述测试平台还包括:
第一结果对比单元,用于对同一测试机在不同配置下的测试结果进行对比,以获取第一对比结果;
第二结果对比单元,用于对同一配置的至少两个测试机的测试结果进行对比,以获取第二对比结果。
优选地,所述测试结果的输出方式包括:单一数值输出、多数值一维输出、多数值二维输出。
本发明实施例还提供了一种测试机,包括:
获取单元,用于获取测试平台推送的客户端脚本,并利用所述客户端脚本在本地部署测试客户端;
下载单元,用于接收测试平台发送的测试命令,并根据接收的测试命令下载对应的工具包;
第一运行单元,用于在测试方式为单机独立测试时,直接运行下载的工具包中的各个测试工具;
结果返回单元,用于将通过运行测试工具所产生的测试结果返回至测试平台。
优选地,上述测试机还包括:
第二运行单元,用于当所述测试方式为多机联合测试时,当接收到测试平台发送的开始命令后,利用各个负载注入机器注入的测试压力运行下载工具包中的测试工具。
优选地,上述测试机还包括:
监听单元,用于通过执行监听端口命令以打开所述测试客户端的监听端口来接收测试平台发送的测试命令或开始命令。
优选地,所述测试命令包括工具包的URL地址、工具名称和设置参数;所述下载单元,具体用于从接收测试命令中的URL地址下载对应的工具包。
本发明实施例性能测试方法、测试平台及测试机,通过向测试机推送客户端脚本,以使测试机利用所述客户端脚本在本地部署测试客户端,然后测试机利用测试平台下发的测试命令下载测试工具,待下载完成后,测试机运行各个测试工具并将测试结果上传给测试平台。基于上述规范化的自动测试流程,大大节约了测试所花费的人力物力,并减少了人为错误对测试结果产生的影响。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例性能测试方法的实施例1的流程示意图2为本发明实施例性能测试方法的实施例2的流程示意图3为本发明实施例测试平台的实施例1的结构示意图4为本发明实施例测试平台的实施例2的结构示意图5为本发明实施例测试机的实施例1的结构示意图6为本发明实施例测试机的实施例2的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例主要是利用一个测试平台(可与测试机等进行通信的一种设备)实现对不同测试机的相同或不同方面的测试,测试人员只需通过测试平台选择需被测试的测试机和对测试机进行测试的测试工具,即可自动对测试机进行相关测试,并将测试机返回的测试结果进行自动整理,以图表等方式对测试结果进行直观输出。
本发明实施例适用于各类测试机的测试,所述测试机可以是服务器也可以是其它被测机器或设备,当所述测试机为服务器时,为了实现对服务器的自动测试,首先需要完成测试前的准备工作。本发明实施例的测试平台主要是利用资产信息管理功能实现例如服务器的加入、服务器配置信息收集等功能。
所述资产信息管理功能包括但不限于以下三个功能模块。
1、服务器信息管理模块:主要是对加入测试平台中的服务器进行管理,其中包含服务器的基本信息,如服务器的用户名、密码、机器型号,资产号等信息。利用该功能模块可在测试平台中对各个服务器的基本信息进行添加、修改和删除等操作,以实现对服务器基本信息的管理。
2、服务器硬件配置管理模块:主要是对服务器的配置信息进行管理,所述配置信息主要是服务器的组件信息,如cpu型号和数量,内存的型号和数量,硬盘的型号和数量,主板型号,raid (Redundant Arrays of Inexpensive Disks,磁盘阵列)卡型号等。这些信息主要是由下述硬件信息收集模块在服务器上线的时候进行收集的。
3、硬件信息收集模块:此模块在有服务器上线时运行一次,即服务器与测试平台第一次建立连接时,将服务器的内部组件信息收集,并存储在数据库中。该功能模块主要是通过读取所述服务器信息管理模块中的用户名和密码实现测试平台与对应的服务器建立连接,然后测试平台将收集脚本推送至测试机即目标服务器,通过在目标服务器上运行所述收集脚本以实现收集目标服务器的组件信息的目的,目标服务器再将所收集的组件信息返回给所述硬件信息收集模块,所述硬件信息收集模块将获取的组件信息整理后存入测试平台的数据库中。
参见图1所示,图1为本发明实施例提供的一种性能测试方法的实施例1的流程示意图,实现该方法的步骤包括:
步骤101:测试平台确定测试方式。
步骤102:当所述测试方式为单机独立测试时,测试平台向测试机推送客户端脚本。
步骤103:测试机获取测试平台推送的客户端脚本,并利用所述客户端脚本在本地部署测试客户端。
测试任务开始后,测试平台通过向需要被测试的测试机推送一个客户端脚本,测试机获取到该客户端脚本后,会利用该客户端脚本在本地测试机上自动安装一个测试客户端。
步骤104:测试平台发送测试命令至所述测试客户端,测试客户端接收测试平台发送的测试命令,并根据接收的测试命令下载对应的工具包。
在本实施例中,当测试机安装完测试客户端后,测试客户端会向测试平台返回一个安装完成信息,以告知测试平台已成功在测试机上安装了测试客户端,此时,待测试平台接收到测试机发送的安装完成信息后,会发送一个携带测试工具相关信息的测试命令至测试客户端,其中,所述测试命令包括工具包的URL地址(UniformResource Locator,统一资源定位符,又称网页地址)、工具名称和设置参数,所述URL地址是测试平台中存储该工具包的地址,所述工具名称是该工具包中包含的各个测试工具的名称,所述设置参数是各个测试工具所设定的相关参数。当测试客户端接收到该测试命令后会解析该测试命令,并从测试命令中携带的URL地址中下载包含至少一个测试工具的工具包。
举例说明,当需要利用geekbench工具考察CPU和内存系统的运算能力、以及利用iozone工具测试磁盘的读写能力时,测试平台会将geekbench工具和iozone工具作为一个工具包,并将携带该工具包的存储地址(URL地址)、geekbench工具的名称和相关参数、以及iozone工具的名称和相关参数的测试命令下发给测试机上的测试客户端,以便测试客户端访问测试平台上的这个URL地址来下载相应的工具包。
需要说明的是,本发明实施例中的测试平台具有测试管理功能,所述测试管理功能包括但不限于以下5个功能模块。
1、任务管理模块:主要用于管理测试任务的下发(推送客户端脚本、下发测试命令等操作)、测试过程状态查询、测试结果存储及输出等功能。
2、测试工具管理模块:主要是对测试平台所支持的测试工具进行管理,例如对geekbench工具、iozone工具等测试工具的管理,该管理功能主要包括对测试工具的基础信息(测试工具的名称、功能、类型、介绍、使用方法等)的管理;还包含工具包的url地址的管理,以便在测试客户端接收到测试命令时将工具包从网络上下载到本地运行等;本模块还支持对测试平台中的测试工具进行添加、修改和删除等操作。
3、测试工具模板管理模块:每个测试工具可包括多个测试工具模板,例如不同的测试参数便对应不同的测试工具模板,又例如采用一次性测试与采用循环测试也属于同一测试工具的不同测试工具模板。其中,对于某一测试工具的不同测试工具模板,某些测试参数和部署方式经常是保持不变的,那将这种经常不变的部分作为一个固定的模块来运作,将需要经常改动的部分设定为可选或是可设定选项,这将很大程度上简化测试过程的复杂性,并通过测试工具模板可以对测试工具的标准化起到一定的规范作用;本模块还支持对测试平台中的测试工具模板进行添加、修改和删除等操作。
4、测试模板管理模块:主要是对各个测试工具模板进行整合以形成一个测试模板,一个测试模板可以包含多个测试工具模板,每个测试模板中的测试工具就可以作为一个工具包以供测试客户端下载。这样就可以制定一个测试任务,这个任务由一个测试模板来定义,示例如下:
(I)、选取某个测试工具的一个测试工具模板作为一个测试模板,以设定次数重复测试测试机,依某种指定的算法取得多次测试的值,并计算多次测试值的平均值。
(2)、选取一种测试工具的多个测试工具模板作为一个测试模板,或从不同测试工具中分别选取一个或多个测试工具模板作为一个测试模板。例如将对服务器的硬件性能测试、网络测试、硬盘读写能力测试等打包成一个测试模板,只要在测试客户端侧执行一次该打包的测试模板,该测试模板中的所有测试项会按顺序依次执行并生成测试结果。
5、测试过程管理模块:主要是在测试过程中对测试的中间状态进行管理,例如中间过程的IOg输出,中间状态的查寻,测试的终止,暂停,重启等操作。
步骤105:待测试客户端成功下载所述工具包后,利用所述测试客户端直接运行下载的工具包中的各个测试工具,并当测试结束后,将通过运行测试工具所产生的测试结果返回至测试平台。
在本实施例中,测试客户端同时或是依次运行工具包中的各项测试工具,待全部测试完成后,返回包含各项测试的总的测试结果;或是每执行完一个测试工具便向测试平台返回一个测试结果,直到将全部测试结果发送至测试平台为止。
步骤106:测试平台接收并保存所述测试客户端返回的测试结果。
本发明实施例性能测试方法,当采用单机独立测试时,只向测试机推送客户端脚本,以使测试机利用所述客户端脚本在本地部署测试客户端,然后测试机利用测试平台下发的测试命令下载测试工具,待下载完成后,测试机运行各个测试工具并将测试结果上传给测试平台。基于上述规范化的自动测试流程,大大节约了测试所花费的人力物力,并减少了人为错误对测试结果产生的影响。
参见图2所示,图2为本发明实施例提供的一种性能测试方法的实施例2的流程示意图,实现该方法的步骤包括,包括:
步骤201:测试平台确定测试方式;当所述测试方式为单机独立测试时,执行步骤202,当所述测试方式为多机联合测试时,执行步骤208。
步骤202:测试平台利用获取的测试机的登陆信息与对应的测试机建立连接。
假设测试机为服务器,由于所述服务器信息管理模块中预先存储了各个服务器的基本信息,该基本信息中包括服务器的用户名和密码等信息,将用户名和密码作为测试平台与测试机建立连接的登录信息,待测试平台接收到管理员输入的用户名和密码便可实现测试平台与测试机间的ssh连接。
步骤203:测试平台向测试机推送客户端脚本。
步骤204:测试机获取测试平台推送的客户端脚本,并利用所述客户端脚本在本地部署测试客户端,待部署完成后利用测试客户端向测试平台反馈部署完成信息。
步骤205:当测试平台接收到测试客户端发送的部署完成信息后,测试平台发送测试命令至所述测试客户端,测试客户端接收测试平台发送的测试命令,并根据接收的测试命令下载对应的工具包。
步骤206:待测试客户端成功下载所述工具包后,利用所述测试客户端直接运行下载的工具包中的各个测试工具,并当测试结束后,将通过运行测试工具所产生的测试结果返回至测试平台。
步骤207:测试平台接收并保存所述测试客户端返回的测试结果。
步骤208:测试平台利用获取的测试机的登陆信息与对应的测试机建立连接,并利用获取的各个负载注入机器的登录信息分别与对应的各个负载注入机器建立连接。
假设各个负载注入机器也均为服务器,由于所述服务器信息管理模块中预先存储了各个服务器的基本信息,该基本信息中包括服务器的用户名和密码等信息,将用户名和密码作为测试平台与负载注入机器建立连接的登录信息,待测试平台接收到管理员输入的用户名和密码便可实现测试平台与对应的负载注入机器间的ssh连接。
步骤209:当测试平台与测试机和各个负载注入机器均连接成功后,测试平台分别向测试机和各个负载注入机器推送客户端脚本。
步骤210:测试机和各个负载注入机器分别利用获取的客户端脚本在本地部署测试客户端,待部署完成后分别利用部署的测试客户端向测试平台反馈部署完成信息。
步骤211:当测试平台接收到测试机的测试客户端反馈的部署完成信息后,便发送相应的测试命令至测试机的测试客户端,测试机的测试客户端根据接收的测试命令下载对应的工具包;且当测试平台接收到负载注入机器的测试客户端反馈的部署完成信息后,便发送相应的测试命令至负载注入机器的测试客户端,各个负载注入机器的测试客户端根据接收的测试命令下载对应的工具包。
所述测试命令包括工具包的URL地址、工具名称和设置参数;当测试机或是负载注入机器根据接收的测试命令下载对应的测试工具时,主要是从接收测试命令中的URL地址下载对应的测试工具。
步骤212:当测试机或负载注入机器利用安装的测试客户端成功下载对应的工具包后,便分别向测试平台反馈下载完成信息。
步骤213:待接收到测试机和所有负载注入机器通过测试客户端发送的全部下载完成信息后,同时向测试机和各个负载注入机器发送开始命令,各个负载注入机器的测试客户端接收到所述开始命令后利用下载工具包中的测试工具同时向测试机注入测试压力,且测试机的测试客户端接收到所述开始命令后利用注入的测试压力运行下载工具包中的测试工具。
部署在测试机或者负载注入机器上的测试客户端是一个能够接受测试平台命令、并在接受命令后可自主的完成制定工作的软件。在本实施步骤213中,主要是对测试机进行联合压力测试,例如:利用多个负载注入机器同时访问一台测试机以对该测试机进行联合测试,假设测试项目包括:数据库压力测试,web节点压力测试,计算能力压力测试等,各个负载注入机器分别从测试平台下载包含以上三项测试内容的负载注入软件,待接收到测试平台发送的开始命令后开始进行联合测试,即同时向测试机发起数据库压力测试,web节点压力测试,计算能力压力测试。所述数据库压力测试即为各个负载注入机器同时访问测试机上的数据库以测试数据库的吞吐性能;所述web节点压力测试即为各个负载注入机器同时访问测试机上的某一网址,以测试网络性能;计算能力压力测试即为利用各个负载注入机器同时向测试机发送相关数据,使得测试机利用这些数据进行大量复杂的计算,以考察CPU和内存系统的计算能力。待测试机被各个负载注入机器注入了例如数据库压力测试,web节点压力测试,计算能力压力测试等测试信息后,由于测试机也下载了对应的测试工具,在各个负载注入机器联合向测试机注入测试压力时,测试机运行下载的测试工具便可产生联合测试所产生的测试结果。需要说明是,各个负载注入机器的作用是通过测试客户端及下载的测试工具使测试机尽量多的产生流量以增加测试机的压力,在一台测试机上可能同时运行不同的测试项目。
步骤214:当完成压力注入测试后,测试机和所有负载注入机器分别通过测试客户端向测试平台反馈通过运行测试工具所产生的测试结果。
步骤215:测试平台分别接收并保存测试机和各个负载注入机器利用测试客户端返回的测试结果。
此外,所述测试客户端设置有监听端口,通过执行监听端口命令以打开所述测试客户端的监听端口来接收测试平台发送的测试命令或开始命令。
另外,本发明实施例的测试平台还包括结果分析出图管理功能,主要是对测试数据进行分析,以帮助测试人员分析哪些方面是测试机的瓶颈或性能提升的关键,从而确定新测试的测试机与以往测试机的性能差别、或同一批次的不同测试机间的性能差异等,以利用分析结果决策测试机的升级策略或改进方案。
第一、对同一测试机在不同配置下的测试结果进行对比,以获取第一对比结果。具体的,例如将该测试机的历史测试数据与当前获取的测试数据进行对比分析,由于历史数据与当前数据对应的服务器的配置是有所区别的,分析不同配置下所产生的不同测试结果,可以帮助测试人员分析哪些方面是测试机的技术瓶颈或是指示哪些是性能提升的关键因素,由对比结果决策测试机的升级策略或确定新测试的服务器与以往测试的服务器的性倉泛差另1J等。
第二、对同一配置的至少两个测试机的测试结果进行对比,以获取第二对比结果。具体的,通过对同一配置的各个测试机进行测试结果的对比,分析测试数据的差异,当数据差异较大时,分析导致该差异的具体原因。
需要说明的是,本发明实施例需为测试工具进行标准化处理,使标准测试工具以插件的形式嵌入整个系统中,将测试工具进行封装,使其输入输出都能够统一标准。测试工具以压缩包的形式添加入系统中,压缩包中包含测试工具、输入处理脚本、以及结果处理脚本三个部分组成。
利用所述输入处理脚本可使测试人员在测试平台对测试模式进行设定,即测试模板中包含此工具使用的参数和相关控制信息,用户可以在测试平台中对参数进行设定和修改。
由测试平台将测试工具发送到需要测试的测试机上,并在测试机上部署测试客户端,测试客户端将设定参数与测试工具进行结合,进行定制化和标准化的测试过程,整个测试过程中测试人员可以查看工具的运行状态,并可实时查看测试输出状态。
利用结果处理脚本可使测试人员在测试平台对测试结果进行分析,以将需要的信息进行归类处理。目前所述测试结果的输出方式包括:单一数值输出(某一测试工具对应的测试结果)、多数值一维输出(多个测试工具对应的多个测试结果同时输出,每个测试结果间没有关联性)、多数值二维输出(多个测试工具对应的多个测试结果之间有关联,以二维数组的方式出现),且输出的测试结果以图表等方式显示。
本发明实施例性能测试方法,当采用多机联合测试时,分别向测试机和各个负载注入机器推送客户端脚本,使测试机和各个负载注入机器利用所述客户端脚本分别在本地部署测试客户端,并利用测试平台下发的测试命令分别下载对应的测试工具,使测试机利用各个负载注入机器同时注入的测试压力进行测试,从而在测试机产生大量流量时测试各个部件的性能指标。
此外,基于硬件测试有多种工具可进行选择,而不同的测试工具,其输入和输出的差异性极大,本发明实施例将其输入输出规范成某种格式,从而可在测试平台中可对其进行统一调度和管理。
参见图3所示,图3为本发明实施例提供的一种测试平台的实施例1的结构示意图,包括:
确定单元31,用于确定测试方式;第一推送单元32,用于当所述确定单元确定的测试方式为单机独立测试时,向测试机推送客户端脚本,以使测试机利用所述客户端脚本部署测试客户端;第一发送单元33,用于发送测试命令至所述测试客户端,以使所述测试客户端根据接收的测试命令下载对应的工具包并运行下载的工具包中的各个测试工具;第一接收单元34,用于接收所述测试客户端返回的通过运行测试工具所产生的测试结果。
参见图4所示,图4为本发明实施例提供的一种测试平台的实施例2的结构示意图,在上述测试平台实施例1的基础上,所述测试平台还包括:
第二推送单元41,用于当所述确定单元确定的测试方式为多机联合测试时,分别向测试机和各个负载注入机器推送客户端脚本,以使测试机和各个负载注入机器分别利用获取的客户端脚本部署测试客户端;第二发送单元42,用于发送测试命令至测试机的测试客户端,以使测试机的测试客户端根据接收的测试命令下载对应的工具包;并分别发送测试命令至各个负载注入机器,以使各个负载注入机器根据接收的测试命令下载对应的工具包;第二接收单元43,用于接收测试机和所有负载注入机器通过测试客户端发送的下载完成信息;第三发送单元44,用于接收到测试机和所有负载注入机器通过测试客户端发送的下载完成信息后,同时向测试机和各个负载注入机器发送开始命令,以使各个负载注入机器的测试客户端利用下载工具包中的测试工具同时向测试机注入测试压力且使测试机的测试客户端利用注入的测试压力运行下载工具包中的测试工具;第三接收单元45,用于分别接收测试机和各个负载注入机器利用测试客户端返回的通过运行测试工具所产生的测试结果。
在确定测试方式前,还需要与测试机和各个负载注入机器建立连接,所述测试平台还包括:
第一连接单元46,用于利用获取的测试机的登陆信息与对应的测试机建立连接;第二连接单元47,用于利用获取的各个负载注入机器的登录信息分别与对应的各个负载注入机器建立连接。
另外,测试平台还需要对测试结果进行分析,所述测试平台还包括:
第一结果对比单元48,用于对同一测试机在不同配置下的测试结果进行对比,以获取第一对比结果;第二结果对比单元49,用于对同一配置的至少两个测试机的测试结果进行对比,以获取第二对比结果。
其中,所述测试命令包括测试包的URL地址、工具名称和设置参数。
其中,所述测试结果的输出方式包括但不限于以下三种方式:单一数值输出、多数值一维输出、多数值二维输出。
参见图5所示,图5为本发明实施例提供的一种测试机的实施例1的结构示意图,包括:
获取单元51,用于获取测试平台推送的客户端脚本,并利用所述客户端脚本在本地部署测试客户端;下载单元52,用于接收测试平台发送的测试命令,并根据接收的测试命令下载对应的工具包;第一运行单元53,用于在测试方式为单机独立测试时,直接运行下载的工具包中的各个测试工具;结果返回单元54,用于将通过运行测试工具所产生的测试结果返回至测试平台。
参见图6所示,图6为本发明实施例提供的一种测试机的实施例2的结构示意图,在上述测试机实施例1的基础上,所述测试机还包括:
第二运行单元61,用于当所述测试方式为多机联合测试时,当接收到测试平台发送的开始命令后,利用各个负载注入机器注入的测试压力运行下载工具包中的测试工具。监听单元62,用于通过执行监听端口命令以打开所述测试客户端的监听端口来接收测试平台发送的测试命令或开始命令。
其中,所述测试命令包括工具包的URL地址、工具名称和设置参数;所述下载单元52,具体用于从接收测试命令中的URL地址下载对应的工具包。
本发明实施例测试平台及测试机,当采用单机独立测试时,向测试机推送客户端脚本,以使测试机利用所述客户端脚本在本地部署测试客户端,然后测试机利用测试平台下发的测试命令下载测试工具,待下载完成后,测试机运行各个测试工具并将测试结果上传给测试平台。基于上述规范化的自动测试流程,大大节约了测试所花费的人力物力,并减少了人为错误对测试结果产生的影响。
此外,基于硬件测试有多种工具可进行选择,而不同的测试工具,其输入和输出的差异性极大,本发明实施例将其输入输出规范成某种格式,从而可在测试平台中可对其进行统一调度和管理。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到上述实施例方法中的全部或部分步骤可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如R0M/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者诸如媒体网关等网络通信设备,等等)执行本发明各个实施例或者实施例的某些部分所述的方法。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备及系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的设备及系统实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程 、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
权利要求
1.一种性能测试方法,其特征在于,包括: 确定测试方式; 当所述测试方式为单机独立测试时,向测试机推送客户端脚本,以使测试机利用所述客户端脚本部署测试客户端; 发送测试命令至所述测试客户端,以使所述测试客户端根据接收的测试命令下载对应的工具包并运行下载的工具包中的各个测试工具; 接收所述测试客户端返回的通过运行测试工具所产生的测试结果。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括: 当所述测试方式为多机联合测试时,分别向测试机和各个负载注入机器推送客户端脚本,以使测试机和各个负载注入机器分别利用获取的客户端脚本部署测试客户端; 发送测试命令至测试机的测试客户端,以使测试机的测试客户端根据接收的测试命令下载对应的工具包;并分别发送测试命令至各个负载注入机器,以使各个负载注入机器根据接收的测试命令下载对应的工具包; 待接收到测试机和所有负载注入机器通过测试客户端发送的下载完成信息后,同时向测试机和各个负载注入机器发送开始命令,以使各个负载注入机器的测试客户端利用下载工具包中的测试工具同时向测试机注入测试压力且使测试机的测试客户端利用注入的测试压力运行下载工具包中的测试工具; 分别接收测试机和各个负载注入机器利用测试客户端返回的通过运行测试工具所产生的测试结果。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括: 利用获取的测试机的登陆信息与对应的测试机建立连接; 利用获取的各个负载注入机器的登录信息分别与对应的各个负载注入机器建立连接。
4.根据权利要求1或2所述的方法,其特征在于,所述测试命令包括测试包的URL地址、工具名称和设置参数。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括: 对同一测试机在不同配置下的测试结果进行对比,以获取第一对比结果; 对同一配置的至少两个测试机的测试结果进行对比,以获取第二对比结果。
6.根据权利要求1所述的方法,其特征在于,所述测试结果的输出方式包括:单一数值输出、多数值一维输出、多数值二维输出。
7.一种性能测试方法,其特征在于,包括: 获取测试平台推送的客户端脚本,并利用所述客户端脚本在本地部署测试客户端; 接收测试平台发送的测试命令,并根据接收的测试命令下载对应的工具包; 在测试方式为单机独立测试时,直接运行下载的工具包中的各个测试工具; 将通过运行测试工具所产生的测试结果返回至测试平台。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括: 当所述测试方式为多机联合测试时,当接收到测试平台发送的开始命令后,利用各个负载注入机器注入的测试压力运行下载工具包中的测试工具。
9.根据权利要求8所述的方法,其特征在于,通过执行监听端口命令以打开所述测试客户端的监听端口来接收测试平台发送的测试命令或开始命令。
10.根据权利要求9所述的方法,其特征在于,所述测试命令包括工具包的URL地址、工具名称和设置参数; 所述根据接收的测试命令下载对应的工具包包括: 从接收测试命令中的URL地址下载对应的工具包。
11.一种测试平台,其特征在于,包括: 确定单元,用于确定测试方式; 第一推送单元,用于当所述确定单元确定的测试方式为单机独立测试时,向测试机推送客户端脚本,以使测试机利用所述客户端脚本部署测试客户端; 第一发送单元,用于发送测试命令至所述测试客户端,以使所述测试客户端根据接收的测试命令下载对应的工具包并运行下载的工具包中的各个测试工具; 第一接收单元,用于接收所述测试客户端返回的通过运行测试工具所产生的测试结果O
12.根据权利要求11所述的测试平台,其特征在于,所述测试平台还包括: 第二推送单元,用于当所述确定单元确定的测试方式为多机联合测试时,分别向测试机和各个负载注入机器推送客户端脚本,以使测试机和各个负载注入机器分别利用获取的客户端脚本部署测试客户端; 第二发送单元,用于发送测试命令至测试机的测试客户端,以使测试机的测试客户端根据接收的测试命令下载对应的工具包;并分别发送测试命令至各个负载注入机器,以使各个负载注入机器根据接收的测试命令下载对应的工具包; 第二接收单元,用于接收测试机和所有负载注入机器通过测试客户端发送的下载完成信息; 第三发送单元,用于接收到测试机和所有负载注入机器通过测试客户端发送的下载完成信息后,同时向测试机和各个负载注入机器发送开始命令,以使各个负载注入机器的测试客户端利用下载工具包中的测试工具同时向测试机注入测试压力且使测试机的测试客户端利用注入的测试压力运行下载工具包中的测试工具; 第三接收单元,用于分别·接收测试机和各个负载注入机器利用测试客户端返回的通过运行测试工具所产生的测试结果。
13.根据权利要求12所述的测试平台,其特征在于,所述测试平台还包括: 第一连接单元,用于利用获取的测试机的登陆信息与对应的测试机建立连接; 第二连接单元,用于利用获取的各个负载注入机器的登录信息分别与对应的各个负载注入机器建立连接。
14.根据权利要求11或12所述的测试平台,其特征在于,所述测试命令包括测试包的URL地址、工具名称和设置参数。
15.根据权利要求11所述的测试平台,其特征在于,所述测试平台还包括: 第一结果对比单元,用于对同一测试机在不同配置下的测试结果进行对比,以获取第一对比结果; 第二结果对比单元,用于对同一配置的至少两个测试机的测试结果进行对比,以获取第二对比结果。
16.根据权利要求1所述的测试平台,其特征在于,所述测试结果的输出方式包括:单一数值输出、多数值一维输出、多数值二维输出。
17.—种测试机,其特征在于,包括: 获取单元,用于获取测试平台推送的客户端脚本,并利用所述客户端脚本在本地部署测试客户端; 下载单元,用于接收测试平台发送的测试命令,并根据接收的测试命令下载对应的工具包; 第一运行单元,用于在测试方式为单机独立测试时,直接运行下载的工具包中的各个测试工具; 结果返回单元,用于将通过运行测试工具所产生的测试结果返回至测试平台。
18.根据权利要求17所述的测试机,其特征在于,所述测试机还包括: 第二运行单元,用于当所述测试方式为多机联合测试时,当接收到测试平台发送的开始命令后,利用各个负载注入机器注入的测试压力运行下载工具包中的测试工具。
19.根据权利要求18所述的测试机,其特征在于,所述测试机还包括: 监听单元,用于通过执行监听端口命令以打开所述测试客户端的监听端口来接收测试平台发送的测试命令或开始命令。
20.根据权利要求19所述的测试机,其特征在于,所述测试命令包括工具包的URL地址、工具名称和设置参数; 所述下载单元,具体 用于从接收测试命令中的URL地址下载对应的工具包。
全文摘要
本发明公开了一种性能测试方法,包括确定测试方式;当所述测试方式为单机独立测试时,向测试机推送客户端脚本,以使测试机利用所述客户端脚本部署测试客户端;发送测试命令至所述测试客户端,以使所述测试客户端根据接收的测试命令下载对应的工具包并运行下载的工具包中的各个测试工具;接收所述测试客户端返回的通过运行测试工具所产生的测试结果。本发明还公开了一种测试平台和测试机。
文档编号G06F11/22GK103186444SQ20131012972
公开日2013年7月3日 申请日期2013年4月15日 优先权日2013年4月15日
发明者刘宇航, 彭毅 申请人:北京搜狐新时代信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1