【基于jemter的二次开发-java Request请求】压测平台解决方案

本文介绍了如何基于JMeter进行二次开发,特别是在构建压测平台时,通过Java代码调用JMeter进行性能测试。详细讲解了JMeter的基本组件,如TestPlan、ThreadGroup和Sampler,并探讨了Java Request的使用。同时,文章提到了JMeter调用的五种方式,重点展示了Java调用的步骤和代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通常,我们只是使用jemter的GUI做压测,如果希望将jemter作为底层驱动,做一个压测平台时,需要通过java代码调用jemter,同时采集器使用java Request,当然还支持其他的采集器,比如http。

我们这里只讲解使用到的一些组件。而其他组件可以到Jmeter的官网了解(https://jmeter.apache.org/),在Jmeter下每个组件都是节点的方式进行配置。如我们在图形化界面中,都会有一个TestPlan的根节点,其他控件都添加在根节点下。

Jmeter基本组件简介

  1. TestPlan:测试计划,每一个测试都为一个测试计划。
  2. ThreadGroup:是一个测试计划的开始。所有的controller、sampler必须在线程组下。不过有一些特许的控件如Listeners可以直接在TestPlan下。
  3. sampler:采样器,也就是我们各种性能测试和负载测试的收集器。如:http采样器:HTTPSampler等
  4. Controller:主要用于压力测试逻辑的处理,如我们这里使用了LoopController进行控制线程的循环次数,是永久还是循环压力测试多次。

 

Jmeter的调用方式

调用Jmeter有5种方式:


一、导入Jmeter的包

<dependency>
 <groupId>org.apache.jmeter</groupId>
 <artifactId>ApacheJMeter_core</artifactId>
 <version>5.0</version>
</dependency>
<!--jmeter组件包-->
<dependency>
 <groupId>org.apache.jmeter</groupId>
 <artifactId>ApacheJMeter_components</artifactId>
 <version>5.0</version>
</dependency>
<!--jmeter Http包-->
<dependency>
 <groupId>org.apache.jmeter</groupId>
 <artifactId>ApacheJMeter_http</artifactId>
 <version>5.0</version>
</dependency>
<dependency>
 <groupId>org.apache.jmeter</groupId>
 <artifactId>ApacheJMeter_java</artifactId>
 <version>5.0</version>
</dependency>
 

二、下载jemter5.0,放在一个位置,用于java-request采集器获取jar

三、演示代码 - 通过java调用jemter并使用java 采集器

package com.yunzhanghu.yzh_autotest.core;
 
import org.apache.jmeter.JMeter;
import org.apache.jmeter.config.Arguments;
import org.apache.jmeter.control.LoopController;
import org.apache.jmeter.engine.StandardJMeterEngine;
import org.apache.jmeter.protocol.http.control.HeaderManager;
import org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy;
import org.apache.jmeter.protocol.java.sampler.JavaSampler;
import org.apache.jmeter.reporters.ResultCollector;
import org.apache.jmeter.reporters.Summariser;
import org.apache.jmeter.save.SaveService;
import org.apache.jmeter.testelement.TestElement;
import org.apache.jmeter.testelement.TestPlan;
import org.apache.jmeter.threads.ThreadGroup;
import org.apache.jmeter.util.JMeterUtils;
import org.apache.jorphan.collections.HashTree;
 
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.List;
import java.util.Map;
 
import static com.yunzhanghu.yzh_autotest.common.MysqlUtils.exeSqlApi;
import static com.yunzhanghu.yzh_autotest.common.ParmUtils.getResourceHost;
 
public class TestPlanLauncher {
    public
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值