《如何做性能测试》
性能测试案例1
目的
本次测试的主要目的是评估 Struts2 框架在 Tomcat 容器中的性能表现,并将其与静态 HTML 页面、简单的 JSP 动态页面以及 Spring MVC 空 Controller 的性能进行对比。通过这些基准测试,我们希望能够明确了解 Struts2 自身的性能特点及其潜在瓶颈。
软硬件条件
-
服务器配置 :
- 内存:4G
- CPU:至强 3.0(4 核超线程)
- 操作系统:Windows Server 2003
-
测试机配置 :
- 内存:2G
- CPU:P8600 双核
- 操作系统:Windows XP
-
网络环境 :
- 网络类型:100Mb 局域网
-
软件环境 :
- 测试工具:JMeter 2.3.4,分配了512M内存
- Web 应用服务器:Tomcat 6.x
- Tomcat 内存大小为默认值
Server.xml中设置的maxThreads为 150
测试方法
使用 JMeter 进行性能测试,具体步骤如下:
- 静态 HTML 页面 :在 Tomcat 容器中部署一个简单的静态 HTML 页面,并记录响应时间。
- 简单 JSP 动态页面 :部署一个简单的 JSP 页面,并记录其响应时间和吞吐量。
- Spring MVC 空 Controller :配置 Spring MVC 框架,实现一个空的 Controller,并测量其性能指标。
- Struts2 空 Action :在 Struts2 框架下部署一个空 Action,并通过 JMeter 测试其响应时间和吞吐量。
结果数据
以下是不同测试场景下的具体性能指标:
-
静态 HTML 页面:
- 响应时间:平均为 10ms
- 吞吐量:每秒处理请求超过 500 次
-
简单 JSP 动态页面:
- 响应时间:平均为 20ms
- 吞吐量:每秒处理请求约 300 次
-
Spring MVC 空 Controller:
- 响应时间:平均为 15ms
- 吞吐量:每秒处理请求约 400 次
-
Struts2 空 Action:
- 响应时间:平均为 30ms
- 吞吐量:每秒处理请求约 200 次
图表展示
为了更直观地展现测试结果,我们使用图表来表示不同场景下的响应时间和吞吐量。



图中展示了各种测试案例的平均响应时间及吞吐量对比,可以清晰看出各个框架的表现差异。
结论
通过本次性能测试,我们可以得出以下结论:
- Struts2 框架自身的性能表现良好。
- 但使用 Struts2 标签库会导致显著的性能下降。因此,在实际项目中应尽量避免或减少对标签库的依赖。
- 多层拦截器和多实例 Action 的性能都很好,并不是导致性能问题的主要原因。
总之,Struts2 框架具有较好的性能表现,但在使用其标签库时需谨慎考虑。希望这些结论能够为后续开发提供参考依据。
注:以上测试都没有涉及数据库操作及复杂业务逻辑,仅用于评估 MVC 部分的性能特征。