使用jmeter内核源码压测

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

先说本质,这种方式本质上是脱离了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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值