一种软件性能测试模拟并发方法及系统的制作方法

文档序号:6509953阅读:213来源:国知局
一种软件性能测试模拟并发方法及系统的制作方法
【专利摘要】本发明涉及一种软件性能测试模拟并发方法,具体包括以下步骤:步骤1:读取用户输入的用户配置信息;步骤2:存储用户需求结构体到共享内存模块,建立映射;步骤3:接收并发用户的业务请求,根据并发用户的数量和用户需求结构体创建至少一个测试进程;步骤4:创建测试线程;步骤5:每个测试线程处理一个用户的业务请求,达到退出条件,测试线程退出;步骤6:运行结束,各测试进程中测试线程运行完毕后依次退出;步骤7:存储分析并统计各项业务相关数据,结束。本发明诠释了如何模拟用户并发,防止发生瓶颈,达到利用少量的硬件资源模拟高并发场景;保证并发稳定性;实现对不同用户业务的支持;为定位问题和缩短开发周期提供帮助。
【专利说明】一种软件性能测试模拟并发方法及系统
【技术领域】
[0001]本发明涉及一种软件性能测试模拟并发方法及系统,属于计算机【技术领域】。
【背景技术】
[0002]对于软件产品性能评测并发方法,其中经典的场景为:并发的用户请求场景,例如5000个用户同时进行提交电话缴费服务。其中如何使用尽量少的计算机,平稳、准确的模拟用户操作行为成为行业难题。
[0003]计算机硬件配置越来越高,可供程序分配的资源越来越多,而测试进程是可分配硬件资源的最小单位,多测试进程可尽量多的分配到硬件资源,模拟高用户并发场景下多测试进程具有技术优势。
[0004]操作系统在内存保护模式下运行,测试进程拥有独立的逻辑内存空间,多测试进程互相之间不能直接访问。而现存的免费性能测试工具都使用单测试进程架构。无法充分申请硬件资源,单机模拟用户的并发数容易达到上限,且高并发时CPU时间片分配不足,运行精度低。
[0005]此发明采用多测试进程方式,并且解决了测试进程之间通讯的问题,用来模拟用户并发行为。与之类似的有Windows平台的LoadRunner、WebLoad。

【发明内容】

[0006]本发明所要解决的技术问题是,针对现有技术中商业软件:LoadRunner、WebLoad,但其都属于商业软件,代码及架构属于商业秘密,不公开,收费昂贵,且不能在Linux系统下运行;开源软件:类似于HttpLoad仅采用单测试进程单测试线程架构属于假并发,其模型简单,准确率低,无法保证用户业务的准确发送的不足,提供一种诠释了计算机程序如何实现模拟用户并发的软件性能测试模拟并发方法。
[0007]本发明解决上述技术问题的技术方案如下:一种软件性能测试模拟并发方法,具体包括以下步骤:
[0008]步骤1:读取转换模块读取用户输入的用户配置信息,转换为计算机可识别的用户需求结构体;
[0009]步骤2:共享内存模块存储用户需求结构体;
[0010]步骤3:请求接收模块接收至少一个并发用户的业务请求,根据并发用户的数量和用户需求结构体创建至少一个测试进程,使每个测试进程对应预设数量的并发用户,并建立映射,使所有测试进程映射用户需求结构体;
[0011]步骤4:测试线程创建模块在每个测试进程中创建多个测试线程,使每个并发用户对应一个测试线程;
[0012]步骤5:业务处理模块使每个测试线程单独处理一个用户的业务请求,记录每次业务返回数据,当运行次数达到预定次数或运行时间达到预设时间时,将共享内存模块置停止标志位;[0013]步骤6:检测到共享内存模块置停止标志位,各测试进程中测试线程运行完毕后依次退出;
[0014]步骤7:分析模块存储业务返回数据,分析并统计各项业务相关数据,结束。
[0015]本发明的有益效果是:并发框架与LoadRunner在稳定性和准确性方面相当;使用了多测试进程多测试线程架构,合理分配资源,确保每个测试进程压力负载合理,避免了某个测试进程出现失效,对整体负载测试结论的影响;多测试进程架构保证了负载生成器可以申请到足够的系统资源,避免多测试线程竞争造成的资源死锁对并发架构的影响;多测试线程架构保证了每个用户业务都运行在独立的上下文中,避免了 HTTPL0AD架构中用户业务之间响应时间彼此的干扰;在接收到停止发送命令后,框架不是简单的放弃正在发送中的用户业务请求,而是等待正在发送中的业务请求全部返回,统计完成后,再退出并发框架,提高了数据统计精度。
[0016]在上述技术方案的基础上,本发明还可以做如下改进。
[0017]进一步,所述步骤3中每50个并发用户创建一个测试进程,并发用户不足50个的启动一个测试进程;并发模块启动的测试进程数P的数量由以下公式进行计算:
[0018]
【权利要求】
1.一种软件性能测试模拟并发方法,其特征在于,具体包括以下步骤: 步骤1:读取转换模块读取用户输入的用户配置信息,转换为计算机可识别的用户需求结构体; 步骤2:共享内存模块存储用户需求结构体; 步骤3:请求接收模块接收至少一个并发用户的业务请求,根据并发用户的数量和用户需求结构体创建至少一个测试进程,使每个测试进程对应预设数量的并发用户,并建立映射,使所有测试进程映射用户需求结构体; 步骤4:测试线程创建模块在每个测试进程中创建多个测试线程,使每个并发用户对应一个测试线程; 步骤5:业务处理模块使每个测试线程单独处理一个用户的业务请求,记录每次业务返回数据,当运行次数达到预定次数或运行时间达到预设时间时,将共享内存模块置停止标志位; 步骤6:检测到共享内存模块置停止标志位,各测试进程中测试线程运行完毕后依次退出; 步骤7:分析模块存储业务返回数据,分析并统计各项业务相关数据,结束。
2.根据权利要求1所述的一种软件性能测试模拟并发方法,其特征在于,所述步骤3中每50个并发用户创建一个测试进程,并发用户不足50个的启动一个测试进程;并发模块启动的测试进程数P的数量由以下公式进行计算:
3.根据权利要求1或2所述的一种软件性能测试模拟并发方法,其特征在于,所述步骤5具体包括以下步骤: 步骤5.1:业务处理模块使每个测试线程单独处理一个用户的业务请求,读取用户需求结构体; 步骤5.2:调用用户业务的库文件,初始化业务功能; 步骤5.3:执行用户请求的业务功能,并记录运行结果; 步骤5.4:判断运行模式为次数模式还是时间模式;如果是次数模式,进行步骤5.5 ;否贝U,进行步骤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.一种软件性能测试模拟并发系统,包括读取转换模块、共享内存模块、请求接收模块、测试线程创建模块、业务处理模块和分析模块; 所述读取转换模块用于读取用户输入的用户配置信息,转换为计算机可识别的用户需求结构体,并将所述用户需求结构体发送至共享内存模块; 所述共享内存模块接收并存储用户需求结构体; 所述请求接收模块用于接收至少一个并发用户的业务请求,根据并发用户的数量和用户需求结构体创建至少一个测试进程,使每个测试进程对应预设数量的并发用户,并建立映射,使所有测试进程映射用户需求结构体; 所述测试线程创建模块用于在每个测试进程中创建多个测试线程,使每个并发用户对应一个测试线程; 所述业务处理模块用于使每个测试线程单独处理一个用户的业务请求,记录每次业务返回数据,当运行次数达到预 定次数或运行时间达到预设时间时,将共享内存模块置停止标志位;业务处理模块检测到共享内存模块置停止标志位,各测试进程中测试线程运行完毕后依次退出; 所述分析模块用于存储业务返回数据,分析并统计各项业务相关数据。
8.根据权利要求7所述的一种软件性能测试模拟并发系统,其特征在于,所述请求接收模块将每50个并发用户创建一个测试进程,并发用户不足50个的启动一个测试进程;并发模块启动的测试进程数P的数量由以下公式进行计算:
I N/5O, N能被50整除
P = IrNl'

IlSO + ^ N不能被SO整_: 其中P表示测试进程数量,N表示并发用户数量。
9.根据权利要求7或8所述的一种软件性能测试模拟并发方法,其特征在于,所述业务处理模块具体包括模式判断模块、初始化模块、业务执行模块和次数记录模块和时间判断模块; 所述模式判断模块用于读取用户需求结构体,判断运行模式为次数模式还是时间模式,当运行模式为次数模式时,业务执行模块与次数记录模块数据连接;当运行模式为时间模式时,业务执行模块与时间判断模块数据连接; 所述初始化模块用于调用用户业务的库文件,初始化业务功能; 所述业务执行模块用于执行用户请求的业务功能,并记录运行结果,并将运行结果发送至分析模块; 所述次数记录模块用于记录业务执行模块执行用户请求的业务功能的次数,并将运行次数保存到共享内存模块中,并实时更新共享内存模块中的运行次数;当运行次数等于预先保存在共享内存模块中的预设次数时,结束业务功能,退出测试线程,并释放运行所需内存;否则,返回继续执行的请求到业务执行模块; 所述时间判断模块用于判断运行时间是否等于预先保存在共享内存模块中的预设时间,如果是,结束业务功能,退出测试线程,并释放运行所需内存;否则,返回继续执行的请求到业务执行模块。
10.根据权利要求9所述的一种软件性能测试模拟并发方法,其特征在于,所述用户配置信息包括测试系统地址信息、用户数量信息、运行时间和数据库信息; 所述业务处理模块处理用户的业务请求的过程中,实施展示并存储用户的业务返回数据,供实时展示和统计分析; 所述业务处理模块处理业务的过程中,每个测试线程运行完毕依次退出时,实时更新共享内存模块中的退出测试线程数量,当退出测试线程的数量等于开始运行测试线程的数量时,才发送指令使分析模块分析并统计各项业务相关数据。
【文档编号】G06F11/36GK103544103SQ201310393147
【公开日】2014年1月29日 申请日期:2013年9月2日 优先权日:2013年9月2日
【发明者】衣安平, 杨光宇, 孙一铭, 刘增, 刘初阳, 殷炳玉 申请人:烟台中科网络技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1