JMeter 中实现发送Java请求

简介: JMeter 中实现发送Java请求

JMeter 中实现发送Java请求

 

1. 步骤1 新建JAVA项目

File -> New -> Java Project

如上图,填写Project Name,然后Next,打开以Java Settings界面

 

如上图,切换到Libraries标签页->选择Add Library -> User Libray,点击Next按钮,打开以下User Libraries界面

 

 

如上图,点击 New ,弹出窗中输入自定义类库名称

 

选择定义类库(例中为JMeter Lib),然后点击Add JARS按钮,添加$JMETER_HOME/lib目录下(包含子目录下)jar(为了避免包之间的依赖性问题,可以考虑全部添加进来)

 

完成后,点击OK按钮,返回如下界面

 

 

点击Finish,返回如下界面

 

 

点击Finish

 

2. 步骤2 新建JAVA

右键src目录-> New -> Package,打开如下界面

 

点击Finish,提交

 

 

3. 步骤3 新建JAVA Class

右键包名 -> New -> Class,打开如下界面

点击Finish,提交

 

再新建一个testDriver JAVA Class

 

4. 步骤4 编写用例类

package testpkg;

 

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;

 

public class TestClass extends AbstractJavaSamplerClient {

 

private static long start = 0;

private static long end = 0;

private String id = "0";

 

 

 

@Override

public void setupTest( {

 

// 开始时间

start = System.currentTimeMillis();

}

 

 

@Override

public void teardownTest( {

// 结束时间

end = System.currentTimeMillis();

 

// 总体耗时

System.err.println("cost time:" + (end - start) / 1000);

}

 

 

public Arguments getDefaultParameters() {

 

Arguments args = new Arguments();

args.addArgument("id", "123456789"); // 添加默认参数及对应值  //参数名称:id  参数值:123456789

 

return args;

}

 

 

 

 

 

@Override

public SampleResult runTest( {

id = arg0.getParameter("id");

boolean if_success = true;//测试结果标记位

SampleResult sr = new SampleResult(); // 为避免多线程问题,设置sr为局部变量

sr.setSampleLabel(";         // 设置采样标签,对应GUI聚合报告里的Label

 

try {

//Start

sr.sampleStart(); // 开始统计响应时间

 

 

// TODO

System.out.println(id);

 

//sr.setResponseData("data return by server", "");  //第一个参数 设置JMeter GUI "查看结果树"请求对应的"响应数据" //执行压测前 建议注释掉

sr.setResponseData("data return by server", "utf-8"); //第二个参数 为编码, 设置JMeter GUI "取样器结果"  DataEncoding: utf-8  //第二个参数为"",则表示默认为GBK编码

 

sr.setDataType(SampleResult.TEXT); // 设置JMeter GUI "取样器结果" Data type ("text"|"bin"|""):text

sr.setResponseMessageOK(); // 设置JMeter GUI "取样器结果"  Response message: OK

   sr.setResponseCodeOK(); // 设置JMeter GUI "取样器结果" Response code: 200

   if_success = true;

} catch (Exception e) {

if_success = false; // 请求失败

sr.setResponseMessage("server error"); // 设置JMeter GUI "取样器结果"  Response message: server error

   sr.setResponseCode("500"); // 设置JMeter GUI "取样器结果" Response code: 500

e.printStackTrace();

} finally {

// End

sr.sampleEnd();

// setSuccessful 设置请求结果为true--请求成功,JMeter查看结果树中会显示请求成功    false--请求失败,JMeter查看结果树中会显示请求失败

sr.setSuccessful(if_success);

}

 

return sr;

}

 

}

 

 

编写测试代码

package testpkg;

 

import testpkg.TestClass;

 

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;

 

public class testDriver {

 

public static void main(String[] args) {

TestClass obj = new TestClass();

 

Arguments params = new Arguments();

params.addArgument("id", "1234567890");

JavaSamplerContext arg0 = new ;

 

obj.runTest(arg0);

 

}

 

}

 

5. 步骤5 导出jar文件

File -> Export -> Java -> JAR file,打开如下界面

 

如图,点击Next按钮,打开如下界面

 

 

如上图,选择要导出的类,然后选择JAR file文件保存路径,最后点击Finish即可。把导出的jar放入JMeter_home/lib/ext目录下,重启JMeter

 

 

6. 步骤6 新建JMeter Java请求

右键线程组添加->Sampler -> Java请求

 

 

如上,选择要测试的类名,设置测试所需要参数(和其它参数一样,可以做成参数化)

 

运行,查看结果

 

 

Jmeter 控制台输出

 

目录
相关文章
|
10月前
|
JSON Java 数据格式
java操作http请求针对不同提交方式(application/json和application/x-www-form-urlencoded)
java操作http请求针对不同提交方式(application/json和application/x-www-form-urlencoded)
218 25
java操作http请求针对不同提交方式(application/json和application/x-www-form-urlencoded)
|
7月前
|
运维 Cloud Native Java
postman发起post请求遇到报错:java.io.FileNotFoundException (文件名、目录名或卷标语法不正确。)
遇到bug报错,多猜可能的原因,控制变量反复测试,直至找到问题的关键,然后再思考如何解决或者回避。 博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来
|
Java
Java aop 如何获取请求头里的token
【8月更文挑战第13天】Java aop 如何获取请求头里的token
343 0
|
10月前
|
安全 Java API
java如何请求接口然后终止某个线程
通过本文的介绍,您应该能够理解如何在Java中请求接口并根据返回结果终止某个线程。合理使用标志位或 `interrupt`方法可以确保线程的安全终止,而处理好网络请求中的各种异常情况,可以提高程序的稳定性和可靠性。
160 6
|
JSON Java 数据格式
java操作http请求针对不同提交方式(application/json和application/x-www-form-urlencoded)
java操作http请求针对不同提交方式(application/json和application/x-www-form-urlencoded)
368 1
|
JSON 前端开发 JavaScript
java中post请求调用下载文件接口浏览器未弹窗而是返回一堆json,为啥
客户端调接口需要返回另存为弹窗,下载文件,但是遇到的问题是接口调用成功且不报错,浏览器F12查看居然返回一堆json,而没有另存为弹窗; > 正确的效果应该是:接口调用成功且浏览器F12不返回任何json,而是弹窗另存为窗口,直接保存文件即可。
454 2
|
12月前
|
小程序 Java
小程序通过get请求提交数据到java后台
小程序通过get请求提交数据到java后台
96 0
|
数据采集 Web App开发 Java
Java爬虫安全策略:防止TikTok音频抓取过程中的请求被拦截
Java爬虫安全策略:防止TikTok音频抓取过程中的请求被拦截
|
数据采集 人工智能 监控
【Azure 应用程序见解】Application Insights Java Agent 3.1.0的使用实验,通过修改单个URL的采样率来减少请求及依赖项的数据采集
【Azure 应用程序见解】Application Insights Java Agent 3.1.0的使用实验,通过修改单个URL的采样率来减少请求及依赖项的数据采集
142 0
|
存储 安全 Java
Java面试题:假设你正在开发一个Java后端服务,该服务需要处理高并发的用户请求,并且对内存使用效率有严格的要求,在多线程环境下,如何确保共享资源的线程安全?
Java面试题:假设你正在开发一个Java后端服务,该服务需要处理高并发的用户请求,并且对内存使用效率有严格的要求,在多线程环境下,如何确保共享资源的线程安全?
191 0

热门文章

最新文章