千家信息网

jmeter怎么编写java请求

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,本篇内容主要讲解"jmeter怎么编写java请求",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"jmeter怎么编写java请求"吧!通常情况下,推荐使用
千家信息网最后更新 2026年11月03日jmeter怎么编写java请求

本篇内容主要讲解"jmeter怎么编写java请求",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"jmeter怎么编写java请求"吧!

通常情况下,推荐使用jmeter编写Java 请求

有以下优势

  • 脚本易维护

  • 易调试

  • 开发脚本周期短

不过网上扩展java请求文章比较多的还是,通过实现org.apache.jmeter.protocol.java.sampler.JavaSamplerClient接口

或是继承AbstractJavaSamplerClient虚类来实现java请求

大致步骤如下:

1. 建立java工程
2. 加载依赖包到java工程环境变量中,ApacheJMeter_core.jar和ApacheJMeter_java.jar编写时需要,调试需要加载jmeter全部依赖包(jmeter_home/lib下所有,实际上不是所有,包比较多,很难辨别)
3. 编写Java Sampler,继承AbstractJavaSamplerClient,并重写如下方法

[java] view plain copy

  1. public Arguments getDefaultParameters();可选,定义可用参数及默认值;

  2. public void setupTest(JavaSamplerContext arg0):可选,测试前执行,做一些初始化工作;

  3. public SampleResult runTest(JavaSamplerContext arg0);必选,实现自定义请求;

  4. public void teardownTest(JavaSamplerContext arg0):可选,测试结束时调用;

4. 打jar包,将包放到jmeter_home/lib/ext/下
5. 记得把所有额外的(自定义协议依赖的,非jmeter的)依赖包放到jmeter环境变量中
6. 重启jmeter,创建java Sampler选择刚定义好的测试类

7. 调整好参数即可开始测试。

编写模板介绍

[java] view plain copy

  1. package com.sampler;

  2. //编写jmeter.sampler插件需加载的包

  3. import org.apache.jmeter.config.Arguments;

  4. import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;

  5. import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;

  6. import org.apache.jmeter.samplers.SampleResult;

  7. //处理异常堆栈

  8. import java.io.PrintWriter;

  9. import java.io.StringWriter;

  10. /**

  11. *

  12. * @author wo niu

  13. * @func test ejb interface

  14. *

  15. * 继承虚类AbstractJavaSamplerClient

  16. */

  17. public class JavaSampler extends AbstractJavaSamplerClient {

  18. // main只是为调试用,最好先调试再打包

  19. //运行前请把jmeter_home/lib下的所有jar包加载到IDE工具环境变量

  20. public static void main(String[] args)

  21. {

  22. Arguments args0 = new Arguments();

  23. args0.addArgument("parm_1","val_1");

  24. args0.addArgument("parm_2","val_2");

  25. args0.addArgument("parm_N","val_N");

  26. JavaSampler test = new JavaSampler();

  27. JavaSamplerContext context = new JavaSamplerContext(args0);

  28. test.setupTest(context);

  29. test.runTest(context);

  30. test.teardownTest(context);

  31. }

  32. /**

  33. * 实现 runTest(JavaSamplerContext context)方法

  34. * runTest()具体实施测试动作

  35. */

  36. public SampleResult runTest(JavaSamplerContext context) {

  37. /*

  38. * SampleResult只能定义为局部变量,避免出现多线程安全问题

  39. * 网上一些帖子,定义为全域变量,这种做法是错误的

  40. */

  41. SampleResult results = new SampleResult();

  42. //默认请求成功

  43. results.setSuccessful(true);

  44. results.sampleStart(); //记录响应时间开始

  45. try{

  46. //动态变量从context中读取:

  47. // String key = context.getParameter("key");

  48. //TO-DO ejb接口调用

  49. if(false){ //失败时处理

  50. results.setSuccessful(false);

  51. results.setResponseData("响应数据","utf8");

  52. }

  53. }catch(Throwable e){

  54. e.printStackTrace();

  55. results.setSuccessful(false);

  56. //处理异常堆栈为String,只有String才能回写响应数据

  57. results.setResponseData(toStringStackTrace(e),"utf8");

  58. }

  59. results.sampleEnd(); //记录响应时间结束

  60. return results;

  61. }

  62. /**

  63. * 测试开始时调用,初始化

  64. */

  65. public void setupTest(JavaSamplerContext context){

  66. }

  67. /**

  68. * 测试结束时调用

  69. */

  70. public void teardownTest(JavaSamplerContext context){

  71. }

  72. /**

  73. * 定义默认参数

  74. */

  75. @Override

  76. public Arguments getDefaultParameters() {

  77. Arguments args = new Arguments();

  78. /*

  79. * test data

  80. */

  81. args.addArgument("parm_1","val_1");

  82. args.addArgument("parm_2","val_2");

  83. args.addArgument("parm_N","val_N");

  84. return args;

  85. }

  86. /**

  87. * 处理异常堆栈为String,只有String才能回写响应数据

  88. * @param e

  89. * @return

  90. */

  91. private String toStringStackTrace(Throwable e){

  92. String exception = null;

  93. try {

  94. StringWriter sw = new StringWriter();

  95. PrintWriter pw = new PrintWriter(sw);

  96. e.printStackTrace(pw);

  97. exception = sw.toString();

  98. pw.close();

  99. sw.close();

  100. } catch (Exception e1) {

  101. e1.printStackTrace();

  102. }

  103. return exception;

  104. }

  105. }

到此,相信大家对"jmeter怎么编写java请求"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

测试 变量 处理 参数 堆栈 数据 方法 时调 环境 内容 只有 实际 工程 接口 时间 脚本 学习 实用 更深 安全 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 百单网互联网科技有限公司怎么样 湖南永感互联网科技有限公司 涨乐互联网科技 深圳互联网络科技有限公司 极限挑战互联网科技 万达互联网科技 佰商互联网科技有限公司 中国互联网金融科技基金 顺网科技2021年互联网排名 宁夏科技产业互联网案例 中国科技创新与世界互联网大会 徐州市互联网科技有限公司 黑云互联网科技有限公司 启辰互联网科技 浙南科技城互联网大厦招聘 互联网与数字科技关系 全球科技与互联网公司市值变化 互联网界的黑科技 平安好医生打造互联网科技医疗 现代科技的标志之一的互联网 深圳市人人互联网科技有限公司 互联网科技卖菜 青岛互联网科技公司 湖南一路畅行互联网科技 注册互联网科技公司经营范围大全 中国互联网十大科技股排名 996高科技互联网公司 长沙茂晟互联网科技有限公司 银行科技岗属于互联网吗 梅州GM互联网络科技有限公司
0