JMeter在Web Services性能测试中的应用

发表于:2009-08-24来源:作者:点击数: 标签:性能测试jmeterJmeterJMeterweb
性能 测试 是任何分布式或Web应用程序 测试计划 的重要组成部分。在计划和 开发 周期中进行性能评价,可以保证交付给客户的应用程序满足客户对于高负载、可用性和可伸缩性的要求。提前确定软件的负载限制可以为适当地进行系统配置提供帮助,从而避免出现意料
性能测试是任何分布式或Web应用程序测试计划的重要组成部分。在计划和开发周期中进行性能评价,可以保证交付给客户的应用程序满足客户对于高负载、可用性和可伸缩性的要求。提前确定软件的负载限制可以为适当地进行系统配置提供帮助,从而避免出现意料之外的故障。系统性能分析中要处理的几个问题是:系统或服务器能否处理数百个或数千个客户端的同时请求,以及系统可以处理请求的频率。这种类型的测试不但提供了系统响应时间的绝对度量值,而且针对服务器的回归测试和应用程序代码,检查服务器的响应是否和预期结果相匹配,并为不同供应商的中间件解决方案的评价和比较提供帮助。

  Apache JMeter——Apache的性能测试框架,已经广泛地作为Web应用程序的性能测试工具。它可以用于在模拟重负载的条件下分析整个服务器性能。该软件提供了FTP和HTTP请求功能和可扩展自定义脚本功能。本文阐述了Jmeter可用于对Web services进行负载测试的原因。我们特别通过在BEA WebLogic Server 9.0中配置一个简单的Web Services来进行说明。示例测试计划阐述了测试计划的创建、线程组、循环和Web Services请求。我们还讨论了如何测量数据,并通过随附的JMeter图表对图形工具中所显示的结果进行了说明。

JMeter

  Apache JMeter是可以对利用HTTP或FTP服务器的应用程序进行测试的工具。它是基于Java的,通过所提供的API它还具有高度可扩展性。典型的JMeter测试包括创建循环和线程组。循环使用预设的延迟来模拟对服务器的连续请求。线程组是为模拟并发负载而设计的。JMeter提供了用户界面。它还公开了API,用户可以从Java应用程序来运行基于JMeter的测试。为了在JMeter中创建负载测试,需要构建测试计划。在实际操作中,Jmeter需要执行一系列的操作。最简单的测试计划通常包括下列元件:

    *线程组——这些元件用于指定运行的线程数和等候周期。每个线程模拟一个用户,而等候周期用于指定创建全部线程的时间。例如,线程数为5,等候时间为10秒,则创建每个线程之间的时间间隔为2秒。循环数定义了线程的运行时间。使用调度器,还可以设置运行的起始时间。
    *取样器——对于服务器HTTP、FTP或LDAP请求,这些元件是可配置请求。该教程仅侧重于Web Services请求。
    *监听器——这些元件用于请求数据的后期处理。例如,可以将数据保存到文件或用图表来说明结果。此时JMeter图表并没有提供许多配置选项;然而它是可扩展的,它始终可以添加额外的可视化效果或数据处理模块。

  Apache JMeter网站给出了关于可用元件的详细说明。在某些情况下,如果可用元件不适合特定的测试,开发人员可通过在安装Jmeter的\lib\ext\目录中放置jar文件来编写他/她自己的脚本或Java类,并将其嵌入测试计划。

  本文中我们使用的是版本是JMeter 2.1。从 Web 站点 下载可执行二进制文件,将其解压缩,然后应用程序即可在WindowsUnix平台中使用。如果是在Windows操作系统中工作,要转到bin文件夹用jmeter.bat 或jmeterw.bat启动应用程序。初始用户界面如图1所示。

  

  图1:启动Apache JMeter

创建负载测试
 
  使用Jmeter的负载测试功能,可以在服务器上产生高负载并确定其容量和限制。注意:若要使用Web services样本,需要有可用的mail.jar和activation.jar,它们可从Sun Microsystems中获取(请参阅下面的链接)。由于授权限制,Apache没有分发这些库。下载这两个jar文件之后,将它们放入Java classpath或安装Jmeter的lib目录中。

  图2:创建线程组和基本Web Services测试计划

  现在,右键单击Test Plan并添加Thread Group和Loop Controller。我们使用这两个元件来设置模拟的并发用户数和测试持续时间。在树状结构的Loop Controller下面,添加“WebService (SOAP) Request”和Graph,如图2所示。如果不能向测试计划添加WebService请求,则可能是路径中没有mail.jar或activation.jar。

  键入线程数、等候周期和循环数。在本教程中我们分别使用5、10和100。将循环控制器计数设置为1。如果配置了Web Services的WebLogic Server仍然没有运行,请手动启动它或从WebLogic Workshop中启动。

原文转自:http://www.ltesting.net