联系我们

 

硕博咨询:82274534

 

专本咨询:84468591

 

微信咨询:essaykey

TEL:15012858052(深圳) 

 

信箱: 82274534@qq.com 

 

请以前的客户主动联系QQ和信箱以方便继续为您服务。

 

代写毕业论文网介绍

本网站是由硕士、博士和高校教师组成的专业代写团队所创办的平台。主要为在校本科生、专科生、硕士生、在 职研究生、单位公司人员、留学生等提供各种专业代写毕业论文服务的网站。提供的写作服务包括:代写MBA论文、代写MPA论文、代写EMBA论文、代写硕 士论文、代写本科毕业论文、代写专科毕业论文、代写研究生论文、代写留学生毕业论文、代写英语论文等等。作为八年的品牌,已经为几万名毕业生服务,让他们 顺利通过了毕业论文的考核。本站负责提纲、开题报告、文献综述以及毕业论文的写作,并提供不限次数的修改服务。所代写MBA论文价格、代写MPA论文费 用、代写EMBA论文价钱都是最实惠的,欢迎咨询!

 

最新加入代写论文写手

YM,机电教授,YMT,日本千叶博士,教授
海豚,英国留学管理博士学历
LB,经济管理博士英国交流
maomao,经济硕士管理博士
陈先生,湖南计算机博士,7年教育经验。硕士研究生导师。
BJX,上海交大计算机博士,发表40多篇核心学术论文,
电子计算机类博士,3人组合
LLBZY,5人,工程,园林,农业生态中科院博士,参与国家重点项目研究
浙大,管理硕士,英语专业硕士
y,男,法学硕士
中国XX大学,会计硕士,英语硕士,管理硕士 各一名
熊,浙江,管理学博士,经济学硕士,擅长管理,金融、宏观经济、区域经济
英语专业硕士,英语,翻译论文
11,硕士,自由撰稿,编辑,经济、法律、品牌
文,硕士,擅长企业管理,行政管理, MBA论文
兰大的硕士,西哲,社科
刘先生,擅长写作金属材料领域的专业论文
澳大利亚摩尔本皇家理工大学的MASTER
医学主治医师,某医学杂志编辑
剑,38,教育学硕士
某核心医学编辑
某中学杂志编辑
R,管理财会硕士,研究员
武汉工程博士,男,土木,结构,水电道路工程等
土木工程硕士,男,35岁,擅长工科土木工程,房建,园林,市政论文
左先生,武大MBA,擅长经济,管理,商业类论文
陈先生,大学本科副教授,英语专业硕士
陆先生,中科院基础医学研究生
杨先生,27岁, 武汉大学硕士,营销管理专业,武汉社科研究员,中国策划研究院协会会员,管理顾问公司总监。擅长经济管理、市场调查、行业研究报告。服务客户有中国银行,中银保险,香港铜锣湾百货等著名企业。
林先生,28,信息专业硕士,计算机研究室主任,国家高级电子商务培训讲师。
周先生,31,国内著名DVD品牌技术总监,重点高校讲师,期间指导学生获得全国电子大赛二等奖,指导老师二等奖。擅长电子类论文。
某艺术工作室,硕士学历,擅长现代艺术美术理论研究及创作。
刘先生,某著名医学院硕士研究生,某著名医学院博士研究生,专业为妇产科护理,以多产,高速,高质量著称。
kerry,北京某著名大学教师,擅长教育类论文。

首页 > 代写论文 > 计算机论文 >

中间件测试中LoadRunner的应用

时间:2019-09-27

 

  1 引言
  
  中间件是一种独立的系统软件或者服务程序,位于操作系统、网络和数据库之上而在应用软件之下。分布式应用软件可以借助中间件在不同的技术之间交换资源,中间件多数应用于C/S(Client/Server)、B/S(Browser/Server)以及无服务器节点的三类分布式软件之中。
  
  LoadRunner是一种预测系统行为和性能的负载测试工具,通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题。
  
  在分布式系统测试中,LoadRunner只适用于没有中间件的B/S软件,对于有中间件的B/S软件,在工具使用时一般将中间件视作服务器程序的一部分,测试结果是对服务器和中间件检测的共同结果而不单指中间件。而C/S软件一般不使用Load Runner进行测试,因为其操作很难被录制完整,目前主要有两种方法测试C/S类软件,一种方法是靠功能测试的方法来检验软件的性能、强度等核心指标,比如同时加载运行多个客户端程序,另一种方法是在调用中间件的代码前后插桩获取时间,通过多次调用取均值等方式进行考量,但是这两种方法都很难说明中间件在多用户并发下的处理能力,掩盖了中间件的真实效能,只能是一个粗略甚至是错误的评价(比如由于其他原因造成10毫秒内数据不能被显示)。
  
  本文通过长期的资料查询和自动化测试工具使用研究,立足现有工具LoadRunner的基础上,采用测试+开发的模式,总结出一套单独测试中间件类软件的方法,可适用于B/S、C/S以及无服务器模式下中间件的性能、强度等测试。
  
  2 中间件测试中的分析实践
  
  2.1 中间件的简介
  
  中间件是普遍是软件系统的核心组成部分,基本都要求高性能、实时、低延迟,本次测试的中间件软件结构如图1所示:
  
  中间件采用C++语言开发,底层采用实时CORBA作为通信基础,是一个标准动态链接库(DLL)。该软件支持对象、消息和数据流三种模式的数据传输,能够实现无服务器节点、分布式运行,并能够监视运行状态。
  


  2.2 LoadRunner工作原理
  
  LoadRunner工具主要分为三个部分。
  
  1) Vuser生成器
  
  Vuser生成器用于录制测试操作,生成一个虚拟用户,虚拟用户可以模拟真实用户的各类操作,可以参数化设置,从而达到利用不同数据测试应用程序的目的,录制主要适用于Web类的软件。
  
  2) Controller控制器
  
  Controller控制器属于LoadRunner上的核心部件,可以利用Vuser生成器虚拟的用户,建立一个多用户的测试方案,可以利用各类参数进行并发设置,从而达到持续且循环的负载测试。
  
  同时,Controller可以实时监控应用软件的运行性能。
  
  3) Analyzer分析器
  
  Analyzer分析器主要用于获取并发测试后在Vuser生成器中设定的参数值,以及应用软件的运行性能分析。
  
  简而言之,LoadRunner通过Vuser录制一个用户的操作,Controller利用参数化,模拟多个不同的用户同时并发操作,整个软件的多个指标可以在Analyzer中量化得出。
  
  2.3 测试方法的分析与设计
  
  从2.1中得知,中间件是一种无服务器节点的中间件,整个软件系统的运行模式如图2所示。
  
  各类平台可以通过中间件加入或者退出系统。按照中间件的某项要求,整个系统中至少支持255个以上的中间件可以同时运行,常规测试方法无法应对如此大的并发要求检查,而LoadRunner无法录制这类无服务器节点软件的各类操作,第一步就不可行。但是由于其Controller在并发控制上的强大功能,只有寻找一种方法,既能避开C/S软件行为不好录制模拟的缺点,又能使用其大规模并发控制的优势,这是整个测试方法的关键。如果可行,则能够单独模拟中间件的各种行为,并能将其视作一个Vuser,进而纳入LoadRunner的测试方式。


  
  经过分析,LoadRunner可以采用标准C语言的方式加载DLL文件,与实装设备软件调用中间件的方式没有差异,但是LoadRunner无法模拟中间件中回调函数的使用(C语言不支持回调函数),该函数是中间件的核心功能,无法绕开,经过多次实践,单独开发了一个测试辅助程序,利用中间件借口,替代其回调功能,那么就可以采用直接调用中间件函数的方式完整实现其各种功能,从而解决其无法录制的问题,代码见图3.
  
  在Controller模拟多个中间件时,在调用中间件的过程中,发现有内存冲突的现象,并不符合实际运行环境中的一个台位一个中间件的使用情况,因此,通过设置使每个成员能够获取自己独立的进程,让中间件成员之间不会产生内存资源冲突,并通过并发集合点等功能的设置,达到检查各类性能指标的目的。到此,整个测试方法设计完成。
  
  2.4 测试结果的验证
  
  通过将中间件以及辅助程序封装成一个Vuser,利用Controller并发调用,设计各类测试用例验证中间件性能、强度等指标能力,从LoadRunner的实际表现来看,至少有以下几类软件缺陷是其它测试方法无法或者很难验证的(验证的代价过大):
  
  1) 最大节点数检验
  
  中间件要求同一网络中至少支持255个中间件同时运行,在强度测试中发现软件只能支持到52个中间件的加入。后经开发人员确认为成员管理模块设计分配的内存单位计算错误所致,而在通常使用中,一般只有十几个平台加入,该问题几乎不会被发现。
  
  2) 信息处理能力的检验
  
  中间件有多个处理能力指标,比如对象间交互事件发布/订购的帧周期≤1s(可靠传输),在性能测试中发现,在多个成员并发发送消息时,帧周期虽然满足要求,但是数据有丢失或者阻塞,这种问题在单独的代码插桩中很难被发现。
  
  在实际中,中间件主要是协调上层软件的操作,一个操作一个消息,很难模拟出大规模用户并发消息时的场景,但是Controller可以持续不断进行压力负载测试,从而发现其在强度测试上的问题。
  
  3) 软件算法正确性的检验
  
  由于中间件是被LoadRunner封装成一个Vuser,而又保留其DLL的特性,因此可以通过一些极端方式检验某些算法的正确性,比如测试时间同步函数。要求时间同步精度≤10ms,经过测试发现其精度常在10ms左右浮动,后做了1000次、2000次的时间同步,发现其数据逐步发散,显示其同步算法有问题,如图4所示,而这类缺陷,开发人员由于无法模拟出多个中间件并发的情况,很难对其进行检验。
  
  3 在C\S系统中的应用推广实践
  
  被测系统是一个由。NET + SQL Server开发的C/S系统,系统要求并发用户访问数≥100个,对此一般有两种测试方法:
  
  第一种是传统的测试方法,由于LoadRunner有直接调用exe文件的功能,可以直接加载100个客户端,但是在测试过程中,由于100个客户端框架所占内存耗费极大,根本达不到100个用户操作系统就会崩溃,另一方面同时运行不代表同时并发,即使实现加载也不代表并发性能。
  
  第二种就是通过2.3所述的方法来进行分析,可知测试的关键是如何将客户端封装成一个Vuser,经过资料研究,发现可以通过。NET的LR插件对客户端进行二次开发,将其编译成一个可供Controller调用的Vuser,在二次开发中,可以将耗费资源的框架类等注释掉,调试完成后就可生成一个Vuser,然后进行各类测试。
  
  在Java开发的各类软件中,可以使用同样的分析方法,采用加载class的方式,实现对接口函数的调用,从而设计出一个可供Controller调用的Vuser.
  
  4 总结
  
  本文主要是从中间件测试的实践中,发现LoadRunner在测试并发性能指标时的独特优势,从而总结出一套将被测软件封装成Vuser的分析方法,再利用Controller实现多用户并发从而发现普通测试方法不易发现的问题。
  
  本方法难度在于具体实践中各个类型软件封装的方法不一样,比如中间件编程语言有C++、C#、Java、Perl、Python等等,形式可以是DLL、COM、EXE等等,该方法大多需要编程辅助,需要熟悉各类编程语言,完全掌握有难度,但是如果能把握其中原理,遇到该类测试时知道解决思路,按照封装Vuser的思想认真进行分析研究,虽然在初期进展缓慢,在完成封装后,测试进度和测试质量都能上一个层次,对于自身技术实力的增长也有好处,是值得花费时间和精力进行研究的。

 

 

TAG标签: 中间件  LoadRunner  测试  


上一篇:计算机病毒与预防一课的教学设计
下一篇:网络WebCache系统建设方案探究