JMeter 中实现发送Java请求
发布日期:2021-05-09 06:38:53 浏览次数:6 分类:博客文章

本文共 3215 字,大约阅读时间需要 10 分钟。

JMeter 中实现发送Java请求

 

1.  步骤1 新建JAVA项目

File -> New -> Java Project

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

 

 

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

  

 

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

 

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

 

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

 

 

点击Finish,返回如下界面

 

 

点击Finish

 

2. 步骤2 新建JAVA

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

 

点击Finish,提交

 

 

3. 步骤3 新建JAVAClass

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

点击Finish,提交

 

再新建一个testDriver JAVA Class

 

4. 步骤4 编写用例类

packagetestpkg;

 

importorg.apache.jmeter.config.Arguments;

importorg.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;

importorg.apache.jmeter.protocol.java.sampler.JavaSamplerContext;

importorg.apache.jmeter.samplers.SampleResult;

 

public class TestClass extends AbstractJavaSamplerClient{

 

privatestatic long start = 0;

privatestatic long end = 0;

privateString id = "0";

 

 

 

@Override

public void setupTest( {

 

// 开始时间

start =System.currentTimeMillis();

}

 

 

@Override

public void teardownTest( {

// 结束时间

end =System.currentTimeMillis();

 

// 总体耗时

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

}

 

 

public Arguments getDefaultParameters() {

 

Arguments args = newArguments();

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

 

returnargs;

}

 

  

  

 

 

@Override

public SampleResult runTest( {

id =arg0.getParameter("id");

booleanif_success = true;//测试结果标记位

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

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

 

try{

//Start

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

 

 

//TODO

System.out.println(id);

 

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

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

   

sr.setDataType(SampleResult.TEXT);// 设置JMeter GUI"取样器结果" Datatype ("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("servererror"); // 设置JMeterGUI "取样器结果" 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);

}

 

returnsr;

}

 

}

 

 

编写测试代码

packagetestpkg;

 

importtestpkg.TestClass;

 

importorg.apache.jmeter.config.Arguments;

importorg.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;

importorg.apache.jmeter.protocol.java.sampler.JavaSamplerContext;

importorg.apache.jmeter.samplers.SampleResult;

 

public classtestDriver {

 

public staticvoid main(String[] args) {

TestClass obj= new TestClass();

 

Argumentsparams = 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控制台输出

 

 

上一篇:JMeter 正则表达式提取器结合ForEach控制器遍历提取变量值
下一篇:JMeter 报告监听器导入.jtl结果文件报错解决方案

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2025年04月21日 01时50分55秒