服务器性能测试方法及系统与流程

文档序号:12463920阅读:293来源:国知局
服务器性能测试方法及系统与流程

本发明涉及计算机技术领域,具体而言,涉及一种服务器性能测试方法及系统。



背景技术:

现有技术主要通过以下几个步骤来测试服务器的性能:录制或制作用户行为操作的模拟脚本;利用脚本对项目服务器进行施压;人工记录项目服务器的性能数据指标。现有技术中随机使用测试服务器及项目服务器进行测试,可能会造成使用冲突,另外采用手工记录性能数据,记录效率也比较低。



技术实现要素:

有鉴于此,本发明实施例的目的在于提供一种服务器性能测试方法及系统。

本发明实施例提供的一种服务器性能测试方法,应用于包括有相互通信连接的后台服务器、测试服务器及项目服务器的性能测试系统,该方法包括:

所述后台服务器根据接收到的施压请求获取该施压请求中的施压数据,所述施压数据包括施压脚本、选择的测试服务器及选择的项目服务器;

所述后台服务器向选择的测试服务器发送施压指令;

所述测试服务器根据所述施压指令向所述项目服务器发送测试请求以测试所述项目服务器;

所述项目服务器采集测试过程中的性能测试数据;

所述项目服务器将所述性能测试数据发送给所述后台服务器并进行存储。

本发明实施例还提供一种服务器性能测试系统,应用于包括有相互通信连接的后台服务器、测试服务器及项目服务器的性能测试系统,该系统包括:后台服务器、测试服务器及项目服务器;

所述后台服务器包括:

用于根据接收到的施压请求获取该施压请求中的施压数据的施压数据获取模块,所述施压数据包括施压脚本、选择的测试服务器及选择的项目服务器;

用于向选择的测试服务器发送施压指令的施压指令发送模块;

所述测试服务器包括:

用于根据所述施压指令向所述项目服务器发送测试请求以测试所述项目服务器的测试发送模块;

所述项目服务器包括:

用于采集测试过程中的性能测试数据的测试数据采集模块;

用于将所述性能测试数据发送给所述后台服务器并进行存储的测试数据发送模块。

与现有技术相比,本发明的方法及系统,在测试之前先在施压请求中指定用于测试的测试服务器和项目服务器,可有效避免多个测试动作同时选择一个测试服务器造成测试结果有误差,提高测试效率及准确率。另外在测试时,所述项目服务器记录测试数据,也方便测试人员获取测试数据,减少测试人员的工作量。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本发明较佳实施例提供的后台服务器、测试服务器及项目服务器进行交互的示意图。

图2为本发明较佳实施例提供的后台服务器的方框示意图。

图3为本发明较佳实施例提供的项目服务器的方框示意图。

图4为本发明较佳实施例提供的服务器性能测试方法的流程图。

图5为本发明服务器性能测试系统的功能模块示意图。

图标:100-后台服务器;200-测试服务器;300-项目服务器;110-第一存储器;111-第一处理器;112-第一网络模块;1102-施压数据获取模块;1103-施压指令发送模块;1104-测试报告生成模块;1105-对比文件生成模块;1106-报告发送模块;310-第二存储器;311-第二处理器;312-第二网络模块;3102-测试数据采集模块;3103-测试数据发送模块;210-测试发送模块。

具体实施方式

下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

如图1所示,本发明较佳实施例提供的后台服务器100、测试服务器200及项目服务器300进行交互的示意图。所述后台服务器100、测试服务器200及项目服务器300之间通过网络通信连接,以进行数据通信或交互。所述后台服务器100、测试服务器200及项目服务器300可以是网络服务器、数据库服务器等。本实施例中,所述测试服务器200可以是一个或多个用于向所述项目服务器300发送测试请求的服务器。所述项目服务器300接收到所述测试请求后启动性能测试流程,具体方法将在后续内容进行详细寿命。

如图2所示,是所述后台服务器100的方框示意图。所述后台服务器100包括第一存储器110、第一处理器111、第一网络模块112、施压数据获取模块1102及施压指令发送模块1103。可以理解的是,图2所示的后台服务器100可包括更多或者更少的组件,而并不受限于图2的描述。

所述第一存储器110、第一处理器111、第一网络模块112各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。所述施压数据获取模块1102及施压指令发送模块1103包括至少一个可以软件或固件(firmware)的形式存储于所述存储器中或固化在所述后台服务器100的操作系统(operating system,OS)中的软件功能模块。所述第一处理器111用于执行第一存储器110中存储的可执行模块,例如所述施压数据获取模块1102及施压指令发送模块1103包括的软件功能模块或计算机程序。

其中,第一存储器110可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-Only Memory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。其中,第一存储器110用于存储程序,所述第一处理器111在接收到执行指令后,执行所述程序,前述本发明实施例任一实施例揭示的流过程定义的后台服务器100所执行的方法可以应用于处理器中,或者由第一处理器111实现。

第一处理器111可能是一种集成电路芯片,具有信号的处理能力。上述的第一处理器111可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

第一网络模块112用于接收以及发送网络信号。上述网络信号可包括无线信号或者有线信号。

以下将结合图4所示的服务器性能测试方法的实施例对所述施压数据获取模块1102及施压指令发送模块1103进行详细描述。

如图3所示,是所述项目服务器300的方框示意图。所述项目服务器300包括第二存储器310、第二处理器311、第二网络模块312、测试数据采集模块3102及测试数据发送模块3103。

所述第二存储器310、第二处理器311、第二网络模块312各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。所述测试数据采集模块3102及测试数据发送模块3103包括至少一个可以软件或固件(firmware)的形式存储于所述存储器中或固化在所述项目服务器300的操作系统(operating system,OS)中的软件功能模块。所述第二处理器311用于执行第二存储器310中存储的可执行模块,例如所述测试数据采集模块3102及测试数据发送模块3103包括的软件功能模块或计算机程序。

其中,第二存储器310可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-Only Memory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。其中,第二存储器310用于存储程序,所述第二处理器311在接收到执行指令后,执行所述程序,前述本发明实施例任一实施例揭示的流过程定义的项目服务器300所执行的方法可以应用于处理器中,或者由第二处理器311实现。

第二处理器311可能是一种集成电路芯片,具有信号的处理能力。上述的第二处理器311可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

第二网络模块312用于接收以及发送网络信号。上述网络信号可包括无线信号或者有线信号。

以下将结合服务器性能测试方法的实施例对所述测试数据采集模块3102及测试数据发送模块3103进行详细描述。

请参阅图4,是本发明较佳实施例提供的应用于服务器性能测试系统中的服务器性能测试方法的流程图。下面将对图4所示的具体流程进行详细阐述。

步骤S101,后台服务器100根据接收到的施压请求获取该施压请求中的施压数据。本实施例中,该步骤S101由施压数据获取模块1102执行。

所述施压数据包括施压脚本、选择的测试服务器及选择的项目服务器;所述施压数据还包括:配置施压人数、施压间隔时间、施压持续时间。

在一种实施方式中,可通过Jenkins持续集成工具持续向所述后台服务器100发送所述施压请求。所述Jenkins持续集成工具是基于Java开发的一种持续集成工具,用于监控持续重复的工作。进一步地,所述Jenkins持续集成工具可以定时向所述后台服务器100发送施压请求,也可以在网站版本更新时向所述后台服务器100发送施压请求。其中,所述Jenkins持续集成工具可以存储在与所述后台服务器100通信连接的任意用户终端中,也可以直接存储在所述后台服务器100中。为了将所述施压数据集成于所述施压请求,所述Jenkins持续集成工具中预先存储配置的施压人数、施压间隔时间、施压持续时间及不同时间指定不同的测试服务器200和项目服务器300的测试规则。所述Jenkins持续集成工具在发送所述施压请求时所述施压数据携带在所述施压请求中。

在另一实施方式中,用户终端接收到用户的测试操作后,向所述后台服务器100发送所述施压请求。详细地,在实际运用中,所述测试服务器200可以是由多个服务器形成测试服务器集群。所述项目服务器300可以是由多个服务器组成的项目服务器集群。进一步地,所述用户终端向所述后台服务器100发送所述施压请求之前可接收用户根据测试服务器200及项目服务器300的使用状况选择非工作状态的测试服务器200及项目服务器300的操作。详细地,所述用户终端可获取所述测试服务器200及项目服务器300的使用状况的数据,用户可以根据所述使用状况的数据判断测试服务器200及项目服务器300是否为工作状态,从而选择非工作状态的测试服务器200及项目服务器300。为了将所述施压数据集成于所述施压请求,所述用户终端在发送施压请求之前先配置施压人数、施压间隔时间、施压持续时间。通过选择非工作状态中的服务器进行测试,可以有效避免在同一时间同一服务器被选择用于测试不同的测试动作。

步骤S102,所述后台服务器100向选择的测试服务器200发送施压指令。本实施例中,该步骤S102由施压指令发送模块1103执行。

具体地,所述施压数据中包括选择的测试服务器200。所述后台服务器100仅向被选择的测试服务器200发送施压指令。所述施压脚本包括用于测试项目服务器300的一系列指令。

步骤S103,所述测试服务器200根据所述施压指令向所述项目服务器300发送测试请求以测试所述项目服务器300。

所述测试服务器200根据所述施压数据中的施压人数、施压间隔时间及施压持续时间向所述项目服务器300发送的测试请求以测试所述项目服务器300。

在一个实例中,本实施例中的方法可用于测试刚更新版本的游戏。如此,所述施压脚本中可包括一些游戏中的操作指令,例如,游戏人物前进指令、游戏人物后退指令、游戏人物的攻击动作指令、游戏物品的购买指令等。再如,若所述施压人数设定为一万人,施压间隔时间为五分钟,施压持续时间为十分钟,所述测试服务器200则向所述项目服务器300发送一万人持续十分钟同时执行游戏中的操作指令的模拟用户操作的行为。进一步地,所述施压指令中还可包括多组施压数据。进一步地,所述测试服务器200根据不同的所述施压数据分别向所述项目服务器300发送不同的测试请求以测试所述项目服务器300。

步骤S104,所述项目服务器300采集测试过程中的性能测试数据。该步骤S104由测试数据采集模块3102执行。

所述性能测试数据包括:CPU占用率、内存占用率、磁盘读写情况、网络带宽使用数据。

步骤S105,所述项目服务器300将所述性能测试数据发送给所述后台服务器100并进行存储。该步骤S105由测试数据发送模块3103执行。

所述后台服务器100根据所述性能测试数据生成测试报告并进行存储。详细地,用户终端可以登录账号后向所述后台服务器100发送获取所述测试报告的请求。所述登录账号可设置为后台管理员专用账号,使得一般游戏玩家账号不能登入所述后台服务器100获取所述测试报告。如此,可方便用户获取测试报告,不需要用户在测试时手工记录测试数据,大大提高了测试效率及准确率。

所述后台服务器100根据多次测试得到的性能测试数据生成对比文件供用户终端查看。本实施例中,所述后台服务器100将测试数据与之前获取的测试数据进行对比生成对比文件。详细地,可以将测试数据中的CPU占用率、内存占用率、磁盘读写情况、网络带宽使用数据分别对比生成对应的测试表格。通过生成对比文件,方便用户直观地了解不同测试数据及测试数据带来的测试结果。

在生成所述测试报告之后,所述后台服务器100还可以将所述测试报告发送给相应的用户。例如,所述后台服务器100将所述测试报告发送给所述用户的指定账号,如手机号码、邮箱账号等。所述指定账号可以预存在所述后台服务器100中,也可以是存储在Jenkins持续集成工具中。根据上述实施例中的方法,可以实现自动测试项目服务器300,并且施压指令中也携带有施压数据,同时在所述施压数据中指定用于测试的测试服务器200,可提高测试效率及准确率;另外,项目服务器300自动记录测试数据可减少测试人员的工作量。

请参阅图5,是本发明较佳实施例提供的服务器性能测试系统的功能模块示意图。本实施例的系统中的各个服务器包含的模块用于执行上述方法实施例中的步骤。该系统包括:后台服务器100、测试服务器200及项目服务器300;

所述后台服务器100包括:施压数据获取模块1102及施压指令发送模块1103;

施压数据获取模块1102,用于根据接收到的施压请求获取的请求中的施压数据,所述施压数据包括施压脚本、选择的测试服务器及选择的项目服务器。在一种实施方式中,Jenkins持续集成工具持续向所述后台服务器100发送所述施压请求。所述Jenkins持续集成工具定时向所述后台服务器100发送施压请求;或在网站版本更新时向所述后台服务器100发送施压请求。在另一种实施方式中,所述用户终端接收到用户的测试操作后,向所述后台服务器100发送所述施压请求。

所述施压指令发送模块1103,用于向选择的测试服务器200发送施压指令。

所述测试服务器200包括:测试发送模块210,用于根据所述施压指令向所述项目服务器300发送测试请求以测试所述项目服务器300。

所述项目服务器300包括:测试数据采集模块3102及测试数据发送模块3103;

所述测试数据采集模块3102,用于采集测试过程中的性能测试数据。

所述测试数据发送模块3103,用于将所述性能测试数据发送给所述后台服务器100并进行存储。

所述后台服务器100还包括:测试报告生成模块1104,用于根据所述性能测试数据生成测试报告并进行存储。

所述后台服务器100还包括对比文件生成模块1105,用于将多次测试得到的性能测试数据生成对比文件。

所述后台服务器100还包括报告发送模块1106,用于将所述测试报告发送给相应的用户。

在其他实施例中,该系统还包括用户终端:

所述用户终端包括选择模块,用于接收用户根据测试服务器200及项目服务器300的使用状况选择非工作状态的测试服务器200及项目服务器300的操作。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1