Tomcat Apache UFO三个web server软件的JMeter压力测试

HB07140030 发布于 2009/04/21 20:33
阅读 2K+
收藏 4

使用JMeter分别对tomcat、apache、UFO(www.gm365.com上发布的web server软件)做性能测试
一、tomcat apache UFO JMeter工具
 1)这里只对JMeter做个简单的介绍
 JMeter——一个100%的纯Java桌面应用,它是 Apache组织的开放源代码项目,它是功能和性能测试的工具。JMeter可以用于测试静态或者动态资源的性能(文件、Servlets、Perl脚本、Java对象、数据库和查询、ftp服务器或者其他资源)。
  2)Jmeter的下载地址:http://jakarta.apache.org/jmeter/usermanual/index.html
  3)Apache JMeter 的特性:
  a) 能够对HTTP和FTP服务器进行压力和性能测试, 也可以对任何数据库进行同样的测试(通过JDBC)。
  b) 完全的可移植性和100% 纯Java。
  c) 完全 Swing 和轻量组件支持(预编译的JAR使用 javax.swing.*)包。
  d) 完全多线程 框架允许通过多个线程并发取样和 通过单独的线程组对不同的功能同时取样。
  e) 精心的GUI设计允许快速操作和更精确的计时。
  f) 缓存和离线分析/回放测试结果。
  g) 高可扩展性:
  h) 可链接的取样器允许无限制的测试能力。
  i) 各种负载统计表和可链接的计时器可供选择。
  j) 数据分析和可视化插件提供了很好的可扩展性以及 以及个性化。
  k) 具有提供动态输入到测试的功能(包括Javascrīpt)。
  l) 支持脚本变成的取样器(在1.9.2及以上版本支持BeanShell)。
  二、 JMeter可以做哪些方面的测试
  原先Jemer是为Web/HTTP测试而设计的,但是它已经扩展以支持各种各样的测试模块。它和用于HTTP和SQL数据库(使用JDBC)的模块一起运送。它可以用来测试静止资料库或者活动资料库中的服务器的运行情况,可以用来模拟对服务器或者网络系统加以重负荷以测试它的抵抗力,或者用来分析不同负荷类型下的所有运行情况。它也提供了一个可替换的界面用来定制数据显示,测试同步及测试的创建和执行。
  三、具体事例
  1)测试环境:
    硬件配置 软件环境
  测试时间 2009 年 4 月 19 日
  服务器 (R)4 256M 内存 Tomcat6.0.18  apache_2.0.63  UFO_0.9995_4_3
  客户端 (R)4 256M 内存 Jmeter
  测试内容 in.html 23.1kb的简单页面、输出相关信息。
  2)安装启动JMeter,分别对以上软件进行压力测试

1、右键单击测试计划,选择添加-〉线程组  在线程组里设置负载信息,即线程属性。我向测试计划中增加相关负载设置是Jmeter需要模拟十个请求者,每个请求者在测试过程中并发请求,并且连续请求10次。  线程数: 10   Ramp-up period(inseconds): 0   循环次数: 10   说明:线程数代表发送请求的用户数目,Ramp-up period(inseconds)代表每个请求发生的总时间间隔,单位是秒。假如我的请求数目是5,而这个参数是10,那么每个请求之间的间隔就是10/5,也就是2秒。如果设置为0就代表并发请求。Loop Count代表请求发生的重复次数,如果选择后面的forever(默认),那么 请求将一直继续,如果不选择forever,而在输入框中输入数字,那么请求将重复 指定的次数,如果输入0,那么请求将执行一次。接下来对tomcat、apache、UFO的测试只改变线程数,分别测试10、25、50、75、100、200、500、1000个线程,即模拟这些数目的用户并发。

2、添加HTTP默认请求值以下是我设置的信息,由于apache、tomcat、UFO的端口都改为80,以后这个设置内容不变。

3、添加HTTP请求:如2。 4、添加**,存放测试结果。  右键单击测试计划,选择测试计划-〉添加-〉**-〉聚合报告  你也可以选择用表格查看结果、图形结果、查看结果树等。整个测试附带说明:以下所有测试结果为7次测试结果按综合性能排序、取中间一次的结果;每次测试完一个web server软件重起计算机一次,对每个软件的第一次测试结果不记(第一次结果要处理页面缓存)

以下分别为3个软件的测试结果:

Tomcat的测试结果:

模拟200个用户时压力测试,tomcat已经明显看到响应慢了,Average:448(平均响应时间0.448秒),90%Line:1031(百分之90的用户响应时间为1.031秒)

模拟500个用户时压力测试,tomcat已经无法承受了;Error:50.86%(百分之50的请求无法响应)

Apache的测试结果:

模拟500个用户时压力测试,Apache平均响应时间明显慢了:1.460秒,90%的用户要6秒钟才能响应,错误率已经很高了:15.86%

UFO的测试结果:

 

对于www.gm365.com上发布的这个UFO,不做评论,性能得用户体验。大家有什么问题,多拿出来讨论,本次测试只是做了HTTP请求的聚合报告


以下是JMemter的相关参数和说明:
一、 聚合报告
图表含义说明如下:
Label:说明是请求类型,如Http,FTP等请求。
#Samples:也就是图形报表中的样本数目,总共发送到服务器的样本数目。
Average:也就是图形报表中的平均值,是总运行时间除以发送到服务器的请求数。
Median:也就是图形报表中的中间值,是代表时间的数字,有一半的服务器响应时间低于该值而另一半高于该值。
90%line:是指90%请求的响应时间比所得数值还要小。
Min:是代表时间的数字,是服务器响应的最短时间。
Max: 是代表时间的数字,是服务器响应的最长时间。
Error%:请求的错误百分比。
Throughput:也就是图形报表中的吞吐量,这里是服务器每单位时间处理的请求数,注意查看是秒或是分钟。
KB/sec:是每秒钟请求的字节数。
二、 使用分析
在测试过程中,平均响应时间是我们性能测试的一个重要衡量指标,但是在测试中,特别是在聚合报告中,得出的90%Line,我这里参考《《LoadRunner 没有告诉你的》之一——描述性统计与性能结果分析》,我认为90%Line等同于该文作者提出的90%响应时间,这个数值对我们性能测试分析也很有参考价值。90%响应时间是说在发送的请求中,90%的用户响应时间都比得到的数值上要短,同时说明,一个系统在应用时,90%的用户响应时间都能达到这个数值,那么就为系统性能分析提供了很好的参考价值。

加载中
返回顶部
顶部