您的位置:首页 > 编程语言 > Java开发

利用Spring Insight + JMeter 对Web应用进行压力测试和性能评估

2017-07-21 00:00 871 查看
Spring Insight
Spring Insight 是一款提供Web应用行为和表现可视化实时检测的工具,简单说就是服务器收到请求,Spring Insight 通过一些图形和数据告诉检测者这些请求的请求时长。通过分析一些细节数据,检测者可以得出请求快、慢或异常的原因。
既然是通过分析细节数据才能得到请求快慢的原因,那 Spring Insight 可以提供哪些数据呢?
1,JDBC 查询时间
2,Spring Bean 响应时间
3,外部请求时间
针对 Hibernate 或 Spring MVC 这些框架,它还能告诉开发者请求中数据库访问的事务数、为请求绑定参数的耗时以及请求头的详细信息等。从这些数据中,我们能获取数据库查询数和它们的性能的列表,包含详细请求信息的请求列表,Spring Bean 方法调用列表,Spring Bean 的调用和性能列表。可以看到这些信息对分析 Spring 框架下的业务逻辑很有帮助。
关于 Spring Insight 的用处,不再赘述,下面说一下它的安装和使用。

Insight安装和使用
Spring Insight 是基于 Pivotal tc Server 的应用,所以我们需要下载一个开发者版本的服务器。附上 pivotal tc server developer edition下载地址 https://network.pivotal.io/products/pivotal-tcserver
这个地址下的 /Pivotal tc Server Developer Edition 目录下是服务器, Pivotal tc Server Templates 目录下是可以运行在 tomcat 服务器上的实例模板,我们下载其中的 Spring Insight Developer Edition 模板。
解压 tc Server 文件和 insight template 文件,将 insight 的模板拷贝到服务器根目录 (/tcserver) 的 /tcserver/templates 文件夹内,或运行
tcruntime-admin.sh get-template
命令来获取实例模板。运行
tcruntime-instance.sh create Insight_Name -t insight
来创建一个名为 Insight_Name 的 Spring Insight 实例。最后,运行
tcruntime-ctl.sh Insight_Name start
开启实例。Windows下,在最后开启实例前,需要运行```
tcruntime-ctl.bat Insight_Name install

这样 Spring Insight 就安装完成了,这些步骤后,服务器目录下会多一个文件夹 /tcserver/Insight_Name,接下来需要将需要监测的 Web 应用的 war 包拷贝到 /tcserver/Insight_Name/webapps 下就可以了。之后浏览器访问 localhost:8080/insight 即可观察到自己拷贝过去的应用包。

**JMeter**
常见测试概念:
1,性能测试:展示在给定的软硬件条件下,应用所能表现出的最佳性能,以期从其中找到优化点的测试
2,负载测试:在系统所设计的可供操作的最高负载的情况下,对应用进行的基础测试
3,压力测试:以淹没应用资源的手段,尽可能地使应用出现崩溃的测试

JMeter 是一款可以基于不同协议,对应用进行负载测试、压力测试、面向性能的业务(功能)测试以及回归测试等的工具。它支持的协议有:
Web — HTTP/HTTPS
Web Services — SOAP/RPC(Simple Object Access Protocol / Remote Procedure Call protocol)
DataBase via JDBC Driver
Directory — LDAP(Light Directory Access Protocol)
Messaging Oriented Service via JMS(Java Messaging Service)
Service — POP3(Post Office Protocol 3)、IMAP(Internet Mail Access Protocol)、SMTP(Simple Mail Transfer Protocol)
FTP Service

为了实现压力测试,我们需要多个线程同时对服务器进行访问,所以 JMeter 有线程组这样一个概念。通过配置线程组内启动线程数、循环次数等参数,我们可以在配置的时间内开启多个线程,并通过上述协议发起对服务器的访问。JMeter 提供许多表格和图形以辅助对访问结果的分析。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: