CN102866944A - 一种压力测试系统及方法 - Google Patents
一种压力测试系统及方法 Download PDFInfo
- Publication number
- CN102866944A CN102866944A CN2012101932625A CN201210193262A CN102866944A CN 102866944 A CN102866944 A CN 102866944A CN 2012101932625 A CN2012101932625 A CN 2012101932625A CN 201210193262 A CN201210193262 A CN 201210193262A CN 102866944 A CN102866944 A CN 102866944A
- Authority
- CN
- China
- Prior art keywords
- test
- scene
- script
- pressure
- assembly
- 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.)
- Granted
Links
Images
Abstract
本发明提供了一种压力测试系统及方法,该系统,包括:依次连接的场景接口适配组件、流程模拟组件、通信栈加载组件、并发控制组件及报告生成组件;通过根据用户从预设场景插件中选择的场景插件形成的测试场景生成测试脚本,并在所述测试场景通过模拟验证之后将测试脚本加载到被测试系统的通信栈,对所述被测试系统执行压力并发操作,并监控所述压力并发操作得到测试记录并生成测试报告。用户可以通过选择预设场景插件的方式,自动生成测试脚本,并相应的完成压力测试,解决了现有压力测试工具存在的操作复杂、测试脚本不易编程的技术问题。
Description
技术领域
本发明涉及软件测试领域,尤其涉及一种压力测试系统及方法。
背景技术
现有技术中,当一个程序写完或一台服务器配置完时,为保证该程序或服务器在实际使用时具备一定的稳定性,需要通过压力测试进行检测,即检测该程序或服务器是否可以承受足够大的负载压力。例如,某服务器是否可以在同一时间内可以允许指定个用户进行同一操作。
而目前压力测试主要是通过如LoadRunner、WebLoad等压力测试工具来完成,但现有的压力测试工具操作复杂,比较难上手,具体的测试过程为,测试人员首先根据被测试系统设置相应的测试场景,然后再根据测试场景编写测试脚本,所以需要测试人员具有专业的脚本编程基础,没有脚本编程基础的测试人员短时间内很难独立针对具体的压力测试场景编写压力测试脚本,实现压力测试。
发明内容
本发明目的在于提供一种压力测试系统及方法,以解决在现有压力测试工具存在的操作复杂、测试脚本不易编程的技术问题。
本发明提供了一种压力测试系统,包括:依次连接的场景接口适配组件、流程模拟组件、通信栈加载组件、并发控制组件及报告生成组件;
所述场景接口适配组件,用于根据用户从预设场景插件中选择的场景插件形成的测试场景生成测试脚本,每个预设场景插件均关联有对应的脚本文件;
所述流程模拟组件,用于根据生成的测试脚本对所述测试场景进行模拟验证,验证通过后生成对应编译文件;
所述通信栈加载组件,用于将所述测试脚本对应的编译文件加载到被测试系统的通信栈;
所述并发控制组件,用于根据加载到通信栈上的测试脚本对应的编译文件对所述被测试系统执行压力并发操作,并监控所述压力并发操作得到测试记录;
所述报告生成组件,用于将所述测试记录加载测试报告模板生成测试报告。
作为上述技术方案的优选,所述场景接口适配组件包括:
接口适配单元,用于根据用户从预设场景插件中选择的场景插件和预设的通用接口形成测试场景;
脚本生成单元,用于确定所述选择的场景插件关联的脚本文件,将关联的脚本文件组成场景脚本;
协议适配单元,用于根据被测试系统的协议加载接口,对所述场景脚本加载与所述协议加载接口相应的协议信息,生成测试脚本。
作为上述技术方案的优选,所述流程模拟组件包括:
业务场景模拟单元,用于根据所述测试脚本对测试场景进行模拟,判断所述测试脚本是否能编译成功,若编译成功则生成与测试脚本相对应的编译文件;
主机间通信模拟单元,用于根据所述测试脚本对压力测试系统与被测试系统之间的通信进行模拟,检测是否能链接到被测试系统;
压力动态模拟单元,用于根据模拟压力测试时间系数和所述测试脚本对测试场景进行压力动态模拟,检测是否能成功进行压力动态模拟;
所述通信栈加载组件具体用于,将同时满足能够编译成功、能链接到被测试系统及能成功进行压力动态模拟的测试脚本对应的编译文件加载到被测试系统的通信栈。
作为上述技术方案的优选,所述系统还包括存储组件及与所述存储组件连接的通用平台,所述存储组件及所述通用平台分别与所述场景接口适配组件、流程模拟组件、通信栈加载组件、并发控制组件及报告生成组件连接;
所述存储组件,用于存储协议信息及测试记录;
所述通用平台,用于管理所述场景接口适配组件、流程模拟组件、通信栈加载组件、并发控制组件及报告生成组件的生命周期、组件启停及组件之间的通信。
作为上述技术方案的优选,所述通用平台还设置有API接口,所述API接口用于创建新的组件及对通用平台和各组件的修改。
本发明还提供了一种压力测试方法,包括:
根据用户从预设场景插件中选择的场景插件形成的测试场景生成测试脚本,每个预设场景插件均关联有对应的脚本文件;
根据生成的测试脚本对所述测试场景进行模拟验证,验证通过后生成对应编译文件;
将所述测试脚本对应的编译文件加载到被测试系统的通信栈;
根据加载到通信栈上的测试脚本对应的编译文件对所述被测试系统执行压力并发操作,并监控所述压力并发操作得到测试记录;
将所述测试记录加载测试报告模板生成测试报告。
作为上述技术方案的优选,所述根据用户从预设场景插件中选择的场景插件形成的测试场景生成测试脚本具体包括:
根据用户从预设场景插件中选择的场景插件和预设的通用接口形成测试场景;
确定所述选择的场景插件关联的脚本文件,将关联的脚本文件组成场景脚本;
根据被测试系统的协议加载接口,对所述场景脚本加载与所述协议加载接口相应的协议信息,生成测试脚本。
作为上述技术方案的优选,所述根据生成的测试脚本对所述测试场景进行模拟验证具体包括:
根据所述测试脚本对测试场景进行模拟,判断所述测试脚本是否能编译成功,若编译成功则生成与测试脚本相对应的编译文件;
根据所述测试脚本对压力测试系统与被测试系统之间的通信进行模拟,检测是否能链接到被测试系统;
根据模拟压力测试时间系数和所述测试脚本对测试场景进行压力动态模拟,检测是否能成功进行压力动态模拟;
将同时满足能够编译成功、能链接到被测试系统及能成功进行压力动态模拟的测试脚本对应的编译文件加载到被测试系统的通信栈。
作为上述技术方案的优选,所述方法还包括:存储协议信息及测试记录。
作为上述技术方案的优选,所述方法还包括创建新的组件及对通用平台和各组件的修改。
本发明提供的压力测试系统及方法,该系统,包括:依次连接的场景接口适配组件、流程模拟组件、通信栈加载组件、并发控制组件及报告生成组件;通过根据用户从预设场景插件中选择的场景插件形成的测试场景生成测试脚本,并在所述测试场景通过模拟验证之后将测试脚本加载到被测试系统的通信栈,对所述被测试系统执行压力并发操作,并监控所述压力并发操作得到测试记录并生成测试报告。用户可以通过选择预设场景插件的方式,自动生成测试脚本,并相应的完成压力测试,解决了现有压力测试工具存在的操作复杂、测试脚本不易编程的技术问题。
附图说明
图1为本发明一实施例提供的压力测试系统的结构示意图;
图2为图1中场景接口适配组件的结构示意图;
图3为图1中流程模拟组件的结构示意图;
图4为本发明又一实施例提供的压力测试系统的结构示意图;
图5为本发明再一实施例提供的压力测试方法的流程示意图;
图6为图5所示压力测试方法中步骤100的流程示意图;
图7为图5所示压力测试方法中步骤200的流程示意图。
具体实施方式
图1为本发明一实施例提供的压力测试系统的结构示意图,如图1所示,本发明实施例提供了一种压力测试系统1,包括:依次连接的场景接口适配组件10、流程模拟组件20、通信栈加载组件30、并发控制组件40及报告生成组件50。
场景接口适配组件10,用于根据用户从预设场景插件中选择的场景插件形成的测试场景生成测试脚本,每个预设场景插件均关联有对应的脚本文件。该场景插件可以根据经验进行设置,例如常用的:登陆、输入用户名、点击某项操作等作为场景插件的内容。设计好的场景插件可以通过例如绑定的方式关联与其对应的脚本文件。具体的用户对场景插件的选择操作可以通过例如点选场景插件,或以拖拽的方式选择场景插件等方式。
另外对于场景插件的选择通常具有顺序性,以拖拽场景插件为例,如先拖拽登陆场景插件,再拖拽输入用户名场景插件等。具体的可以根据实际的压力测试场景来预设。
目前现有技术中的主流压力测试工具适用于所有场景的压力测试,具体的为通过操作者的脚本编程实现所有场景类型的压力测试需求,但由于主流压力测试工具中所集成的功能模块、协议模块等过于繁重,对于一般要求的压力测试来说,占用系统资源,影响测试效率。而本实施例中的压力测试系统,由于预设的场景插件通常可以为最为常用的。然后通过用户选取插件方式来组成测试场景,所以,虽然本实施例可以通过用户拖拽场景插件形成的测试场景方式有限,但相对于现有技术中的主流压力测试工具而言,基于插件方式设计,具有资源占用少,使用方便的特点,使得本压力测试系统成为一种轻便型的测试工具。本压力测试系统能够普遍适应中小型项目的压力测试要求,且使用简单,成本低廉,解决了目前主流压力测试工具庞大,资源占用过多的问题。
流程模拟组件20,用于根据生成的测试脚本对测试场景进行模拟验证,验证通过后生成对应编译文件。具体的编译文件的格式例如C语言包、ASCII等,将测试脚本翻译得到机器语言。
通信栈加载组件30,用于将测试脚本对应的编译文件加载到被测试系统的通信栈。具体的,编译文件通过与被测试系统的连接的接口根据该接口相应的配置参数通过接口加载的方式加载对应的通信栈,例如编译后的文件performance-test.o中的send()抽象函数调用TCP/IP的客户端协议tcp-client.o的client-send-tcp/ip()函数,生成新的实体send()函数,进而生成新的performance-test.o。通过将测试脚本对应的编译文件加载到被测试系统的通信栈可以实现被测试系统对于测试脚本文件的接入,用于下一步的压力测试操作。
并发控制组件40,用于根据加载到通信栈上的测试脚本对应的编译文件对被测试系统执行压力并发操作,并监控压力并发操作得到测试记录。具体的进行并发操作可以通过用户设定并发压力值,例如在同一时间内压力值为用户预设的100并发对被测试系统进行操作,同时获取测试记录。
报告生成组件50,用于将测试记录加载测试报告模板生成测试报告。对于获取到的测试记录按照测试报告模板生成测试报告,具体的测试报告中包括系统压力成功进程数,压力失败进程数等参数。
有上述实施例可知,本发明实施例提供的压力测试系统,包括:依次连接的场景接口适配组件、流程模拟组件、通信栈加载组件、并发控制组件及报告生成组件;通过根据用户从预设场景插件中选择的场景插件形成的测试场景生成测试脚本,并在所述测试场景通过模拟验证之后将测试脚本加载到被测试系统的通信栈,对所述被测试系统执行压力并发操作,并监控所述压力并发操作得到测试记录并生成测试报告。用户可以通过选择预设场景插件的方式,自动生成测试脚本,并相应的完成压力测试,解决了现有压力测试工具存在的操作复杂、测试脚本不易编程的技术问题。
图2为图1中场景接口适配组件的结构示意图,如图2所示,作为上述技术方案的优选,场景接口适配组件10包括:
接口适配单元101,用于根据用户从预设场景插件中选择的场景插件和预设的通用接口。例如,本实施例中通用接口的具体形式为利用JAVA接口实现,每个场景插件即是具体的JAVA接口的实现类.利用JAVA虚拟机加载插件的方式进行插件加载,最终形成测试场景。对于用户选择的场景插件首先完成统一的接入。
脚本生成单元102,用于确定选择的场景插件关联的脚本文件,将关联的脚本文件组成场景脚本。对于接入的场景插件,通过其关联的脚本文件生成场景脚本。具体的可以通过将脚本文件按照与场景插件对应的顺序,简单的组合在一起,具体的还会涉及脚本文件的文件头和文件尾的一些常规处理,例如格式上的处理,使得生成的场景脚本符合常用场景的格式要求。
协议适配单元103,用于根据被测试系统的协议加载接口,对场景脚本加载与协议加载接口相应的协议信息,生成测试脚本。由于不同的被测试系统使用不同的协议类型,例如超文本传送协议(hypertext transport protocol,HTTP),针对被测试系统协议加载接口,场景脚本加载协议信息,具体的场景脚本中预留有加载协议信息的参数设置。使得用户无需关心性能模拟的协议类型,只需关心测试场景的形成,系统会自动匹配协议。
图3为图1中流程模拟组件的结构示意图,如图3所示,作为上述技术方案的优选,流程模拟组件20包括:
业务场景模拟单元201,用于根据测试脚本对测试场景进行模拟,判断测试脚本是否能编译成功,若编译成功则生成与测试脚本相对应的编译文件。该步骤主要是检测测试脚本的程序逻辑是否正确,是否存在语法错误等问题,如果正确则对其编译生成编译文件。
主机间通信模拟单元202,用于根据测试脚本对压力测试系统与被测试系统之间的通信进行模拟,检测是否能链接到被测试系统。本操作主要是用于检验压力测试系统与被测试系统之间是否可以正常通信,具体例如,可以通过压力测试系统发送一测试信息到被测试系统,当被测试系统可以与压力测试系统正常通信时,返回一与测试信息对应的指令,则表明压力测试系统与被测试系统之间能够正常通信。
压力动态模拟单元203,用于根据模拟压力测试时间系数和测试脚本对测试场景进行压力动态模拟,检测是否能成功进行压力动态模拟。由于在实际的压力测试过程中,会有一些产生一些时间系数,由于压力测试的存在,被测试系统会存在一些延迟,例如:不同的系统检索,读写时间不同,不同IP地址的服务器通信响应时间不同等等,所以对于压力测试系统正式对被测试系统进行压力操作时,先进行压力动态模拟,具体的时间系数可以为经验值,根据模拟压力测试时间系数和测试脚本对测试场景进行压力动态模拟。
通信栈加载组件30具体用于,将同时满足能够编译成功、能链接到被测试系统及能成功进行压力动态模拟的测试脚本对应的编译文件加载到被测试系统的通信栈。只有能够编译成功、能链接到被测试系统及能成功进行压力动态模拟的测试脚本才能实现对被测试系统的压力测试。
图4为本发明又一实施例提供的压力测试系统的结构示意图,如图4所示,作为上述技术方案的优选,在上述一实施例的基础上,系统1还包括存储组件60及与存储组件60连接的通用平台70,存储组件60及通用平台70分别与场景接口适配组件10、流程模拟组件20、通信栈加载组件30、并发控制组件40及报告生成组件50连接。
存储组件60,用于存储协议信息及测试记录。针对协议信息的存储,具体可以将协议加载接口类型与协议信息对应地存储在存储组件60中。当场景接口适配组件10中的协议适配单元需要对场景脚本加载与协议加载接口相应的协议信息时,可以通过查找存储组件60中协议加载接口类型与协议信息之间的对应关系,调用相应的协议信息,实现协议信息的加载。针对测试记录的存储,具体实现方式为,并发控制组件40生成测试记录一一转存到存储组件60中,而报告生成组件50通过读取存储组件60中测试记录从而生成测试报告。
另外,存储组件60还可以用于存储与预设场景插件关联的脚本文件,模拟压力测试时间系数,及通信栈加载过程中产生的中间文件。
具体的针对存储在存储组件60中的与预设场景插件关联的脚本文件,场景接口适配组件10根据用户从预设场景插件中选择的场景插件,通过读取存储在存储组件60中的与预设场景插件关联的脚本文件,然后将读取到的脚本文件组合生成测试脚本。
具体的针对存储在存储组件60中的模拟压力测试时间系数,流程模拟组件20中的压力动态模拟单元203,通过读取存储在存储组件60中的模拟压力测试时间系数,并将其加载到测试脚本,从而对测试场景进行压力动态模拟,检测是否能成功进行压力动态模拟。
通信栈加载组件30,在将测试脚本对应的编译文件加载到被测试系统的通信栈时会产生一些中间文件,这些中间文件便可以存储在存储组件60中。
存储组件60还可以用于存储用户信息,例如操作者的用户名密码信息等。
通用平台70,用于管理场景接口适配组件10、流程模拟组件20、通信栈加载组件30、并发控制组件40及报告生成组件50的生命周期、组件启停及组件之间的通信。通用平台70可以为上述组件具备统一的UI界面,便于用户操作。
作为上述技术方案的优选,通用平台70还设置有API接口,API接口用于创建新的组件及对通用平台70和各组件的修改。API(Application ProgramInterface)应用程序接口是一组定义、程序及协议的集合。通过API接口实现计算机软件之间的相互通信。API的一个主要功能是提供通用功能集。程序员通过使用API函数开发应用程序,从而可以避免编写无用程序,以减轻编程任务。API同时也是一种中间件,为各种不同平台提供数据共享。用户可以根据自身需要,编写相应的组件。考虑到本压力测试系统预设的场景插件类型有一定的局限,无法适应所有类型场景压力测试的需求,所以通过设置API接口,当用户对压力测试有其他需求时,例如,用户的某一需求在预设的场景插件中并没有涉及,则用户可以通过API接口针对该需求自行设计一相应的场景插件,使得本压力测试系统适应广泛,且具备灵活性,可以通过用户的后期设置使该压力测试系统适用于压力测试过程中所有的测试场景。
有上述实施例可知,本发明实施例提供的压力测试系统,包括:依次连接的场景接口适配组件、流程模拟组件、通信栈加载组件、并发控制组件及报告生成组件;通过根据用户从预设场景插件中选择的场景插件形成的测试场景生成测试脚本,并在所述测试场景通过模拟验证之后将测试脚本加载到被测试系统的通信栈,对所述被测试系统执行压力并发操作,并监控所述压力并发操作得到测试记录并生成测试报告。用户可以通过选择预设场景插件的方式,自动生成测试脚本,并相应的完成压力测试,解决了现有压力测试工具存在的操作复杂、测试脚本不易编程的技术问题。
目前压力测试系统测试的场景通常集中在被测试系统上线之前测试,但是系统上线后,由于实际的需要,系统通常会进行一定的修改,而往往压力测试并没有做,导致线上系统性能不稳定。但如果对线上系统进行整体的压力测试,则会影响当前线上系统的工作性能,甚至无法正常工作。针对这一问题,本发明实施例提供的压力测试系统还设置有URL接口调用模块,WEBSERVICE接口调用模块,用于将上述实施例中生成的测试脚本文件通过动态运行的测试系统的测试接口的加载到被测试系统的通信栈,仅对新增模块进行压力测试,可以实现非攻击方式的动态增量测试线上系统。线上系统可以在被压力测试的同时保证正常的运行。本实施例通过设置URL接口调用模块,WEBSERVICE接口调用模块,使得线上系统性能有效地得到测试,既保证线上系统压力测试的及时性,又通过非攻击方式保证线上系统的稳定性。
图5为本发明再一实施例提供的压力测试方法的流程示意图,如图5所示,本发明实施例提供的一种压力测试方法,包括:
步骤100:根据用户从预设场景插件中选择的场景插件形成的测试场景生成测试脚本,每个预设场景插件均关联有对应的脚本文件;
步骤200:根据生成的测试脚本对测试场景进行模拟验证,验证通过后生成对应编译文件;
步骤300:将测试脚本对应的编译文件加载到被测试系统的通信栈;
步骤400:根据加载到通信栈上的测试脚本对应的编译文件对被测试系统执行压力并发操作,并监控压力并发操作得到测试记录;
步骤500:将测试记录加载测试报告模板生成测试报告。
有上述实施例可知,本发明实施例提供的压力测试方法,通过根据用户从预设场景插件中选择的场景插件形成的测试场景生成测试脚本,并在所述测试场景通过模拟验证之后将测试脚本加载到被测试系统的通信栈,对所述被测试系统执行压力并发操作,并监控所述压力并发操作得到测试记录并生成测试报告。用户可以通过选择预设场景插件的方式,自动生成测试脚本,并相应的完成压力测试,解决了现有压力测试工具存在的操作复杂、测试脚本不易编程的技术问题。
具体的与上述相关压力测试系统实施例的实现过程相同,详细可以参考上述相关压力测试系统实施例的记载,在此不再赘述。
图6为图5所示压力测试方法中步骤100的流程示意图,如图6所示,作为上述技术方案的优选,步骤100中根据用户从预设场景插件中选择的场景插件形成的测试场景生成测试脚本具体包括:
步骤110:根据用户从预设场景插件中选择的场景插件和预设的通用接口形成测试场景;
步骤120:确定选择的场景插件关联的脚本文件,将关联的脚本文件组成场景脚本;
步骤130:根据被测试系统的协议加载接口,对场景脚本加载与协议加载接口相应的协议信息,生成测试脚本。
图7为图5所示压力测试方法中步骤200的流程示意图,如图7所示作为上述技术方案的优选,步骤200中根据生成的测试脚本对所述测试场景进行模拟验证具体包括:
步骤210:根据测试脚本对测试场景进行模拟,判断测试脚本是否能编译成功,若编译成功则生成与测试脚本相对应的编译文件;
步骤220:根据测试脚本对压力测试系统与被测试系统之间的通信进行模拟,检测是否能链接到被测试系统;
步骤230:根据模拟压力测试时间系数和测试脚本对测试场景进行压力动态模拟,检测是否能成功进行压力动态模拟;
将同时满足能够编译成功、能链接到被测试系统及能成功进行压力动态模拟的测试脚本对应的编译文件加载到被测试系统的通信栈。
作为上述技术方案的优选,方法还包括:存储协议信息及测试记录。
作为上述技术方案的优选,方法还包括创建新的组件及对通用平台和各组件的修改。
有上述实施例可知,针对目前测试脚本复杂的问题,本压力测试工具采用一种模拟场景设计的方式实现测试场景的开发工作。本发明阐述的新型压力测试工具基于平台加插件理念设计,即通过具备基本功的压力测试平台对应基本的压力测试需求,而特殊需求采用插件方式进行实现。解决目前压力测试工具庞大,资源占用过多的问题。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种压力测试系统,其特征在于,包括:依次连接的场景接口适配组件、流程模拟组件、通信栈加载组件、并发控制组件及报告生成组件;
所述场景接口适配组件,用于根据用户从预设场景插件中选择的场景插件形成的测试场景生成测试脚本,每个预设场景插件均关联有对应的脚本文件;
所述流程模拟组件,用于根据生成的测试脚本对所述测试场景进行模拟验证,验证通过后生成对应编译文件;
所述通信栈加载组件,用于将所述测试脚本对应的编译文件加载到被测试系统的通信栈;
所述并发控制组件,用于根据加载到通信栈上的测试脚本对应的编译文件对所述被测试系统执行压力并发操作,并监控所述压力并发操作得到测试记录;
所述报告生成组件,用于将所述测试记录加载测试报告模板生成测试报告。
2.根据权利要求1所述的压力测试系统,其特征在于,所述场景接口适配组件包括:
接口适配单元,用于根据用户从预设场景插件中选择的场景插件和预设的通用接口形成测试场景;
脚本生成单元,用于确定所述选择的场景插件关联的脚本文件,将关联的脚本文件组成场景脚本;
协议适配单元,用于根据被测试系统的协议加载接口,对所述场景脚本加载与所述协议加载接口相应的协议信息,生成测试脚本。
3.根据权利要求2所述的压力测试系统,其特征在于,所述流程模拟组件包括:
业务场景模拟单元,用于根据所述测试脚本对测试场景进行模拟,判断所述测试脚本是否能编译成功,若编译成功则生成与测试脚本相对应的编译文件;
主机间通信模拟单元,用于根据所述测试脚本对压力测试系统与被测试系统之间的通信进行模拟,检测是否能链接到被测试系统;
压力动态模拟单元,用于根据模拟压力测试时间系数和所述测试脚本对测试场景进行压力动态模拟,检测是否能成功进行压力动态模拟;
所述通信栈加载组件具体用于,将同时满足能够编译成功、能链接到被测试系统及能成功进行压力动态模拟的测试脚本对应的编译文件加载到被测试系统的通信栈。
4.根据权利要求3所述的压力测试系统,其特征在于,所述系统还包括存储组件及与所述存储组件连接的通用平台,所述存储组件及所述通用平台分别与所述场景接口适配组件、流程模拟组件、通信栈加载组件、并发控制组件及报告生成组件连接;
所述存储组件,用于存储协议信息及测试记录;
所述通用平台,用于管理所述场景接口适配组件、流程模拟组件、通信栈加载组件、并发控制组件及报告生成组件的生命周期、组件启停及组件之间的通信。
5.根据权利要求4所述的压力测试系统,其特征在于,所述通用平台还设置有API接口,所述API接口用于创建新的组件及对通用平台和各组件的修改。
6.一种压力测试方法,其特征在于,包括:
根据用户从预设场景插件中选择的场景插件形成的测试场景生成测试脚本,每个预设场景插件均关联有对应的脚本文件;
根据生成的测试脚本对所述测试场景进行模拟验证,验证通过后生成对应编译文件;
将所述测试脚本对应的编译文件加载到被测试系统的通信栈;
根据加载到通信栈上的测试脚本对应的编译文件对所述被测试系统执行压力并发操作,并监控所述压力并发操作得到测试记录;
将所述测试记录加载测试报告模板生成测试报告。
7.根据权利要求6所述的压力测试方法,其特征在于,所述根据用户从预设场景插件中选择的场景插件形成的测试场景生成测试脚本具体包括:
根据用户从预设场景插件中选择的场景插件和预设的通用接口形成测试场景;
确定所述选择的场景插件关联的脚本文件,将关联的脚本文件组成场景脚本;
根据被测试系统的协议加载接口,对所述场景脚本加载与所述协议加载接口相应的协议信息,生成测试脚本。
8.根据权利要求7所述的压力测试方法,其特征在于,所述根据生成的测试脚本对所述测试场景进行模拟验证具体包括:
根据所述测试脚本对测试场景进行模拟,判断所述测试脚本是否能编译成功,若编译成功则生成与测试脚本相对应的编译文件;
根据所述测试脚本对压力测试系统与被测试系统之间的通信进行模拟,检测是否能链接到被测试系统;
根据模拟压力测试时间系数和所述测试脚本对测试场景进行压力动态模拟,检测是否能成功进行压力动态模拟;
将同时满足能够编译成功、能链接到被测试系统及能成功进行压力动态模拟的测试脚本对应的编译文件加载到被测试系统的通信栈。
9.根据权利要求8所述的压力测试方法,其特征在于,所述方法还包括:存储协议信息及测试记录。
10.根据权利要求9所述的压力测试方法,其特征在于,所述方法还包括创建新的组件及对通用平台和各组件的修改。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210193262.5A CN102866944B (zh) | 2012-06-12 | 2012-06-12 | 一种压力测试系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210193262.5A CN102866944B (zh) | 2012-06-12 | 2012-06-12 | 一种压力测试系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102866944A true CN102866944A (zh) | 2013-01-09 |
CN102866944B CN102866944B (zh) | 2015-04-29 |
Family
ID=47445823
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210193262.5A Active CN102866944B (zh) | 2012-06-12 | 2012-06-12 | 一种压力测试系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102866944B (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104268082A (zh) * | 2014-09-26 | 2015-01-07 | 北京国双科技有限公司 | 浏览器的压力测试方法和装置 |
CN105959177A (zh) * | 2016-04-26 | 2016-09-21 | 网易(杭州)网络有限公司 | 一种游戏服务器压力测试脚本的生成方法和装置 |
CN106371990A (zh) * | 2016-08-30 | 2017-02-01 | 福建天晴数码有限公司 | 一种交互式软件并发处理能力的测试方法及系统 |
CN107395453A (zh) * | 2017-07-03 | 2017-11-24 | 竹间智能科技(上海)有限公司 | 后台服务压力测试方法及装置 |
CN108075951A (zh) * | 2017-12-26 | 2018-05-25 | 珠海金山网络游戏科技有限公司 | 一种基于玩家分布的服务器压力测试方法和装置 |
CN109344059A (zh) * | 2018-09-20 | 2019-02-15 | 天津龙拳风暴科技有限公司 | 一种服务器压力测试方法及装置 |
CN109669874A (zh) * | 2018-12-28 | 2019-04-23 | 广州君海网络科技有限公司 | 一种游戏服务端压力测试平台及测试方法 |
CN109815107A (zh) * | 2017-11-22 | 2019-05-28 | 北京京东尚科信息技术有限公司 | 自动化测试的方法和装置 |
CN110737601A (zh) * | 2019-10-24 | 2020-01-31 | 北京字节跳动网络技术有限公司 | 一种测试方法、装置、电子设备和存储介质 |
WO2020259516A1 (zh) * | 2019-06-28 | 2020-12-30 | 深圳前海微众银行股份有限公司 | 一种单元测试系统及测试方法 |
CN113448822A (zh) * | 2020-03-25 | 2021-09-28 | 北京同邦卓益科技有限公司 | 测试方法、装置、计算机可读介质及电子设备 |
CN115883431A (zh) * | 2022-11-29 | 2023-03-31 | 重庆长安汽车股份有限公司 | 一种终端通讯协议性能测试系统、方法、车辆及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6430708B1 (en) * | 1998-04-17 | 2002-08-06 | Visa International Service Association | Method and apparatus for testing job control language (JCL) members |
CN101882105A (zh) * | 2010-06-01 | 2010-11-10 | 华南理工大学 | 一种测试Web网页并发环境下响应时间的方法 |
CN101887389A (zh) * | 2010-06-03 | 2010-11-17 | 南京班墨自动化技术有限公司 | 一种基于二元结构的脚本生成方法 |
WO2011137863A2 (zh) * | 2011-07-07 | 2011-11-10 | 华为终端有限公司 | 桌面应用组件自动显示的方法和设备 |
-
2012
- 2012-06-12 CN CN201210193262.5A patent/CN102866944B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6430708B1 (en) * | 1998-04-17 | 2002-08-06 | Visa International Service Association | Method and apparatus for testing job control language (JCL) members |
CN101882105A (zh) * | 2010-06-01 | 2010-11-10 | 华南理工大学 | 一种测试Web网页并发环境下响应时间的方法 |
CN101887389A (zh) * | 2010-06-03 | 2010-11-17 | 南京班墨自动化技术有限公司 | 一种基于二元结构的脚本生成方法 |
WO2011137863A2 (zh) * | 2011-07-07 | 2011-11-10 | 华为终端有限公司 | 桌面应用组件自动显示的方法和设备 |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104268082B (zh) * | 2014-09-26 | 2017-10-03 | 北京国双科技有限公司 | 浏览器的压力测试方法和装置 |
CN104268082A (zh) * | 2014-09-26 | 2015-01-07 | 北京国双科技有限公司 | 浏览器的压力测试方法和装置 |
CN105959177A (zh) * | 2016-04-26 | 2016-09-21 | 网易(杭州)网络有限公司 | 一种游戏服务器压力测试脚本的生成方法和装置 |
CN105959177B (zh) * | 2016-04-26 | 2018-12-11 | 网易(杭州)网络有限公司 | 一种游戏服务器压力测试脚本的生成方法和装置 |
CN106371990A (zh) * | 2016-08-30 | 2017-02-01 | 福建天晴数码有限公司 | 一种交互式软件并发处理能力的测试方法及系统 |
CN106371990B (zh) * | 2016-08-30 | 2018-11-23 | 福建天晴数码有限公司 | 一种交互式软件并发处理能力的测试方法及系统 |
CN107395453A (zh) * | 2017-07-03 | 2017-11-24 | 竹间智能科技(上海)有限公司 | 后台服务压力测试方法及装置 |
CN109815107A (zh) * | 2017-11-22 | 2019-05-28 | 北京京东尚科信息技术有限公司 | 自动化测试的方法和装置 |
CN109815107B (zh) * | 2017-11-22 | 2022-06-07 | 北京京东尚科信息技术有限公司 | 自动化测试的方法和装置 |
CN108075951B (zh) * | 2017-12-26 | 2020-10-16 | 珠海金山网络游戏科技有限公司 | 一种基于玩家分布的服务器压力测试方法和装置 |
CN108075951A (zh) * | 2017-12-26 | 2018-05-25 | 珠海金山网络游戏科技有限公司 | 一种基于玩家分布的服务器压力测试方法和装置 |
CN109344059A (zh) * | 2018-09-20 | 2019-02-15 | 天津龙拳风暴科技有限公司 | 一种服务器压力测试方法及装置 |
CN109669874A (zh) * | 2018-12-28 | 2019-04-23 | 广州君海网络科技有限公司 | 一种游戏服务端压力测试平台及测试方法 |
WO2020259516A1 (zh) * | 2019-06-28 | 2020-12-30 | 深圳前海微众银行股份有限公司 | 一种单元测试系统及测试方法 |
CN110737601A (zh) * | 2019-10-24 | 2020-01-31 | 北京字节跳动网络技术有限公司 | 一种测试方法、装置、电子设备和存储介质 |
CN113448822A (zh) * | 2020-03-25 | 2021-09-28 | 北京同邦卓益科技有限公司 | 测试方法、装置、计算机可读介质及电子设备 |
CN115883431A (zh) * | 2022-11-29 | 2023-03-31 | 重庆长安汽车股份有限公司 | 一种终端通讯协议性能测试系统、方法、车辆及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN102866944B (zh) | 2015-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102866944B (zh) | 一种压力测试系统及方法 | |
CN109933522B (zh) | 一种自动化用例的测试方法、测试系统及存储介质 | |
WO2019153472A1 (zh) | 接口自动化测试方法、装置、设备及存储介质 | |
CN101930400B (zh) | Sdk自动化测试系统及方法 | |
US8839107B2 (en) | Context based script generation | |
US20100281463A1 (en) | XML based scripting framework, and methods of providing automated interactions with remote systems | |
CN109918310A (zh) | 一种建模平台接口测试方法 | |
CN101866315B (zh) | 软件开发工具的测试方法及系统 | |
CN110362490B (zh) | 融合iOS与Android移动应用的自动化测试方法及系统 | |
CN108845940A (zh) | 一种企业级信息系统自动化功能测试方法和系统 | |
CN102306122A (zh) | 自动化测试方法及设备 | |
Biswal et al. | A novel approach for scenario-based test case generation | |
CN109933521A (zh) | 基于bdd的自动化测试方法、装置、计算机设备及存储介质 | |
CN110543427A (zh) | 测试用例存储方法、装置、电子设备及存储介质 | |
CN113722020A (zh) | 接口调用方法、装置和计算机可读存储介质 | |
CN114281680A (zh) | 一种web自动化测试方法及系统 | |
CN114416547A (zh) | 基于测试用例的测试方法 | |
CN101986282A (zh) | 拓扑适配方法及装置 | |
CN103176903B (zh) | MapReduce分布式系统程序的测试方法及设备 | |
Rellermeyer et al. | Building, deploying, and monitoring distributed applications with eclipse and r-osgi | |
CN108287720A (zh) | 软件编译方法、装置、设备及存储介质 | |
CN117041111A (zh) | 车云功能测试方法、装置、电子设备及存储介质 | |
CN111506305A (zh) | 工具包生成方法、装置、计算机设备及可读存储介质 | |
CN106354966B (zh) | 芯片ide工程文件转换及快速配置仿真调试环境的方法 | |
CN103294484A (zh) | 用于fluent计算程序的处理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |