先说本质,这种方式本质上是脱离了jmeter这个工具,利用jmeter的内核源码进行发压。
一、Jmeter的简介
Jmeter一款开源的压力测试工具,而这款开源的测试工具是基于Java开发。Jmeter最初的设计是为了web的性能测试。而在后面扩展了很多种类的测试。
Jmeter是基于Java编写,所以使用时需要安装jdk
二、Jmeter负载测试和性能测试种类
1.Web - HTTP, HTTPS (Java, NodeJS, PHP, ASP.NET, …)
2.SOAP / REST Webservices
3.FTP
4.Database via JDBC
5.LDAP
6.Message-oriented middleware (MOM) via JMS
7.Mail - SMTP(S), POP3(S) and IMAP(S)
8.Native commands or shell scripts
9.TCP
10.Java Objects
三、Jmeter基本组件简介
我们这里只讲解使用到的一些组件。而其他组件可以到Jmeter的官网了解(https://jmeter.apache.org/),在Jmeter下每个组件都是节点的方式进行配置。如我们在图形化界面中,都会有一个TestPlan的根节点,其他控件都添加在根节点下。
3.1.TestPlan:测试计划,每一个测试都为一个测试计划。
3.2.ThreadGroup:是一个测试计划的开始。所有的controller、sampler必须在线程组下。不过有一些特许的控件如Listeners可以直接在TestPlan下。
3.3.sampler:采样器,也就是我们各种性能测试和负载测试的收集器。如:http采样器:HTTPSampler等
3.4.Controller:主要用于压力测试逻辑的处理,如我们这里使用了LoopController进行控制线程的循环次数,是永久还是循环压力测试多次。
四、Jmeter的调用方式
调用Jmeter有5中方式:
使用命令的方式
使用ANT的方式
使用MAVEN的PLUGIN方式
使用JAVA代码调用
使用blazemeter进行调用
这里我采用java调用方式进行,因为这才符合我的需求。
五、使用JAVA调用jmeter
1、创建项目
使用IDEA创建Maven项目。

2、导入Jmeter的包
我们这里演示使用的是http的压力测试。所以会用到ApacheJMeter_http的包和ApacheJMeter_core的包
<!--jmeter核心包-->
<dependency>
<groupId>org.apache.jmeter</groupId>
<artifactId>ApacheJMeter_core</artifactId>
<version>4.0</version>
</dependency>
<!--jmeter组件包-->
<dependency>
<groupId>org.apache.jmeter</groupId>
<artifactId>ApacheJMeter_components</artifactId>
<version>4.0</version>
</dependency>
<!--jmeter Http包-->
<dependency>
<groupId>org.apache.jmeter</groupId>
<artifactId>ApacheJMeter_http</artifactId>
<version>4.0</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
3、演示代码
/**
* @author zhangyuexu
* @date 2021-02-20 21:00
*/
import java.io.File;
import org.apache.jmeter.JMeter;
import org.apache.jmeter.control.Loo

本文介绍了如何脱离JMeter工具,直接使用JMeter内核源码进行压力测试。详细讲解了JMeter的基本组件,包括TestPlan、ThreadGroup、Sampler、Controller和ResultCollector等,并提供了Java调用JMeter进行压力测试的步骤和示例代码。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



