首页 > 编程知识 正文

如何安装jmeter,jmeter安装步骤

时间:2023-05-06 02:47:04 阅读:20447 作者:2625

JMeter是Apache下的顶级项目,让我们来看看官方介绍:

theapachejmeterapplicationisopensourcesoftware,a100 % purejavaapplicationdesignedtoloadtestfunctionalbehaviorandmeasurepeperfofofore

也许,JMeter是用纯java编写的开源软件,用于测试可变行为和性能。 最初的目的是测试web APP应用程序,但现在已扩展到其他测试。

有许多APP应用程序、服务和协议可供JMeter支持测试。 web(HTTPS )、soap/restweb服务、FTP、Database viaJDBC、LDAP、消息定向中间件(mom ) via JDBC、邮件- SMTP 无论如何,可以测试服务端经常使用的东西。

本文介绍了HTTP的压力测量。

另一方面,下载者可自行在官网上找到下载链接,也可使用以下链接进行下载。

3358 mirror.bit.edu.cn/Apache//jmeter/mlddwaries

目录结构

mlddw :可执行脚本文件

docs:JMeter提供的api文档

附加:附加文件

lib:JMeter自身依赖的jar包

许可证: jmeter依赖的jar包的许可证

printable_docs:JMeter介绍和文档

JMeter同时提供了用户友好的GUI界面和命令行方法。 首先,在windows上使用JMeter。

二、准备工作

1工作环境

JMeter5至少需要JDK8。 如果机器上还没有安装JDK,请先安装

2、建立界面

接口的代码如下。 方法1和方法2的关系是在微服务集群中作为服务提供模块的控制器方法。 我们通过用JMeter加压paymentInfo_TimeOut观察其对方法paymentInfo_OK的影响。 (以下为伪代码,在一定的压力测量下会诱发hystrix的降级条件,不需要研究,重点是jmentinfo_ok

//方法1 @ get mapping (/payment/hy strix/ok/{ id } ) publicstringpaymentinfo_ok ) @pathvariable ) inte gent log.id 返回结果; //方法2 @ get mapping (/payment/hy strix/time out/{ id } ) publicstringpaymentinfo _ time out (@ path variable ) ) )输入返回结果; (三、使用JMeter测试HTTP

1、制定测试计划

双击mlddw/JMeter.bat将其打开,然后等待jmeter GUI程序启动

初始启动的默认语言为英语。 您可以通过菜单栏上的选项选择语言通道(simplified )切换到简体中文

右键单击测试计划-添加-线程-用户-线程组

完成后选择Thread Group,右键单击此线程组,然后添加-采样器-HTTP请求

选择http请求,右键单击此http请求,然后添加-侦听器-结果树

再次选择HTTP请求,右键单击此HTTP请求,添加-侦听器-聚合报告。 完成后如图所示

2让我来解释这些概念。

测试计划:测试计划相当于一个项目,需要测试什么? 如何测量是在一个测试计划中定义的读组:线程组,相当于模拟的请求数。 一个线程相当于一个用户请求浏览结果树。 收到提交请求时每个请求的状态聚合报告:一次测试的数据汇总为三个配置参数

测试计划

选择左侧的测试计划,

右侧的名称就是测试计划的名字,注释就相当于代码中的注释。下面有个独立运行每个线程组,在一个测试计划中可以创建多个线程组(目前我们只有一个),比如我们不同的接口的并发量是不一样的,这时可以根据需要创建多个线程组,分开测试。我们先默认不作修改。

②Thread Group
选择左侧的Thread Group,线程组也有名称和注释。下面的线程属性就是核心配置了,前面也提到**,一个线程相当于一个用户请求。比如线程数填400,Ramp-up时间填5,循环次数填1,就表示在5秒内发送400次请求,执行一次,不循环。**
如果勾选了循环次数永远框并启动,那么只能由你动手取消,否则会一直执行

③Http请求
选择左侧的HTTP请求,这里我们关注Web服务器和HTTP请求这两个属性。协议就是请求的协议,默认是http,ip填服务器地址,也可以填域名,端口号是8080;因为刚才写的test接口只支持GET请求,方法选择GET,路径为url的请求路径,GET请求的参数可以直接带在路径上,也可以写到下面的参数那里,通过点击“添加”按钮来添加请求参数。

我们的程序运行结果是对paymentInfo_TimeOut和paymentInfo_OK的request请求都变的卡顿,因为我们的压力测试已经压垮了http://localhost:8010/payment/hystrix/timeout/1这个请求,必然会对同一服务产生一些影响,就像疫情期间医疗主力驰援武汉必然造成别地的医疗空虚

另外值得注意的是,左侧的节点很多时候是可以重复的,但是作用域不相同。比如当前察看结果树和聚合报告都是在HTTP请求下创建的,那么这个察看结果树和聚合报告监听的就是这个HTTP的结果。一个线程组下可以有多个HTTP请求,比如我们有一个H5页面要测试,打开这个页面可能会同时请求多个接口,在这种情况下就需要创建多个HTTP请求了。当察看结果树和聚合报告创建在Thread Group下,那么就是监听这个线程组下所有HTTP请求的结果。

④测试并查看运行情况
点击界面工具栏的绿色三角按钮开始压测,这时可以看到spring.log文件会不断输出信息等待压测结束后,我们可以选择左侧的察看结果树,就可以看到本轮测试的请求情况

请求选项的内容是请求头和请求体(请求url,请求参数,请求携带的cookie)

响应体正文就是我们测试方法的服务降级fallback返回的提升信息

选择聚合报告可以看到本轮测试的数据报告

解释一下这份报告:

样本:请求的次数,计算公式是线程数*循环次数,如果线程组配置勾选了永远,那么就是你停止测试时实际发送的请求数,本次我们测试的线程数是400

平均值:响应时间的平均用时,单位是毫秒。比如这里的平均响应时间是0.3秒

中位数:响应时间的中位数,单位是毫秒。

90%百分位:90%的响应时间小于该数值,单位是毫秒。这里有90%的响应时间小于22毫秒

95%百分位:含义和90%类似

99%百分位:含义和90%类似

最小值:本轮测试最小响应时间,单位是毫秒。

最大值:本轮测试最大响应时间,单位是毫秒。

异常%:本轮测试出现异常的请求比例。

吞吐量:可以理解为QPS,即是我们测试的接口处理请求的能力。比如这里是平均每秒可以处理2.2次请求

接收KB/Sec:响应数据的接收速率

发送KB/Sec:请求数据的发送速率

到此为止,你是不是觉得刚才我们写的接口很完美,服务也运行得毫无破绽?好了,我们选择界面左侧的Thread Group(线程组),然后把线程数改为5000,其它不变,模拟在5秒内有5000个用户来访问我们的接口。然后先点击界面上方的一个齿轮加两把扫帚的按钮来把结果树和聚合报告清除,然后再点击绿色的启动按钮,测试结果如下

你会发现当并发增大时,会有一部分请求出现了异常。再切换到聚合报告上,你会发现原来平均响应时间只有30多毫秒直接飙到1.5秒多了,异常率也出现了。这时就需要我们根据一些错误信息去做一些调优了,可能是系统级别的,也可以是jvm级别的,又或者是代码本身的问题。这不是本篇所要讲的,这里就不说了。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。