【修真院JAVA小课堂】JMeter的简单介绍

时间:2023-02-01 19:33:50

大家好,我是IT修真院西安分院第2期学员,一枚正直善良的java程序员。
今天给大家分享一下,修真院官网java任务六中可能会使用到的知识点:

JMeter的简单介绍

1.背景介绍

 

什么是压测?

压力测试(Stress Test),也称为强度测试、负载测试。

压力测试是模拟实际应用的软硬件环境及用户使用过程的系统负荷,

长时间或超大负荷地运行测试软件,来测试被测系统的性能、可靠性、稳定性等。

 

为什么要压测?

定位性能瓶颈,预估系统的承载能力,为项目改进和优化提供参考数据,通俗地讲,压力测试是为了发现在什么条件下您的应用程序的性能会变得不可接受。

 

怎样进行压测?

使用压测软件,或者编写脚本等等

 

2.知识剖析

JMeter是什么

Apache JMeterApache组织开发的基于Java的压力测试工具。

JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。

做压力测试,一般要使用工具,人工是没办法做的。最常用的工具是LoadRunner, 但是LoadRunner毕竟是收费软件,而且使用上也比较复杂。 现在越来越多的人开始使用Jmeter来做压力测试。免费,而且使用上非常简单。

 

吞吐量:是指在一次性能测试过程中网络上传输的数据量的总和,吞吐量指标反映的是服务器承受的压力

吞吐量(承压能力)requestCPU的消耗、外部接口、IO等密切关联;主要是由TPS和并发数决定

影响参数:TPS、并发数、响应时间

TPS(Transaction Per second):每秒钟系统能够处理事务或交易的数量,它是衡量系统处理能力的重要指标

并发数:系统同时处理request/事务数

 

JMeter主要组件介绍

1.测试计划(Test Plan):是使用 JMeter 进行测试的起点,它是其它 JMeter 测试元件的容器。

2.线程组(Thread Group):代表一定数量的并发用户,它可以用来模拟并发用户发送请求。

3.取样器(sampler):定义实际的请求内容,被线程组包含,我们主要用HTTP请求。

4.监听器(Listener):负责收集测试结果,同时也被告知了结果显示的方式

5.逻辑控制器(Logic Controller):逻辑控制器让您自定义JMeter决定要发送请求时的逻辑。逻辑控制器可以改变来自子元素的请求顺序

6.断言(Assertions):可以用来判断请求响应的结果是否如用户所期望的

7.配置元件(Config Element):维护Sampler需要的配置信息,并根据实际的需要会修改请求的内容

8.前置处理器(Pre Processors)和后置处理器(Post Processors)

9.定时器(Timer):定时器(Timer)负责定义请求之间的延迟间隔。

3.常见问题

1JMeter怎么添加插件?

2、压力测试和性能测试的区别?

4.解决方案

添加plugins-manager.jar lib/ext目录后重启JMeter,在option菜单可以选项plugin manager中添加插件。

 

压力测试:对系统不断施加压力的测试,是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。例如测试一个Web站点在大量的负荷下,何时系统的响应会退化或失败。

性能测试:在交替进行负荷和强迫测试时常用的术语。性能测试关注的是系统的整体。它和通常所说的强度、压力/负载测试测试有密切关系。所以压力和强度测试应该于性能测试一同进行。

5.编码实战

详情见以下视频

6.扩展思考

关于视图解析器的优先级

熟悉 LoadRunner 的朋友一定不会对其 TPS(每秒事务数)TRT(事务响应时间) 等视图感到陌生,因为这是压力测试最为关键的两个指标。Meter 以其开源、轻巧、灵活、扩展性高等特性赢得了广大测试从业人员的青睐,但是它没有像 LoadRunner 那样提供一个 TPSTRT 之类的视图,虽然聚合报告也能说明一些整体以及实时的问题,但是就整体趋势、实时平均值走向、稳定性报告方面就无能无力了

https://jmeter-plugins.org/wiki/TransactionsPerSecond/

安装JMeter的插件来解决

7.参考文献

参考一:

https://www.cnblogs.com/wangtao_20/archive/2014/04/04/3645690.html

参考二:

http://blog.csdn.net/defonds/article/details/54576604

 

8.更多讨论

Q1:jmeter的可视化tps插件有什么作用?

A:如果没有的话我们只能看到一次测试中tps的平均值,有可视化tps插件我么可以看到tps随时间的变化波动。

Q2:压测的目的是什么?

压测是找到程序的瓶颈,根据实景情况看是否可以满足要求,如果不满足就需要进行优化,可以从硬件,数据库等方面优化

Q3:还有其他的压测工具吗?

另一个流行的压测工具是LoadRunner,不是免费的,其他还是有很多,如:NeoLoad,WebLOAD,Loadster,Load impact等



今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~