Jmeter发送Java请求

本文介绍如何使用JMeter进行Java采样器的开发与测试,包括创建Java工程、配置依赖、编写测试类、打包部署及运行测试等步骤。

 1、创建一个Java工程

2、把Jmeter的lib\ext目录下的ApacheJMeter_java.jar、ApacheJMeter_core.jar文件添加进该项目的Build Path

3、创建一个test包

4、创建一个Hello类

5、Hello类代码如下:

package test;

public class Hello {
public String sayHello()
{
return "Hello";
}
public int sum(int a,int b)
{
return a+b;
}
}

6、添加类Perftest,并继承AbstractJavaSamplerClient,并添加代码如下:

package test;

import org.apache.jmeter.config.Arguments;
import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;
import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;
import org.apache.jmeter.samplers.SampleResult;
import test.Hello;

public class Perftest extends AbstractJavaSamplerClient {
private String a;
private String b;

private String resultData;

// 这个方法是用来自定义java方法入参的。
// params.addArgument("num1","");表示入参名字叫num1,默认值为空。
// 设置可用参数及的默认值;
public Arguments getDefaultParameters() {
Arguments params = new Arguments();
params.addArgument("num1", "");//未设默认值
params.addArgument("num2", "");
return params;
}

// 每个线程测试前执行一次,做一些初始化工作;
public void setupTest(JavaSamplerContext arg0) {
}

// 开始测试,从arg0参数可以获得参数值;
public SampleResult runTest(JavaSamplerContext arg0) {
a = arg0.getParameter("num1");
b = arg0.getParameter("num2");
SampleResult sr = new SampleResult();
sr.setSampleLabel("Java求两个数和");

try {
sr.sampleStart();// jmeter 开始统计响应时间标记
Hello test = new Hello();
// 通过下面的操作就可以将被测方法的响应输出到Jmeter的察看结果树中的响应数据里面了。
resultData = String.valueOf(test.sum(Integer.parseInt(a), Integer
.parseInt(b)));
if (resultData != null && resultData.length() > 0) {
sr.setResponseData("两个数相加结果是:"+resultData, null);
sr.setDataType(SampleResult.TEXT);
}
System.out.println(resultData);
sr.setSuccessful(true);
} catch (Throwable e) {
sr.setSuccessful(false);
e.printStackTrace();
} finally {
sr.sampleEnd();// jmeter 结束统计响应时间标记
}
return sr;
}

// 测试结束时调用;
public void teardownTest(JavaSamplerContext arg0) {
//System.out.println(end);
// System.out.println("The cost is"+(end-start)/1000);
}

}

7、使用eclipse打成jar包,选中包名test-->Export-->选择JAR file,然后选择输入路径完成就OK了

 

8、将此jar包放入Jmeter的\lib\ext目录下

9、打开Jmeter创建线程组、Java Request、查看结果树(如果Jmeter已经打开,需要重新打开)

输入测试的值

10、执行结果

 

转载于:https://www.cnblogs.com/xiaoxitest/p/6171379.html

### 如何使用JMeterJava后端接口进行压力测试 Apache JMeter 是一款广泛使用的开源工具,专为测试Web应用及后端服务的性能而设计。它可以模拟高并发用户请求,从而帮助开发人员评估系统的稳定性和响应能力。在Java后端接口的压力测试场景中,JMeter能够有效地模拟大量客户端访问,检测系统在高负载下的表现[^2]。 #### 1. 准备工作 - **下载与安装**:首先从官方网站下载最新版本的JMeter,并按照官方文档完成安装过程。 - **环境配置**:确保已经正确设置了JDK环境变量,因为JMeter依赖于Java运行时环境来执行测试任务[^1]。 - **修改字符编码**:如果目标服务器使用非UTF-8编码,则需要调整`jmeter.properties`文件中的`language`属性以匹配服务器端设置[^1]。 #### 2. 创建测试计划 - **线程组(Thread Group)**:这是所有测试的基础组件之一,用来定义虚拟用户的数量、启动周期以及持续时间等参数。 - **取样器(Sampler)**:添加一个HTTP请求取样器,指定要测试的具体URL路径、方法类型(GET/POST等)、请求头信息以及其他必要参数。 - **配置元件(Config Element)**:如HTTP Cookie管理器用于处理会话状态;HTTP头管理器则允许自定义发送给服务器的所有HTTP头部内容。 - **断言(Assertion)**:通过添加响应代码断言或响应数据断言来验证返回结果是否符合预期。 - **监听器(Listener)**:例如“查看结果树”可以帮助直观地看到每个请求的结果详情,“聚合报告”则提供了关于整个测试过程的关键统计数据[^3]。 #### 3. 执行压力测试 - 在构建好完整的测试计划之后,点击工具栏上的启动按钮开始执行测试。 - 可以实时监控各种监听器提供的反馈信息,包括但不限于平均响应时间、吞吐量、错误率等指标。 - 根据实际需求逐步增加线程数,观察随着负载增长系统的表现变化情况。 #### 4. 分析测试结果 - 利用JMeter内置的各种图表和表格形式的数据展示功能,分析不同阶段下应用程序的行为特征。 - 特别关注那些可能导致性能瓶颈的地方,比如某些特定操作耗时显著增长或者出现频繁失败的情况。 - 结合日志文件和其他监控工具收集的信息进一步深入排查问题根源所在。 #### 示例:创建简单的HTTP GET请求测试 ```bash Test Plan └── Thread Group ├── Number of Threads (users): 100 ├── Ramp-Up period (seconds): 10 ├── Loop Count: 5 └── HTTP Request ├── Protocol: http ├── Server Name or IP: example.com ├── Port Number: 80 ├── HTTP Request method: GET └── Path: /api/test ``` 此示例展示了如何构造一个针对`http://example.com/api/test`端点的基本GET请求测试方案,其中包含了100个并发用户,在10秒内全部启动,并且每个用户都会重复执行5次请求。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值