jmeter导⼊java⽂件_⼀起学习JMeter(六)-JMeter最⼤利刃-
java请求
java请求
JMeter最⼤利刃-java请求,通过简单代码,实现java能做的所有事。
1. 作⽤场景
⽬前应⽤架构都喜欢使⽤MQ、kafka等中间件,进⾏异步处理和应⽤之间解耦;所以性能测试中也有⼤量测试项⽬,要求直接发送请求到MQ、kafka等中间件上产⽣压⼒测试。此时使⽤java请求元件,它就是最⼤利器。java 请求就是直接通过编写java 代码对java api 调⽤,再加载对JMeter⼯具,实现⽅便的性能测试。
JMeter提供org.apache.jmeter.st.JavaTest类,实现java请求的简单例⼦。我们可以模仿它来扩展java请求元件,⽤来做接⼝测试。
2. JavaTest类源码分析
(1)查看JMeter源代码中JavaTest类,分析发现JavaTest继续了AbstractJavaSamplerClient类,这个抽象类主要⽅法3个,JavaTest中主要是覆盖这3个⽅法
(2)查看AbstractJavaSamplerClient类,主要有3个⽅法,实现JavaSamplerClient接⼝
(3)JavaSamplerClient接⼝类,主要4个⽅法,主要⽅法如下:
通过源代码分析,主要就是4个⽅法
setupTest⽅法 ,在线程执⾏前执⾏⼀次此⽅法
runTest⽅法,在线程中反复执⾏此⽅法
teardownTest⽅法,在线程中结束时,执⾏⼀次此⽅法
getDefaultParameters⽅法,设置java界⾯中默认值
所以我们要编写⼀个java请求,只要继承AbstractJavaSamplerClient,实现⼀个runTest⽅法,因为其它⽅法可根据⾃⼰需求进⾏覆盖。
3. 编写java请求样例
我们编写java请求脚本,最好使⽤java的IDE⼯具,如eclipse;开发脚本步骤如下:
(1)新建java⼯程,导⼊jmeter主要依赖。
主要导⼊jar包如下,可以从jmeter安装⽬录中lib下引⼊,尽量保证版本⼀致,(本次测试使⽤jmeter版本5.2.1)
(2)编写java请求类,继承AbstractJavaSamplerClient,主要脚本如下
package com.pt.jmeter;import java.io.Serializable;import org.fig.Arguments;import org.apache.jmeter.protocol.java.sampler.AbstractJav 编写好此类,此类可当成⼀个模块类,每⼀次只需修改类中部分脚本及调⽤api,就可以编写⼀个java请求脚本。
(2)导⼊⼯程为jar包,放置jmeter安装⽬录下lib/ext⽬录
注意:需要代码中有使⽤其它第三⽅jar包,如果打包⽅式是普通jar包(如上图)需要拷贝第三⽅jar包到JMeter安装⽬录lib⽬录
(3)重启jmeter,添加java请求,查看到新编写的java请求类
(4)查看运⾏结果,设置1个线程,运⾏2次场景,运⾏。
查看⽇志显⽰,查看脚本⽅法运⾏情况(如下图);单线程分析,线程启动后,⾸先运⾏setupTest⽅法,再运⾏2次runTest⽅法;线程结束后,再运⾏teardownTest⽅法。
大文件发送在性能测试中,使⽤JMeter⼯具中java请求,模拟MQ,kafka,redis,SFTP,第三⽅api等场景;或者你觉得jmeter 默认取样器存在不好⽤的地⽅,也可以通过这种⽅法进⾏改写,增加⾃⼰现实的⽅法,再通过JMeter来运⾏测试脚本。