专栏首页授客的专栏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 控制台输出

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • JMeter JMeter远程分布式联机性能测试

    当一个JMeter客户端因网络限制等因素,无法模拟足够的用户对服务器施压时,需要用到JMeter分布式测试:用一台控制机,控制多台远程负载机,同时对服务器施压...

    授客
  • tsung HTTP协议统计报告分析

    注:如想获取“CentOS 操作系统下搭建tsung性能测试环境 最终版”,欢迎加Q Q 群7156436获取

    授客
  • Python 标准类库 - 因特网协议与支持之socketserver

    1 通过子类化BaseRequestHandler 类,创建一个请求处理程序,并且重写handle()方法,该方法将处理接收到的请求

    授客
  • 20分钟掌握sqlite库的使用

    sqlite库是一个轻量级的数据库引擎,功能齐全,广泛应用于客户端产品(如Chrome浏览器)。

    gaigai
  • [pytorch] 图像识别之mixup/cutout/Margin loss....简单实现

    本人kaggle分享链接:https://www.kaggle.com/c/bengaliai-cv19/discussion/128592

    MachineLP
  • 图形数据库之Neo4j核心概念介绍(二)

    我是攻城师
  • gin框架之静态资源服务

    上传成功后,图片的访问地址http://127.0.0.1:8080/upload/2377654-3266b552b19aeb26.png

    大话swift
  • 数据结构(八)--平衡二叉树

    出现背景 前文已经研究过普通的二叉树, 为什么要用二叉树呢?因为二叉树的结构可以实现二分法查找的效果。

    fanfan
  • 如何把MP4视频压缩到最小,热门视频压缩软件推荐

    如何把MP4视频压缩到最小?这是很多人在下载过视频之后,发现视频比较大才会考虑的问题,那么想要将视频压缩变小怎么操作呢?今天就来给大家分享一个热门视频软件压缩的...

    高效办公
  • chip_seq质量评估之FRiP Score

    chip_seq是研究转录因子结合,组蛋白修饰的利器,这项技术虽然经过了很多年的发展,但是由于不同抗体的特异性,不同样本处理的复杂性,如何保证chip数据的高质...

    生信修炼手册

扫码关注云+社区

领取腾讯云代金券