每天15分钟JMeter进阶篇(1):JAVA 取样器的基本使用
创始人
2024-05-13 19:05:53
0

每天15分钟JMeter进阶篇(1):JAVA 取样器的基本使用

  • 前言
  • 准备工作
  • 创建开发工程
    • POM文件
    • 创建根工程
    • 创建module
  • 开发JAVA取样器
  • 构建、部署运行
    • 构建JAR包
    • 部署和运行
  • 写在最后

前言

JMETER官方提供了丰富的取样器,可以支持80%的常见测试场景,同时JMETER也有很强的扩展功能,支持测试人员自己定制取样器,JAVA 取样器就是其中一种。使用JAVA 取样器需要测试人员具备中等程度的编码能力,因为JAVA 取样器需要自己编写实现代码。关于JAVA取样器的使用场景举个最简单的例子,一个项目自己开发了一个缓存消息的平台,并且提供了一个SDK,那么当对这个SDK进行性能测试的时候,你就需要使用JAVA取样器,也就是你把自己当成一个客户端,调用SDK的API去操作缓存服务,然后在并发环境下观察SDK的资源消耗。这只是一个简单的例子,总的来说,只要JMETER官方提供的取样器不能满足你的测试需求的时候,你就可以考虑使用JAVA取样器,并且开发出来的代码也很容易就可以封装成GUI界面,提高易用性。
欢迎转载,转载请注明出处,非常感谢:https://blog.csdn.net/wyp_810618/article/details/128530272


历史文章

每天15分钟JMeter入门篇(一):Hello JMeter
每天15分钟JMeter入门篇(二):使用JMeter实现并发测试
每天15分钟JMeter入门篇(三):认识JMeter的逻辑控制器
每天15分钟JMeter入门篇(四):认识JMeter中的函数
每天15分钟JMeter入门篇(五):认识JMeter中的Test Fragment
每天15分钟JMeter入门篇(六):学会用好JMeter中的断言
每天15分钟JMeter入门篇(七):认识JMeter中的监听器
每天15分钟JMeter进阶篇(1):JAVA 取样器的基本使用


准备工作

这篇文章的主要目的是对JAVA取样器的开发过程做一个基本说明,能让第一次接触的人具备开发简单的JAVA取样器的能力,为后续的进阶使用打下基础。
在开始本文之前,请在自己的电脑上准备一个JAVA开发环境,无论是IDEA或者ECLIPSE都可以;准备一个可用的JMETER。

创建开发工程

这里以idea为例。使用maven管理构建。idea和maven的安装和部署自行百度吧。工程结构采用根工程+module的结构,有的人习惯在根工程下开发代码,这也完全没有问题。

POM文件

以下是我的POM文件配置,其中provided的原因是ApacheJMeter_core和ApacheJMeter_java本身就是jmeter自带的JAR包,所以provided,这样在构建JAR包时不会再构建它的次级依赖。


jmeter-java-democom.xiaomacaicai.jmeter.demo1.0-SNAPSHOT4.0.0com.xiaomacaicai.jmeter.demo.javasamplerorg.apache.jmeterApacheJMeter_core5.5providedorg.apache.jmeterApacheJMeter_java5.5provided

创建根工程

在idea界面中,依次点击File - New Project,进入新建project的界面,如图:
新建工程-1
该界面中选择Mave,然后不用做任何设置,Next,界面如图:
在这里插入图片描述
该界面中设置工程的名称属性,设置可以参考如图,点击Next,界面如图:
在这里插入图片描述
设置ProjectName和项目的本地存储目录后,点击Finish。完成根目录的创建。

创建module

首先说明一点,有的人习惯在根工程下编写代码,这完全没问题。我自己的习惯是在根工程下创建不同的module,我觉得这样方便管理。两种方法都可以,依照自己的习惯来就好。
由于我是采用的Module的方式,所以根目录下的src目录可以删除。
在工程名称上右键——New——Module,同样采用maven的方式,如图:
在这里插入图片描述
这个界面采用默认设置,点击Next,界面如图:
在这里插入图片描述
输入Artifactid,我的习惯是groupid + module名称,设置后点击Next
在这里插入图片描述
这个界面默认就好,点击Finish完成module创建,此时工程目录结构如图:
在这里插入图片描述
到这里就完成了工程的基本创建,下一步可以开发JAVA 取样器了。

开发JAVA取样器

在module的src下面新增JAVA类,并编写代码如下:

import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;
import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;
import org.apache.jmeter.samplers.SampleResult;public class JavaSampleDemo extends AbstractJavaSamplerClient {public SampleResult runTest(JavaSamplerContext javaSamplerContext) {System.out.println("执行JAVA取样器");SampleResult sampleResult = new SampleResult();//从这行代码开始开始耗时统计sampleResult.sampleStart();//设置响应代码为200sampleResult.setResponseCodeOK();//设置请求头信息sampleResult.setRequestHeaders("request header");//设置请求报文sampleResult.setSamplerData("请求报文:JAVA取样器DEMO");//设置响应报文sampleResult.setResponseData("响应报文:JAVA取样器DEMO","utf-8");//设置取样器的标题,这个标题在聚合报告和查看结果树中展示sampleResult.setSampleLabel("demo演示");//设置取样器的结果为测试通过sampleResult.setSuccessful(true);//从这行代码开始结束耗时统计sampleResult.sampleEnd();return sampleResult;}
}

构建、部署运行

构建JAR包

开发好的JAVA取样器,必须构建成JAR包,放入JMETER的目录才可以。以idea为例,构建JAR包的过程如下:
在工程界面Ctrl + Alt + Shift + s,打开工程属性,点击ifacts, 如图:
在这里插入图片描述
点击+号,选择JAR - From modules from dependencies,在弹出界面中选择刚才新增的Modules,由于是放到JMETER中执行因此不要设置Main Class,打包方式我习惯每个依赖的JAR单独拷贝,而不是把所有依赖包的class文件合并到一个JAR包中,很容易产生冲突。参考如图:
在这里插入图片描述
点击确定后即可完成构建配置。

部署和运行

构建出来的jar包拷贝到jmeter目录下的lib\ext目录下,并重启jmeter
在jmeter中新增线程组、查看结果数、聚合报告,并在线程组下新增java 取样器,如图:
在这里插入图片描述

运行后查看结果树,可以看到每一个取样器的数据
在这里插入图片描述

写在最后

通过上面的步骤,可以把一个简单的JAVA取样器跑起来,DEMO里只是打印了一行简单的文字,在实际应用中JAVA取样器可以扩展很多功能,后续文章会逐渐补充几个典型的场景

相关内容

热门资讯

美国不提安卓系统华为,迈向自主... 华为与美国:一场关于技术、市场与政策的较量在当今这个数字化的世界里,智能手机已经成为我们生活中不可或...
安卓系统怎么打开ppt,选择文... 你有没有遇到过这种情况:手里拿着安卓手机,突然需要打开一个PPT文件,却怎么也找不到方法?别急,今天...
谷歌退回到安卓系统,探索创新未... 你知道吗?最近科技圈可是炸开了锅,谷歌竟然宣布要退回到安卓系统!这可不是一个简单的决定,背后肯定有着...
安卓系统待机耗电多少,深度解析... 你有没有发现,手机电量总是不经用?尤其是安卓系统,有时候明明没怎么用,电量就“嗖”的一下子就下去了。...
小米主题安卓原生系统,安卓原生... 亲爱的手机控们,你是否曾为手机界面单调乏味而烦恼?想要给手机换换“衣服”,让它焕然一新?那就得聊聊小...
voyov1安卓系统,探索创新... 你有没有发现,最近你的手机是不是变得越来越流畅了?没错,我要说的就是那个让手机焕发青春的Vivo V...
电脑刷安卓tv系统,轻松打造智... 你有没有想过,家里的安卓电视突然变得卡顿,反应迟钝,是不是时候给它来个“大保健”了?没错,今天就要来...
安卓系统即将要收费,未来手机应... 你知道吗?最近有个大消息在科技圈里炸开了锅,那就是安卓系统可能要开始收费了!这可不是开玩笑的,这可是...
雷凌车载安卓系统,智能出行新体... 你有没有发现,现在的汽车越来越智能了?这不,我最近就体验了一把雷凌车载安卓系统的魅力。它就像一个聪明...
怎样拍照好看安卓系统,轻松拍出... 拍照好看,安卓系统也能轻松搞定!在这个看脸的时代,拍照已经成为每个人生活中不可或缺的一部分。无论是记...
安卓车机系统音频,安卓车机系统... 你有没有发现,现在越来越多的汽车都开始搭载智能车机系统了?这不,咱们就来聊聊安卓车机系统在音频方面的...
老苹果手机安卓系统,兼容与创新... 你手里那台老苹果手机,是不是已经陪你走过了不少风风雨雨?现在,它竟然还能装上安卓系统?这可不是天方夜...
安卓系统7.dns,优化网络连... 你有没有发现,你的安卓手机最近是不是有点儿“慢吞吞”的?别急,别急,让我来给你揭秘这可能与你的安卓系...
安卓手机系统怎么加速,安卓手机... 你有没有发现,你的安卓手机最近变得有点“慢吞吞”的?别急,别急,今天就来给你支几招,让你的安卓手机瞬...
小米note安卓7系统,探索性... 你有没有发现,手机更新换代的速度简直就像坐上了火箭呢?这不,小米Note这款手机,自从升级到了安卓7...
安卓和鸿蒙系统游戏,两大系统游... 你有没有发现,最近手机游戏界可是热闹非凡呢!安卓和鸿蒙系统两大巨头在游戏领域展开了一场激烈的较量。今...
安卓手机没有系统更,揭秘潜在风... 你有没有发现,现在安卓手机的品牌和型号真是五花八门,让人挑花了眼。不过,你知道吗?尽管市面上安卓手机...
充值宝带安卓系统,安卓系统下的... 你有没有发现,最近手机上的一款充值宝APP,在安卓系统上可是火得一塌糊涂呢!这不,今天就来给你好好扒...
安卓系统8.0镜像下载,轻松打... 你有没有想过,想要给你的安卓手机升级到最新的系统,却不知道从哪里下载那个神秘的安卓系统8.0镜像呢?...
安卓系统修改大全,全方位修改大... 你有没有想过,你的安卓手机其实是个大宝藏,里面藏着无数可以让你手机焕然一新的秘密?没错,今天就要来个...