> 中间件 > 中间件测试中LoadRunner的应用,如何用LoadRunner并发消息中间件主动MQ...

中间件测试中LoadRunner的应用,如何用LoadRunner并发消息中间件主动MQ...

中间件测试中LoadRunner的应用

如何使用LOADRUNNER并发消息中间件ActiveMQ...我测试过的MQ东西,我必须用JAVA编写一个MQ程序,成功调试后,把它复制到LoadRunner脚本中执行。您可以在互联网上查找MQ代码引用的java部分。

中间件测试中LoadRunner的应用

如何LoadRunner进行中间件的性能测试

1.当接收到项目时,首先要了解系统架构,无论是B/S还是C/S,使用什么应用服务器(即中间件)和什么数据库?2.熟悉系统的功能和业务流程,并定义项目的性能要求。什么是绩效指标?3.写一份性能测试计划 (有些公司不要求书面形式)4。设计性能测试用例。

如何用LoadRunner并发消息中间件主动MQ...

如何使用LOADRUNNER并发消息中间件ActiveMQ...我测试过的MQ东西,我必须用JAVA编写一个MQ程序,成功调试后,把它复制到LoadRunner脚本中执行。您可以在互联网上查找MQ代码引用的java部分。

中间件测试中LoadRunner的应用

如何LoadRunner进行中间件的性能测试

中间件测试中LoadRunner的应用范文

摘要

1导言

中间件是一种独立的系统软件或服务程序,位于操作系统、网络和数据库之上,但在应用软件之下。分布式应用软件可以通过中间件在不同技术之间交换资源。中间件主要用于三种类型的分布式软件:客户机/服务器、浏览器/服务器和无服务器节点。

LoadRunner是一个预测系统行为和性能的负载测试工具。它可以通过模拟数千万用户实现并发负载和实时性能监控来识别和发现问题。

在分布式系统测试中,LoadRunner只适用于没有中间件的B/S软件。对于带有中间件的B/S软件,当使用工具时,中间件通常被认为是服务器程序的一部分。测试结果是服务器和中间件测试的共同结果,而不仅仅是中间件。然而,C/S软件一般不使用负载运行器(Load Runner)进行测试,因为它的操作很难被完全记录下来。目前,测试软件的方法主要有两种。一种方法是通过功能测试来测试软件性能和强度等核心指标。例如,多个客户端程序被同时加载和运行。另一种方法是在调用中间件代码之前和之后插入堆栈以获取时间,并通过多次调用和平均来考虑。然而,这两种方法都难以解释多用户并发下中间件的处理能力,这掩盖了中间件的真实性能,只能是粗略甚至错误的评估(例如,由于其他原因,数据不能在10毫秒内显示)。

通过对数据查询的长期研究和自动化测试工具的使用,在现有工具LoadRunner的基础上,采用test+development模式,总结出一套分别测试中间件软件的方法,可应用于B/S、C/S和无服务器模式下中间件的性能和强度测试。

2中间件测试中的分析实践

2.1中间件介绍

中间件通常是软件系统的核心组件,它基本上要求高性能、实时性和低延迟。在这个测试中测试的中间件软件结构如图1所示。

中间件是用C++语言开发的,底层使用实时CORBA作为通信基础。这是一个标准的动态链接库。该软件支持对象、消息和数据流三种模式的数据传输,可以实现无服务器节点、分布式操作和运行状态监控。

2.2装载机工作原理

LoadRunner工具主要分为三个部分。

1) Vuser发电机

Vuser生成器用于记录测试操作并生成虚拟用户。虚拟用户可以模拟真实用户的各种操作,并可以设置参数,从而达到用不同数据测试应用程序的目的。录音主要适用于网络类软件。

2)控制器控制器

控制器控制器是LoadRunner的核心组件。它可以利用Vuser生成器的虚拟用户建立多用户测试方案,并可以使用各种参数进行并发设置,从而实现连续和循环的负载测试。

同时,控制器可以实时监控应用软件的运行性能。

3)分析仪

分析仪(Analyzer analyzer)主要用于在并行测试后获取Vuser生成器中设置的参数值,并分析应用软件的运行性能。

简而言之,LoadRunner通过Vuser记录用户的操作,控制器使用参数化来模拟多个不同用户的同时并发操作。整个软件的多个指标可以在分析仪中量化。

2.3测试方法的分析和设计

从2.1中我们知道中间件是一种没有服务器节点的中间件,整个软件系统的运行模式如图2所示。

各种平台可以通过中间件加入或退出系统。根据中间件的一定要求,整个系统中至少支持255个中间件可以同时运行。传统的测试方法无法应对如此大的并发性需求。LoadRunner无法记录这种无服务器节点软件的各种操作,第一步不可行。然而,由于其控制器在并发控制中的强大功能,只找到一种方法不仅可以避免C/S软件记录仿真行为不良的缺陷,而且可以利用其大规模并发控制的优势,这是整个测试方法的关键。如果可行的话,它可以单独模拟中间件的各种行为,并且可以将其视为一个虚拟用户(Vuser),然后整合到LoadRunner的测试方法中。

经过分析,LoadRunner可以使用标准的C语言加载DLL文件,这与真实设备软件调用中间件的方式没有什么不同。然而,LoadRunner不能模拟中间件中回调函数的使用(C语言不支持回调函数)。该功能是中间件的核心功能,不能绕过。经过多次实践,单独开发了一个测试辅助程序。利用中间件借口来代替它的回调函数,它可以通过直接调用中间件函数来完全实现它的各种功能,从而解决了它无法记录的问题。代码如图3所示。

当控制器模拟多个中间件时,在调用中间件的过程中会发现内存冲突,这不符合实际操作环境中中间件的逐一使用。因此,通过设置,每个成员可以获得自己独立的进程,使得中间件成员之间不会发生内存资源冲突,通过设置并发的组装点等功能,达到检查各种性能指标的目的。至此,整个测试方法的设计完成。

2.4测试结果的验证

通过将中间件和辅助程序封装到Vuser中,并使用控制器的并发调用,设计了各种测试用例来验证中间件的性能、强度和其他索引能力。从LoadRunner的实际性能来看,至少以下类型的软件缺陷无法或难以通过其他测试方法验证(验证成本太高):

1)最大节点数测试

中间件要求同一网络中至少有255个中间件同时运行。在强度测试中,发现该软件只能支持添加52个中间件。后来,开发人员确认分配给成员管理模块设计的内存单元的计算是由错误引起的。然而,在正常使用中,通常只添加十几个平台,这个问题很难被发现。

2)信息处理能力的测试

中间件有许多处理能力指标,如对象间交互事件发布/排序的帧周期≤1s(可靠传输)。在性能测试中,发现虽然帧周期满足多个成员同时发送消息的要求,但是数据会丢失或被阻塞,这在单独的代码桩中很难找到。

实际上,中间件主要是协调上层软件的操作,一次一条消息,这使得大规模用户发送并发消息时很难模拟场景。然而,控制器可以连续进行应力负载测试,从而在强度测试中发现其问题。

3)软件算法正确性的验证

由于中间件被LoadRunner封装为Vuser,同时保留了其动态链接库的特性,因此可以通过一些极端的方式来检查一些算法的正确性,例如测试时间同步功能。时间同步精度要求小于或等于10ms。经过测试,发现其精度经常在10ms左右波动。在1000次和2000次时间同步之后,发现其数据逐渐发散,这表明其同步算法有问题,如图4所示。然而,由于这些缺陷,开发人员无法模拟多个中间件的并发情况,因此很难检查它。

3在通信系统中的应用与推广实践

被测系统是由以下部分组成的系统。NET+SQL Server C/S系统,系统要求并发用户访问≥100,一般有两种测试方法:

首先是传统的测试方法。因为LoadRunner具有直接调用exe文件的功能,所以它可以直接加载100个客户端。然而,在测试过程中,由于100个客户端框架消耗的内存非常大,如果操作系统不能达到100个用户,它将崩溃。另一方面,同时运行并不意味着并发,甚至加载也不意味着并发性能。

第二种方法是用2.3中描述的方法进行分析。可以看出,测试的关键是如何将客户机打包到Vuser中。经过数据研究,发现它可以通过。NET LR插件在客户机上执行二次开发,并将其编译成控制器可以调用的Vuser。在二次开发中,可以对消耗资源的框架类等进行注释,调试后可以生成Vuser,然后可以进行各种测试。

在用Java开发的各种软件中,可以使用相同的分析方法,并且可以通过加载类调用接口函数,从而设计出一个可以被控制器调用的Vuser。

[/s2/]4[概述/S2/]

本文主要从中间件测试的实践中发现LoadRunner在测试并发性能指标方面的独特优势,从而总结出一套将被测软件封装到Vuser中的分析方法,然后利用控制器实现多用户并发,从而发现普通测试方法不易发现的问题。

这种方法的难点在于在具体实践中使用了不同类型的软件封装方法。例如,中间件编程语言包括C++、C#、Java、Perl、Python等。表单可以是动态链接库、组件库、执行库等。这种方法大部分需要编程帮助,需要熟悉各种编程语言,并且很难完全掌握。然而,如果一个人能掌握这个原理,当遇到这样的测试时,他就知道解决办法了。根据武泽的包装思想,分析和研究都是精心进行的。虽然在初始阶段进展缓慢,但在包装完成后,测试进度和测试质量可以得到提升。它也有利于自身技术实力的增长,值得花时间和精力在研究上。