jmeter压力(性能)测试

介绍

JMeter是Apache下一个类似LoadRunner的开源性能测试项目,可用用来对静态的和动态的资源(如:files, Servlets, Perl scripts, Java Objects, Data Bases and Queries, FTP Servers)的性能进行测试.

可对以下类型服务进行性能测试:

Web - HTTP, HTTPS
SOAP
Database via JDBC
LDAP
JMS
Mail - POP3(S) and IMAP(S)

官方网站:http://jmeter.apache.org/

基本概念

测试计划:

使用JMeter进行测试的起点,是其它JMeter测试元件的容器

线程组

代表一定数量的并发用户,它可以用来模拟并发用户发送请求。实际的请求内容在Sampler中定义,它被线程组包含。可以在“测试计划->添加->线程组”来建立它,然后在线程组面板里有几个输入栏:线程数、Ramp-Up Period(in seconds)、循环次数,其中Ramp-Up Period(in seconds)表示在这时间内创建完所有的线程。如有8个线程,Ramp-Up = 200秒,那么线程的启动时间间隔为200/8=25秒,这样的好处是:一开始不会对服务器有太大的负载。线程组是为模拟并发负载而设计。

取样器(Sampler)

模拟各种请求。所有实际的测试任务都由取样器承担,存在很多种请求。如:HTTP 、ftp请求等等.

监听器

负责收集测试结果,同时也被告知了结果显示的方式。功能是对取样器的请求结果显示、统计一些数据(吞吐量、KB/S……)等。

断言

用于来判断请求响应的结果是否如用户所期望,是否正确。它可以用来隔离问题域,即在确保功能正确的前提下执行压力测试。这个限制对于测试的有效性非常有用.

定时器

负责定义请求(线程)之间的延迟间隔,模拟对服务器的连续请求。

逻辑控制器

允许自定义JMeter发送请求的行为逻辑,它与Sampler结合使用可以模拟复杂的请求序列.

配置元件

维护Sampler需要的配置信息,并根据实际的需要会修改请求的内容.

前置处理器/后置处理器

负责在生成请求之前和之后完成工作。前置处理器常常用来修改请求的设置,后置处理器则常常用来处理响应的数据。

构建测试

添加线程组

按下图设置:500 x 200 = 10万 个线程 访问getNoticeById() 接口,tomcat工作线程全部被占用,导致处理慢,甚至超时

添加 http 请求

如下图设置url:

http://localhost:8080/getNoticeById/195c6547e5044c759dc39caf317998c5

添加察看结果树

可以查看每个请求的执行结果

添加汇总报告

查看汇总结果

添加聚合报告

查看聚合结果

添加汇总图

以图表的形式展示

启动测试

点击下图绿色启动按钮,开始测试

查看 察看结果树

可以查看每个请求的信息,成功显示绿色,失败显示红色

查看 汇总报告

可以查看汇总信息,如:异常(失败的比例)

查看 聚合报告

可以查看聚合报告,如:异常(失败的比例)

查看汇总图

勾选要显示的数据,如下图:

点击 【显示图表】 显示图表

清空结果数据

点击下图红框按钮,情况 【HTTP请求】、【察看结果树】等数据

参考:
https://www.iteye.com/blog/hot66hot-1732209


原文出处:/show_1IX1TCe6ehIg.html