CN103544103A - 一种软件性能测试模拟并发方法及*** - Google Patents
一种软件性能测试模拟并发方法及*** Download PDFInfo
- Publication number
- CN103544103A CN103544103A CN201310393147.7A CN201310393147A CN103544103A CN 103544103 A CN103544103 A CN 103544103A CN 201310393147 A CN201310393147 A CN 201310393147A CN 103544103 A CN103544103 A CN 103544103A
- Authority
- CN
- China
- Prior art keywords
- user
- test
- module
- request
- concurrent
- 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
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明涉及一种软件性能测试模拟并发方法,具体包括以下步骤:步骤1:读取用户输入的用户配置信息;步骤2:存储用户需求结构体到共享内存模块,建立映射;步骤3:接收并发用户的业务请求,根据并发用户的数量和用户需求结构体创建至少一个测试进程;步骤4:创建测试线程;步骤5:每个测试线程处理一个用户的业务请求,达到退出条件,测试线程退出;步骤6:运行结束,各测试进程中测试线程运行完毕后依次退出;步骤7:存储分析并统计各项业务相关数据,结束。本发明诠释了如何模拟用户并发,防止发生瓶颈,达到利用少量的硬件资源模拟高并发场景;保证并发稳定性;实现对不同用户业务的支持;为定位问题和缩短开发周期提供帮助。
Description
技术领域
本发明涉及一种软件性能测试模拟并发方法及***,属于计算机技术领域。
背景技术
对于软件产品性能评测并发方法,其中经典的场景为:并发的用户请求场景,例如5000个用户同时进行提交电话缴费服务。其中如何使用尽量少的计算机,平稳、准确的模拟用户操作行为成为行业难题。
计算机硬件配置越来越高,可供程序分配的资源越来越多,而测试进程是可分配硬件资源的最小单位,多测试进程可尽量多的分配到硬件资源,模拟高用户并发场景下多测试进程具有技术优势。
操作***在内存保护模式下运行,测试进程拥有独立的逻辑内存空间,多测试进程互相之间不能直接访问。而现存的免费性能测试工具都使用单测试进程架构。无法充分申请硬件资源,单机模拟用户的并发数容易达到上限,且高并发时CPU时间片分配不足,运行精度低。
此发明采用多测试进程方式,并且解决了测试进程之间通讯的问题,用来模拟用户并发行为。与之类似的有Windows平台的LoadRunner、WebLoad。
发明内容
本发明所要解决的技术问题是,针对现有技术中商业软件:LoadRunner、WebLoad,但其都属于商业软件,代码及架构属于商业秘密,不公开,收费昂贵,且不能在Linux***下运行;开源软件:类似于HttpLoad仅采用单测试进程单测试线程架构属于假并发,其模型简单,准确率低,无法保证用户业务的准确发送的不足,提供一种诠释了计算机程序如何实现模拟用户并发的软件性能测试模拟并发方法。
本发明解决上述技术问题的技术方案如下:一种软件性能测试模拟并发方法,具体包括以下步骤:
步骤1:读取转换模块读取用户输入的用户配置信息,转换为计算机可识别的用户需求结构体;
步骤2:共享内存模块存储用户需求结构体;
步骤3:请求接收模块接收至少一个并发用户的业务请求,根据并发用户的数量和用户需求结构体创建至少一个测试进程,使每个测试进程对应预设数量的并发用户,并建立映射,使所有测试进程映射用户需求结构体;
步骤4:测试线程创建模块在每个测试进程中创建多个测试线程,使每个并发用户对应一个测试线程;
步骤5:业务处理模块使每个测试线程单独处理一个用户的业务请求,记录每次业务返回数据,当运行次数达到预定次数或运行时间达到预设时间时,将共享内存模块置停止标志位;
步骤6:检测到共享内存模块置停止标志位,各测试进程中测试线程运行完毕后依次退出;
步骤7:分析模块存储业务返回数据,分析并统计各项业务相关数据,结束。
本发明的有益效果是:并发框架与LoadRunner在稳定性和准确性方面相当;使用了多测试进程多测试线程架构,合理分配资源,确保每个测试进程压力负载合理,避免了某个测试进程出现失效,对整体负载测试结论的影响;多测试进程架构保证了负载生成器可以申请到足够的***资源,避免多测试线程竞争造成的资源死锁对并发架构的影响;多测试线程架构保证了每个用户业务都运行在独立的上下文中,避免了HTTPLOAD架构中用户业务之间响应时间彼此的干扰;在接收到停止发送命令后,框架不是简单的放弃正在发送中的用户业务请求,而是等待正在发送中的业务请求全部返回,统计完成后,再退出并发框架,提高了数据统计精度。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,所述步骤3中每50个并发用户创建一个测试进程,并发用户不足50个的启动一个测试进程;并发模块启动的测试进程数P的数量由以下公式进行计算:
其中P表示测试进程数量,N表示并发用户数量。
进一步,所述步骤5具体包括以下步骤:
步骤5.1:业务处理模块使每个测试线程单独处理一个用户的业务请求,读取用户需求结构体;
步骤5.2:调用用户业务的库文件,初始化业务功能;
步骤5.3:执行用户请求的业务功能,并记录运行结果;
步骤5.4:判断运行模式为次数模式还是时间模式;如果是次数模式,进行步骤5.5;否则,进行步骤5.8;
步骤5.5:将运行次数保存到共享内存模块中,并实时更新共享内存模块中的运行次数;
步骤5.6:判断运行次数是否等于预先保存在共享内存模块中的预设次数,如果是,进行步骤5.7;否则,跳转至步骤5.3;
步骤5.7:结束业务功能,发送业务返回数据至分析模块,退出测试线程,并释放运行所需内存;
步骤5.8:判断运行时间是否等于预先保存在共享内存模块中的预设时间,如果是,进行步骤5.7;否则,跳转至步骤5.3。
进一步,所述用户配置信息包括测试***地址信息、用户数量信息、运行时间和数据库信息。
采用上述进一步方案的有益效果是,用户配置信息,供各测试进程识别用户需求、模拟用户业务行为、控制并发运行和控制并发退出。
进一步,所述步骤5处理用户的业务请求的过程中,实时存储用户的业务返回数据,供实时展示和步骤7的统计分析。
进一步,所述步骤6中,每个测试线程运行完毕依次退出时,实时更新共享内存模块中的退出测试线程数量,当退出测试线程的数量等于开始运行测试线程的数量时,才进行步骤8。
采用上述进一步方案的有益效果是,保证了每个请求结果都被统计到,提高了准确性。
本发明所要解决的另一个技术问题是,针对现有技术中的不足,提供一种诠释了计算机程序如何实现模拟用户并发的软件性能测试模拟并发***。
本发明解决上述技术问题的技术方案如下:一种软件性能测试模拟并发***,包括读取转换模块、共享内存模块、请求接收模块、测试线程创建模块、业务处理模块和分析模块;
所述读取转换模块用于读取用户输入的用户配置信息,转换为计算机可识别的用户需求结构体,并将所述用户需求结构体发送至共享内存模块;
所述共享内存模块接收并存储用户需求结构体;
所述请求接收模块用于接收至少一个并发用户的业务请求,根据并发用户的数量和用户需求结构体创建至少一个测试进程,使每个测试进程对应预设数量的并发用户,并建立映射,使所有测试进程映射用户需求结构体;
所述测试线程创建模块用于在每个测试进程中创建多个测试线程,使每个并发用户对应一个测试线程;
所述业务处理模块用于使每个测试线程单独处理一个用户的业务请求,记录每次业务返回数据,当运行次数达到预定次数或运行时间达到预设时间时,将共享内存模块置停止标志位;业务处理模块检测到共享内存模块置停止标志位,各测试进程中测试线程运行完毕后依次退出;
所述分析模块用于存储业务返回数据,分析并统计各项业务相关数据。
本发明的有益效果是:本发明公布了一种软件性能测试模拟并发方法,诠释了计算机程序如何模拟用户并发,依靠多进程申请足够的资源进行合理调度,防止发生瓶颈,达到利用少量的硬件资源模拟高并发场景;多进程之间通讯,控制退出机制,保证每次发送结果都被统计到,提高统计结果精度。控制两次用户业务请求之间时间间隔,保证并发稳定性。运行环境不限于Windows平台。用户通过开发库文件,可实现对不同用户业务的支持;依靠此并发模型,开发人员和用户可以得到最接近真实的项目在不同场景下的性能表现,通过分析用户业务数据和被测服务器资源消耗可为定位问题和缩短开发周期提供帮助。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,所述请求接收模块将每50个并发用户创建一个测试进程,并发用户不足50个的启动一个测试进程;并发模块启动的测试进程数P的数量由以下公式进行计算:
其中P表示测试进程数量,N表示并发用户数量。
进一步,所述业务处理模块具体包括模式判断模块、初始化模块、业务执行模块和次数记录模块和时间判断模块;
所述模式判断模块用于读取用户需求结构体,判断运行模式为次数模式还是时间模式,当运行模式为次数模式时,业务执行模块与次数记录模块数据连接;当运行模式为时间模式时,业务执行模块与时间判断模块数据连接;
所述初始化模块用于调用用户业务的库文件,初始化业务功能;
所述业务执行模块用于执行用户请求的业务功能,并记录运行结果,并将运行结果发送至分析模块;
所述次数记录模块用于记录业务执行模块执行用户请求的业务功能的次数,并将运行次数保存到共享内存模块中,并实时更新共享内存模块中的运行次数;当运行次数等于预先保存在共享内存模块中的预设次数时,结束业务功能,退出测试线程,并释放运行所需内存;否则,返回继续执行的请求到业务执行模块;
所述时间判断模块用于判断运行时间是否等于预先保存在共享内存模块中的预设时间,如果是,结束业务功能,退出测试线程,并释放运行所需内存;否则,返回继续执行的请求到业务执行模块。
进一步,所述用户配置信息包括测试***地址信息、用户数量信息、运行时间和数据库信息。
采用上述进一步方案的有益效果是,用户配置信息,供各测试进程识别用户需求、模拟用户业务行为、控制并发运行和控制并发退出。
进一步,所述业务处理模块处理用户的业务请求的过程中,实施展示并存储用户的业务返回数据,供实时展示和统计分析。
进一步,所述业务处理模块处理业务的过程中,每个测试线程运行完毕依次退出时,实时更新共享内存模块中的退出测试线程数量,当退出测试线程的数量等于开始运行测试线程的数量时,才发送指令使分析模块分析并统计各项业务相关数据。
采用上述进一步方案的有益效果是,保证了每个请求结果都被统计到,提高了准确性。
本发明公布了一种软件性能测试模拟并发方法,诠释了计算机程序如何模拟用户并发;
依靠多测试进程申请足够的资源进行合理调度,防止发生瓶颈,达到利用少量的硬件资源模拟高并发场景;
多测试进程之间通讯,控制退出机制,保证每次发送结果都被统计到,提高统计结果精度。
控制两次用户业务请求之间时间间隔,保证并发稳定性。
运行环境不限于Windows平台。
用户通过开发库文件,可实现对不同用户业务的支持;
依靠此并发模型,开发人员和用户可以得到最接近真实的项目在不同场景下的性能表现,通过分析用户业务数据和被测服务器资源消耗可为定位问题和缩短开发周期提供帮助。
本发明以并发方法为中心,运用多测试进程多测试线程仿真用户业务行为为技术手段,通过空间换时间的方式,保证并发模型准确稳定运行,为开发人员和客户提供接近真实的用户行为仿真。
步骤1.读取用户配置:用户根据需求,确认需测试***地址,并发用户数,运行时间,数据库信息,生成配置文件。程序读取用户配置信息,存储用计算机识别的结构体,供各测试进程识别用户需求、模拟用户业务行为、控制并发运行和控制并发退出。
步骤2.操作***运行在内存保护机制下,每个测试进程都拥有独立的逻辑内存空间,各测试进程无法访问其他测试进程数据,而该并发模型是基于多测试进程多测试线程技术的,操作***的限制,导致各测试进程无法得知其他测试进程信息。通过测试进程之间通过映射同一个普通文件实现共享内存,存储步骤1得到的用户需求结构体,保证各测试进程都可以读取到统一的用户需求;运行时可以获知其他测试进程运行状态,其唯一性可用来进行步骤3测试进程的负载均衡;到达运行时间后,可存储测试进程已发出的所有请求全部结束信号,保证数据统计精度。
步骤3.分配测试测试进程:创建测试进程,各测试进程读取步骤2存储在共享内存的,由步骤1生成的用户需求结构体,按照用户并发数,均衡负载到各测试进程,每50个并发用户创建一个测试进程(不足50亦启动一个新测试进程),每一组并发用户由一个测试进程进行控制。假设用户指定的并发数为N,则并发模块会启动的测试进程数P可由如下公式进行计算:
防止出现某个测试进程负载过重影响用户业务的准确性。
步骤4.分配测试测试线程:在步骤3.的测试进程中创建测试线程,保证各虚拟用户业务都拥有独立的测试线程,在独立的运行时间片和上下文中运行,保证计算机语言真实准确的诠释并发方法。测试线程中根据用户配置调用用户需模拟的业务行为。
步骤5.执行业务功能:本发明可提供时间和次数两种运行机制,在时间运行模式下,定时器到达运行时间后会将共享内存中的运行停止位置起;在次数运行模式下,每次业务请求完成后,都会更新共享内存运行数,运行次数等于用户配置次数时会将共享内存中的运行停止位置起。
各测试线程通过调用封装好的用户业务的库文件,实现对被测端的业务压力发送。通过开发不同的用户业务库文件,可以实现对用户业务的灵活支持,在库文件中共3个主要函数,初始化函数只调用一次,供运行前初始化好运行所需资源;在运行周期内业务功能函数循环运行,实现对虚拟用户的模拟;当检测到运行停止标志被置起后,测试线程退出时会执行结束函数,释放掉运行所需资源。
步骤6.实时展示存储的用户业务数据:分析存储的用户业务数据返回数据,供实时展示和统计分析。
步骤7.退出并发测试进程,到达运行结束条件后,置起共享内存的停止标志位,各测试进程中测试线程运行完毕后依次退出,每个测试线程退出时都更新共享内存退出测试线程数量,当退出测试线程数量等于运行测试线程数量时,才运行步骤8。保证了每个请求结果都被统计到,提高了准确性。
步骤8.统计存储的业务返回数据:统计成功、失败、响应时间、每秒点击率等指标的各项数据,为用户及开发人员提供准确详细的统计资料。
并发框架的负载均衡:
通过多测试进程可申请更多硬件资源的机制,采用多测试进程架构模拟虚拟用户,将虚拟用户均衡负载到各测试进程,每50个并发用户一创建一个测试进程(不足50亦启动一个新测试进程),每一组并发用户由一个测试进程进行控制。假设用户指定的并发数为N,则并发模块会启动的测试进程数P可由如下公式进行计算:
此方法防止出现某个测试进程负载过重影响用户业务的准确性。
多测试线程模拟用户业务请求:
多测试线程保证用户业务运行在独立上下文,避免产生干扰,确保并发模型精度。
执行业务功能:本发明可提供时间和次数两种运行机制,在时间运行模式下,定时器到达运行时间后会将共享内存中的运行停止位置起;在次数运行模式下,每次业务请求完成后,都会更新共享内存运行数,运行次数等于用户配置次数时会将共享内存中的运行停止位置起。
各测试线程通过调用封装好的用户业务的库文件,实现对被测端的业务压力发送。通过开发不同的用户业务库文件,可以实现对用户业务的灵活支持,在库文件中共3个主要函数,初始化函数只调用一次,供运行前初始化好运行所需资源;在运行周期内业务功能函数循环运行,实现对虚拟用户的模拟;当检测到运行停止标志被置起后,测试线程退出时会执行结束函数,释放掉运行所需资源。
退出机制:
运行时间或运行次数到达后,在退出时等待已创建的业务请求完成后,再退出测试线程,当测试线程退出时,会更新共享内存的退出次数变量,当退出次数等于创建数量时,才进行下一步数据统计,此方法保证了发送请求和服务器接收请求的一致,保证了每次请求都能得到结论,提高了数据结论的准确性。
附图说明
图1为本发明具体实施例1所述的一种软件性能测试模拟并发方法流程图;
图2为本发明具体实施例1所述的一种软件性能测试模拟并发方法中业务处理流程图;
图3为本发明具体实施例1所述的一种软件性能测试模拟并发***框图;
图4为本发明具体实施例1所述的一种软件性能测试模拟并发***中业务处理模块框图。
附图中,各标号所代表的部件列表如下:
1、读取转换模块,2、共享内存模块,3、请求接收模块,4、测试线程创建模块,5、业务处理模块,6、分析模块,51、模式判断模块,52、初始化模块,53、业务执行模块,54、次数记录模块,55、时间判断模块。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
如图1所示,为本发明具体实施例1所述的一种软件性能测试模拟并发方法流程图,具体包括以下步骤:
步骤1:读取转换模块读取用户输入的用户配置信息,转换为计算机可识别的用户需求结构体;
步骤2:共享内存模块存储用户需求结构体;
步骤3:请求接收模块接收至少一个并发用户的业务请求,根据并发用户的数量和用户需求结构体创建至少一个测试进程,使每个测试进程对应预设数量的并发用户,并建立映射,使所有测试进程映射用户需求结构体;
步骤4:测试线程创建模块在每个测试进程中创建多个测试线程,使每个并发用户对应一个测试线程;
步骤5:业务处理模块使每个测试线程单独处理一个用户的业务请求,记录每次业务返回数据,当运行次数达到预定次数或运行时间达到预设时间时,将共享内存模块置停止标志位;
步骤6:检测到共享内存模块置停止标志位,各测试进程中测试线程运行完毕后依次退出;
步骤7:分析模块存储业务返回数据,分析并统计各项业务相关数据,结束。
所述步骤3中每50个并发用户创建一个测试进程,并发用户不足50个的启动一个测试进程;并发模块启动的测试进程数P的数量由以下公式进行计算:
其中P表示测试进程数量,N表示并发用户数量。
所述步骤5具体包括以下步骤:
步骤5.1:业务处理模块使每个测试线程单独处理一个用户的业务请求,读取用户需求结构体;
步骤5.2:调用用户业务的库文件,初始化业务功能;
步骤5.3:执行用户请求的业务功能,并记录运行结果;
步骤5.4:判断运行模式为次数模式还是时间模式;如果是次数模式,进行步骤5.5;否则,进行步骤5.8;
步骤5.5:将运行次数保存到共享内存模块中,并实时更新共享内存模块中的运行次数;
步骤5.6:判断运行次数是否等于预先保存在共享内存模块中的预设次数,如果是,进行步骤5.7;否则,跳转至步骤5.3;
步骤5.7:结束业务功能,发送业务返回数据至分析模块,退出测试线程,并释放运行所需内存;
步骤5.8:判断运行时间是否等于预先保存在共享内存模块中的预设时间,如果是,进行步骤5.7;否则,跳转至步骤5.3。
所述用户配置信息包括测试***地址信息、用户数量信息、运行时间和数据库信息。
所述步骤5处理用户的业务请求的过程中,实时存储用户的业务返回数据,供实时展示和步骤7的统计分析。
所述步骤6中,每个测试线程运行完毕依次退出时,实时更新共享内存模块中的退出测试线程数量,当退出测试线程的数量等于开始运行测试线程的数量时,才进行步骤8。
如图3所示,为本发明具体实施例1所述的一种软件性能测试模拟并发***框图,包括读取转换模块1、共享内存模块2、请求接收模块3、测试线程创建模块4、业务处理模块5和分析模块6;
所述读取转换模块1用于读取用户输入的用户配置信息,转换为计算机可识别的用户需求结构体,并将所述用户需求结构体发送至共享内存模块2;
所述共享内存模块2接收并存储用户需求结构体;
所述请求接收模块3用于接收至少一个并发用户的业务请求,根据并发用户的数量和用户需求结构体创建至少一个测试进程,使每个测试进程对应预设数量的并发用户,并建立映射,使所有测试进程映射用户需求结构体;
所述测试线程创建模块4用于在每个测试进程中创建多个测试线程,使每个并发用户对应一个测试线程;
所述业务处理模块5用于使每个测试线程单独处理一个用户的业务请求,记录每次业务返回数据,当运行次数达到预定次数或运行时间达到预设时间时,将共享内存模块置停止标志位;业务处理模块5检测到共享内存模块置停止标志位,各测试进程中测试线程运行完毕后依次退出;
所述分析模块6用于存储业务返回数据,分析并统计各项业务相关数据。
所述请求接收模块3将每50个并发用户创建一个测试进程,并发用户不足50个的启动一个测试进程;并发模块启动的测试进程数P的数量由以下公式进行计算:
其中P表示测试进程数量,N表示并发用户数量。
如图4所示,所述业务处理模块5具体包括模式判断模块51、初始化模块52、业务执行模块53和次数记录模块54和时间判断模块55;
所述模式判断模块51用于读取用户需求结构体,判断运行模式为次数模式还是时间模式,当运行模式为次数模式时,业务执行模块53与次数记录模块54数据连接;当运行模式为时间模式时,业务执行模块53与时间判断模块55数据连接;
所述初始化模块52用于调用用户业务的库文件,初始化业务功能;
所述业务执行模块53用于执行用户请求的业务功能,并记录运行结果,并将运行结果发送至分析模块6;
所述次数记录模块54用于记录业务执行模块执行用户请求的业务功能的次数,并将运行次数保存到共享内存模块2中,并实时更新共享内存模块2中的运行次数;当运行次数等于预先保存在共享内存模块2中的预设次数时,结束业务功能,退出测试线程,并释放运行所需内存;否则,返回继续执行的请求到业务执行模块53;
所述时间判断模块55用于判断运行时间是否等于预先保存在共享内存模块2中的预设时间,如果是,结束业务功能,退出测试线程,并释放运行所需内存;否则,返回继续执行的请求到业务执行模块53。
所述用户配置信息包括测试***地址信息、用户数量信息、运行时间和数据库信息。
进一步,所述业务处理模块处理用户的业务请求的过程中,实施展示并存储用户的业务返回数据,供实时展示和统计分析。
所述业务处理模块5处理业务的过程中,每个测试线程运行完毕依次退出时,实时更新共享内存模块中的退出测试线程数量,当退出测试线程的数量等于开始运行测试线程的数量时,才发送指令使分析模块分析并统计各项业务相关数据。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种软件性能测试模拟并发方法,其特征在于,具体包括以下步骤:
步骤1:读取转换模块读取用户输入的用户配置信息,转换为计算机可识别的用户需求结构体;
步骤2:共享内存模块存储用户需求结构体;
步骤3:请求接收模块接收至少一个并发用户的业务请求,根据并发用户的数量和用户需求结构体创建至少一个测试进程,使每个测试进程对应预设数量的并发用户,并建立映射,使所有测试进程映射用户需求结构体;
步骤4:测试线程创建模块在每个测试进程中创建多个测试线程,使每个并发用户对应一个测试线程;
步骤5:业务处理模块使每个测试线程单独处理一个用户的业务请求,记录每次业务返回数据,当运行次数达到预定次数或运行时间达到预设时间时,将共享内存模块置停止标志位;
步骤6:检测到共享内存模块置停止标志位,各测试进程中测试线程运行完毕后依次退出;
步骤7:分析模块存储业务返回数据,分析并统计各项业务相关数据,结束。
3.根据权利要求1或2所述的一种软件性能测试模拟并发方法,其特征在于,所述步骤5具体包括以下步骤:
步骤5.1:业务处理模块使每个测试线程单独处理一个用户的业务请求,读取用户需求结构体;
步骤5.2:调用用户业务的库文件,初始化业务功能;
步骤5.3:执行用户请求的业务功能,并记录运行结果;
步骤5.4:判断运行模式为次数模式还是时间模式;如果是次数模式,进行步骤5.5;否则,进行步骤5.8;
步骤5.5:将运行次数保存到共享内存模块中,并实时更新共享内存模块中的运行次数;
步骤5.6:判断运行次数是否等于预先保存在共享内存模块中的预设次数,如果是,进行步骤5.7;否则,跳转至步骤5.3;
步骤5.7:结束业务功能,发送业务返回数据至分析模块,退出测试线程,并释放运行所需内存;
步骤5.8:判断运行时间是否等于预先保存在共享内存模块中的预设时间,如果是,进行步骤5.7;否则,跳转至步骤5.3。
4.根据权利要求3所述的一种软件性能测试模拟并发方法,其特征在于,所述用户配置信息包括测试***地址信息、用户数量信息、运行时间和数据库信息。
5.根据权利要求4所述的一种软件性能测试模拟并发方法,其特征在于,所述步骤5处理用户的业务请求的过程中,实时存储用户的业务返回数据,供实时展示和步骤7的统计分析。
6.根据权利要求5所述的一种软件性能测试模拟并发方法,其特征在于,所述步骤6中,每个测试线程运行完毕依次退出时,实时更新共享内存模块中的退出测试线程数量,当退出测试线程的数量等于开始运行测试线程的数量时,才进行步骤8。
7.一种软件性能测试模拟并发***,包括读取转换模块、共享内存模块、请求接收模块、测试线程创建模块、业务处理模块和分析模块;
所述读取转换模块用于读取用户输入的用户配置信息,转换为计算机可识别的用户需求结构体,并将所述用户需求结构体发送至共享内存模块;
所述共享内存模块接收并存储用户需求结构体;
所述请求接收模块用于接收至少一个并发用户的业务请求,根据并发用户的数量和用户需求结构体创建至少一个测试进程,使每个测试进程对应预设数量的并发用户,并建立映射,使所有测试进程映射用户需求结构体;
所述测试线程创建模块用于在每个测试进程中创建多个测试线程,使每个并发用户对应一个测试线程;
所述业务处理模块用于使每个测试线程单独处理一个用户的业务请求,记录每次业务返回数据,当运行次数达到预定次数或运行时间达到预设时间时,将共享内存模块置停止标志位;业务处理模块检测到共享内存模块置停止标志位,各测试进程中测试线程运行完毕后依次退出;
所述分析模块用于存储业务返回数据,分析并统计各项业务相关数据。
9.根据权利要求7或8所述的一种软件性能测试模拟并发方法,其特征在于,所述业务处理模块具体包括模式判断模块、初始化模块、业务执行模块和次数记录模块和时间判断模块;
所述模式判断模块用于读取用户需求结构体,判断运行模式为次数模式还是时间模式,当运行模式为次数模式时,业务执行模块与次数记录模块数据连接;当运行模式为时间模式时,业务执行模块与时间判断模块数据连接;
所述初始化模块用于调用用户业务的库文件,初始化业务功能;
所述业务执行模块用于执行用户请求的业务功能,并记录运行结果,并将运行结果发送至分析模块;
所述次数记录模块用于记录业务执行模块执行用户请求的业务功能的次数,并将运行次数保存到共享内存模块中,并实时更新共享内存模块中的运行次数;当运行次数等于预先保存在共享内存模块中的预设次数时,结束业务功能,退出测试线程,并释放运行所需内存;否则,返回继续执行的请求到业务执行模块;
所述时间判断模块用于判断运行时间是否等于预先保存在共享内存模块中的预设时间,如果是,结束业务功能,退出测试线程,并释放运行所需内存;否则,返回继续执行的请求到业务执行模块。
10.根据权利要求9所述的一种软件性能测试模拟并发方法,其特征在于,所述用户配置信息包括测试***地址信息、用户数量信息、运行时间和数据库信息;
所述业务处理模块处理用户的业务请求的过程中,实施展示并存储用户的业务返回数据,供实时展示和统计分析;
所述业务处理模块处理业务的过程中,每个测试线程运行完毕依次退出时,实时更新共享内存模块中的退出测试线程数量,当退出测试线程的数量等于开始运行测试线程的数量时,才发送指令使分析模块分析并统计各项业务相关数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310393147.7A CN103544103A (zh) | 2013-09-02 | 2013-09-02 | 一种软件性能测试模拟并发方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310393147.7A CN103544103A (zh) | 2013-09-02 | 2013-09-02 | 一种软件性能测试模拟并发方法及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103544103A true CN103544103A (zh) | 2014-01-29 |
Family
ID=49967575
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310393147.7A Pending CN103544103A (zh) | 2013-09-02 | 2013-09-02 | 一种软件性能测试模拟并发方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103544103A (zh) |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104978261A (zh) * | 2014-04-03 | 2015-10-14 | 腾讯科技(深圳)有限公司 | 应用程序的测试方法、装置及*** |
CN105224450A (zh) * | 2014-07-02 | 2016-01-06 | 阿里巴巴集团控股有限公司 | 并发测试方法及装置 |
CN105607991A (zh) * | 2014-11-20 | 2016-05-25 | 阿里巴巴集团控股有限公司 | 一种基于异步线程的测试方法和装置 |
CN105607997A (zh) * | 2015-11-26 | 2016-05-25 | 珠海多玩信息技术有限公司 | 一种软件产品后台服务测试方法、装置及*** |
CN106201881A (zh) * | 2016-07-12 | 2016-12-07 | 桂林电子科技大学 | 一种基于asp的csp并发***调试方法 |
CN106502887A (zh) * | 2016-10-13 | 2017-03-15 | 郑州云海信息技术有限公司 | 一种稳定性测试方法、测试控制器及*** |
CN107666416A (zh) * | 2017-09-07 | 2018-02-06 | 郑州云海信息技术有限公司 | 一种iperf测试结果判定*** |
CN108108295A (zh) * | 2018-01-02 | 2018-06-01 | 天津同阳科技发展有限公司 | 数据接收程序压力测试方法 |
CN108279973A (zh) * | 2017-01-05 | 2018-07-13 | 阿里巴巴集团控股有限公司 | 一种信息统计方法、装置及电子设备 |
CN108304286A (zh) * | 2018-01-17 | 2018-07-20 | 杭州当虹科技有限公司 | 一种对转码服务器并发性能进行自动化测试的***及方法 |
CN108446210A (zh) * | 2018-02-07 | 2018-08-24 | 平安科技(深圳)有限公司 | ***性能的度量方法、存储介质和服务器 |
CN108512715A (zh) * | 2017-02-28 | 2018-09-07 | 菜鸟智能物流控股有限公司 | 一种业务链路的负载压力测试方法和相关装置 |
CN109828616A (zh) * | 2019-01-21 | 2019-05-31 | 厦门大学 | 一种rv减速器的零部件选配方法及*** |
CN110275806A (zh) * | 2019-06-20 | 2019-09-24 | 深圳忆联信息***有限公司 | 基于Python的SSD控制器多模块并发测试方法和装置 |
CN110661671A (zh) * | 2018-06-28 | 2020-01-07 | 中兴通讯股份有限公司 | 业务检测方法、装置及设备、存储介质 |
CN111026632A (zh) * | 2018-10-10 | 2020-04-17 | 武汉斗鱼网络科技有限公司 | 一种性能测试方法、存储介质、电子设备及*** |
CN111475394A (zh) * | 2019-01-24 | 2020-07-31 | 阿里巴巴集团控股有限公司 | 一种应用测试方法及装置 |
CN112346849A (zh) * | 2019-08-09 | 2021-02-09 | 北京国双科技有限公司 | 一种配置cpu的方法及装置 |
CN114554532A (zh) * | 2022-03-09 | 2022-05-27 | 武汉烽火技术服务有限公司 | 5g设备高并发仿真方法与装置 |
CN116594884A (zh) * | 2023-05-16 | 2023-08-15 | 上海安般信息科技有限公司 | 一种基于使用并发方式的模糊测试方法及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101576844A (zh) * | 2008-05-09 | 2009-11-11 | 北京世纪拓远软件科技发展有限公司 | 软件***性能测试方法和*** |
CN102035697A (zh) * | 2010-12-31 | 2011-04-27 | 中国电子科技集团公司第十五研究所 | 一种文件***的并发连接数性能测试***和方法 |
CN102368721A (zh) * | 2011-11-25 | 2012-03-07 | 中国科学技术大学 | 一种ms集群***的性能测试***及测试方法 |
CN102831053A (zh) * | 2011-06-17 | 2012-12-19 | 阿里巴巴集团控股有限公司 | 一种测试执行的调度方法及装置 |
US8347267B2 (en) * | 2001-07-27 | 2013-01-01 | Smartesoft, Inc. | Automated software testing and validation system |
CN102955721A (zh) * | 2011-08-16 | 2013-03-06 | 阿里巴巴集团控股有限公司 | 一种测试用的压力生成方法及装置 |
CN103067214A (zh) * | 2011-10-19 | 2013-04-24 | 阿里巴巴集团控股有限公司 | 用于测试网站性能的方法、客户端、服务器和*** |
-
2013
- 2013-09-02 CN CN201310393147.7A patent/CN103544103A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8347267B2 (en) * | 2001-07-27 | 2013-01-01 | Smartesoft, Inc. | Automated software testing and validation system |
CN101576844A (zh) * | 2008-05-09 | 2009-11-11 | 北京世纪拓远软件科技发展有限公司 | 软件***性能测试方法和*** |
CN102035697A (zh) * | 2010-12-31 | 2011-04-27 | 中国电子科技集团公司第十五研究所 | 一种文件***的并发连接数性能测试***和方法 |
CN102831053A (zh) * | 2011-06-17 | 2012-12-19 | 阿里巴巴集团控股有限公司 | 一种测试执行的调度方法及装置 |
CN102955721A (zh) * | 2011-08-16 | 2013-03-06 | 阿里巴巴集团控股有限公司 | 一种测试用的压力生成方法及装置 |
CN103067214A (zh) * | 2011-10-19 | 2013-04-24 | 阿里巴巴集团控股有限公司 | 用于测试网站性能的方法、客户端、服务器和*** |
CN102368721A (zh) * | 2011-11-25 | 2012-03-07 | 中国科学技术大学 | 一种ms集群***的性能测试***及测试方法 |
Cited By (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104978261A (zh) * | 2014-04-03 | 2015-10-14 | 腾讯科技(深圳)有限公司 | 应用程序的测试方法、装置及*** |
CN105224450A (zh) * | 2014-07-02 | 2016-01-06 | 阿里巴巴集团控股有限公司 | 并发测试方法及装置 |
CN105607991A (zh) * | 2014-11-20 | 2016-05-25 | 阿里巴巴集团控股有限公司 | 一种基于异步线程的测试方法和装置 |
CN105607997A (zh) * | 2015-11-26 | 2016-05-25 | 珠海多玩信息技术有限公司 | 一种软件产品后台服务测试方法、装置及*** |
CN106201881A (zh) * | 2016-07-12 | 2016-12-07 | 桂林电子科技大学 | 一种基于asp的csp并发***调试方法 |
CN106201881B (zh) * | 2016-07-12 | 2019-02-01 | 桂林电子科技大学 | 一种基于asp的csp并发***调试方法 |
CN106502887A (zh) * | 2016-10-13 | 2017-03-15 | 郑州云海信息技术有限公司 | 一种稳定性测试方法、测试控制器及*** |
CN108279973B (zh) * | 2017-01-05 | 2022-05-06 | 阿里巴巴集团控股有限公司 | 一种信息统计方法、装置及电子设备 |
CN108279973A (zh) * | 2017-01-05 | 2018-07-13 | 阿里巴巴集团控股有限公司 | 一种信息统计方法、装置及电子设备 |
CN108512715A (zh) * | 2017-02-28 | 2018-09-07 | 菜鸟智能物流控股有限公司 | 一种业务链路的负载压力测试方法和相关装置 |
CN107666416A (zh) * | 2017-09-07 | 2018-02-06 | 郑州云海信息技术有限公司 | 一种iperf测试结果判定*** |
CN108108295A (zh) * | 2018-01-02 | 2018-06-01 | 天津同阳科技发展有限公司 | 数据接收程序压力测试方法 |
CN108304286A (zh) * | 2018-01-17 | 2018-07-20 | 杭州当虹科技有限公司 | 一种对转码服务器并发性能进行自动化测试的***及方法 |
CN108446210B (zh) * | 2018-02-07 | 2021-04-30 | 平安科技(深圳)有限公司 | ***性能的度量方法、存储介质和服务器 |
CN108446210A (zh) * | 2018-02-07 | 2018-08-24 | 平安科技(深圳)有限公司 | ***性能的度量方法、存储介质和服务器 |
CN110661671A (zh) * | 2018-06-28 | 2020-01-07 | 中兴通讯股份有限公司 | 业务检测方法、装置及设备、存储介质 |
CN111026632A (zh) * | 2018-10-10 | 2020-04-17 | 武汉斗鱼网络科技有限公司 | 一种性能测试方法、存储介质、电子设备及*** |
CN109828616A (zh) * | 2019-01-21 | 2019-05-31 | 厦门大学 | 一种rv减速器的零部件选配方法及*** |
CN111475394A (zh) * | 2019-01-24 | 2020-07-31 | 阿里巴巴集团控股有限公司 | 一种应用测试方法及装置 |
CN111475394B (zh) * | 2019-01-24 | 2023-06-20 | 阿里巴巴集团控股有限公司 | 一种应用测试方法及装置 |
CN110275806A (zh) * | 2019-06-20 | 2019-09-24 | 深圳忆联信息***有限公司 | 基于Python的SSD控制器多模块并发测试方法和装置 |
CN112346849A (zh) * | 2019-08-09 | 2021-02-09 | 北京国双科技有限公司 | 一种配置cpu的方法及装置 |
CN114554532A (zh) * | 2022-03-09 | 2022-05-27 | 武汉烽火技术服务有限公司 | 5g设备高并发仿真方法与装置 |
CN114554532B (zh) * | 2022-03-09 | 2023-07-18 | 武汉烽火技术服务有限公司 | 5g设备高并发仿真方法与装置 |
CN116594884A (zh) * | 2023-05-16 | 2023-08-15 | 上海安般信息科技有限公司 | 一种基于使用并发方式的模糊测试方法及装置 |
CN116594884B (zh) * | 2023-05-16 | 2023-10-27 | 上海安般信息科技有限公司 | 一种基于使用并发方式的模糊测试方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103544103A (zh) | 一种软件性能测试模拟并发方法及*** | |
Abreu et al. | A comparative analysis of simulators for the cloud to fog continuum | |
JP5926864B2 (ja) | クラウドコンピューティングシステムをコンフィギュアするためのシステム及び方法 | |
Silva et al. | Cloudbench: Experiment automation for cloud environments | |
Wang et al. | Using realistic simulation for performance analysis of mapreduce setups | |
CN103544102B (zh) | 一种软件性能测试模拟方法及装置 | |
US10360050B2 (en) | Simulation of high performance computing (HPC) application environment using virtual nodes | |
US9229838B2 (en) | Modeling and evaluating application performance in a new environment | |
CN103235756A (zh) | 一种面向嵌入式***分区应用程序软件的仿真测试方法 | |
JP2015530647A (ja) | クラウドコンピューティングシステムをチューニングするためのシステム及び方法 | |
CN104978261A (zh) | 应用程序的测试方法、装置及*** | |
CN103955373A (zh) | 一种sdn应用集成开发环境的设计方法 | |
Galuba et al. | ProtoPeer: a P2P toolkit bridging the gap between simulation and live deployement | |
Lin et al. | ABS-YARN: A formal framework for modeling Hadoop YARN clusters | |
CN107797914A (zh) | 代码处理方法、装置及代码发布*** | |
CN108052444A (zh) | 一种用于移动应用的性能测试的方法与装置 | |
Di Sanzo et al. | A flexible framework for accurate simulation of cloud in-memory data stores | |
CN109947535A (zh) | 面向虚拟机的故障注入套件 | |
KR102376477B1 (ko) | 데이터 교환 메커니즘을 포함하는 전자 시스템 및 그것의 동작 방법 | |
Raith et al. | An end-to-end framework for benchmarking edge-cloud cluster management techniques | |
CN102331961B (zh) | 并行模拟多个处理器的方法及***、调度器 | |
CN101799767A (zh) | 一种利用模拟器多种运行模式反复切换进行并行模拟的方法 | |
Kerola et al. | Monit: A performance monitoring tool for parallel and pseudo-parallel programs | |
Augusto et al. | RETORCH: Resource-aware end-to-end test orchestration | |
Williamson | Discrete event simulation in the Mobius modeling framework |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140129 |