Jmeter执行Java请求
(QQ交流群:577439379)

一、打开Eclipse,创建一个Java工程

  

二、拷贝jmeter所依赖的jar包

  将jmeter中,\lib\ext目录下的ApacheJMeter_core.jar、ApacheJMeter_java.jar两个jar文件,放到工程的libs文件中,并添加到build path目录下。

三、创建一个类,实现被测试的业务

  public class MathTest {

    public int sum(int a,int b)
    {
      return a+b;
    }

   }

四、创建一个执行性能测试Java请求的类,实现JavaSamplerClient接口或继承AbstractJavaSamplerClient,并重写四个方法

   public Arguments getDefaultParameters();设置可用参数及其默认值;
  public void setupTest(JavaSamplerContext arg0);执行初始化工作,每个线程测试前执行一次;
  public SampleResult runTest(JavaSamplerContext arg0);执行业务测试方法,从arg0参数可以获得参数值;
  public void teardownTest(JavaSamplerContext arg0);测试结束时调用;

  具体实现:

  public class JavaSampler extends AbstractJavaSamplerClient {

    public MathTest test = null;
    private String a;
    private String b;
    private String resultData;
    private static long start = 0;
    private static long end = 0;

    //自定义java方法入参
    public Arguments getDefaultParameters(){
      Arguments param = new Arguments();
      param.addArgument("num1", "");
      param.addArgument("num2", "");
      return param;
    }

    //初始化,每个线程执行之前做一些初始化操作
    public void setupTest(JavaSamplerContext arg0){
      test = new MathTest();
      a = arg0.getParameter("num1");
      b = arg0.getParameter("num2");
      start = System.currentTimeMillis();
    }

    //开始测试,arg0,接收参数
    @Override
    public SampleResult runTest(JavaSamplerContext arg0) {
      SampleResult sr = new SampleResult();
      sr.setSamplerData("参数1: "+a+"参数2: "+b);
      sr.sampleStart();//开始计时
      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);
      }
      sr.setSuccessful(true);
      sr.sampleEnd();
      return sr;
    }

    //线程结束时调用
    public void teardownTest(JavaSamplerContext arg0){
      end = System.currentTimeMillis();
    // 总体耗时
      System.err.println("cost time:" + (end - start) + "毫秒");
    }

    // public static void main(String[] args) {
      // Arguments params = new Arguments();
      // params.addArgument("num1", "1");//设置参数,并赋予默认值1
      // params.addArgument("num2", "2");//设置参数,并赋予默认值2
      // JavaSamplerContext arg0 = new JavaSamplerContext(params);
      // JavaSampler test = new JavaSampler();
      // test.setupTest(arg0);
      // test.runTest(arg0);
      // test.teardownTest(arg0);
      // }

    }

五、Export为Runnable Jar File
六、将此jar包放入JMETER_HOME\lib\ext目录
七、以管理员身份打开JMeter
  创建线程组,添加Java Request,选择刚刚导出的jar包

  

  输入参数值,num1和num2的计算数值,添加查看结果树,进行测试,查看结果

  

  查看响应数据:

  

Jmeter执行Java请求的更多相关文章

  1. jmeter 的java请求代码在main方法里面执行

    1.新建一个java请求执行加法类 public class TestDemo { public int Tdemo(int a,int b){ int sum = 0; sum = a+b; ret ...

  2. jmeter之java请求

    通常情况下,推荐使用jmeter之java请求编写一beashell调用java代码(上篇)(推荐)编写Java 请求 有以下优势 脚本易维护 易调试 开发脚本周期短 不过网上扩展java请求文章比较 ...

  3. 使用Jmeter测试java请求

    1.性能测试过程中,有时候开发想对JAVA代码进行性能测试,Jmeter是支持对Java请求进行性能测试,但是需要自己开发.打包好要测试的代码,就能在Java请求中对该java方法进行性能测试2.本文 ...

  4. Jmeter 执行java脚本结束时提示:he JVM should have exitted but did not

    使用jmeter执行java协议测试结束时会提示:he JVM should have exitted but did not ,jmeter2.11以后的可以 通过设置:      jmeteren ...

  5. 转:JMeter进行Java 请求测试

    本文转自:http://blog.csdn.net/xiazdong/article/details/7873767 向原作者致敬,看了他的文章才让我顺利解决了JMeter测试中的问题,万分感谢! 目 ...

  6. 第二篇--Jmeter测试Java请求

    前提:需要准备eclipse作为开发工具,安装jdk,准备完毕,接下来开工喽! 1.新建Java工程BMIrisJNIJarTest,新建lib目录,将Jmeter安装目录下lib/ext包下的Apa ...

  7. Jmeter自定义Java请求,继承AbstractJavaSamplerClient

    首先,使用Eclipse新建一个项目,然后从Jmeter的lib/ext目录下中拷贝ApacheJMeter_java.jar和ApacheJMeter_core.jar两个文件,然后引入这两个JAR ...

  8. jmeter(二十二)jmeter测试Java请求

    目的:对Java程序进行测试 目录 一.核心步骤 二.实例 三.JMeter Java Sampler介绍 四.自带Java Request Sampler 一.核心步骤 1.创建一个Java工程: ...

  9. Jmeter执行java脚本结束时提示:The JVM should have exited but did not.

    使用jmeter对dubbo进行压测时,需要使用jmeter的sampler里的java请求 使用./jmeter.sh -n -t test.jmx -l test.jmx -o -e test后台 ...

随机推荐

  1. Java集合转有类型的数组之toArray(T[] a)

    在java变成中慎用强制类型转换,尽量使用类自带的转换函数或泛型.先看一行代码 错误方法: String[] array= (String[]) list.toArray(); 如果list中存放的是 ...

  2. Sybase中的load table的用法

    Sybase中的load table的用法 用sybase iq作为数据仓库的存储,确实有其独特的特点和优势,但是在数据ETL的时候,如果用insert.update方式,速度太慢,大概是2秒钟左右一 ...

  3. 20145106 《Java程序设计》第1周学习总结

    20145106 <Java程序设计>第1周学习总结 教材学习内容总结 因为我用的是Mac,所以教材内容暂时对我的编译java没有帮助.不过还好我也在同学和自己的帮助学习下初步学会了在Ma ...

  4. 20145326 《Java程序设计》课程总结

    每周读书笔记链接汇总 20145326第1周学习总结 20145326第2周学习总结 20145326第3周学习总结 20145326第4周学习总结 20145326第5周学习总结 20145326第 ...

  5. HBuilder 获取通话记录 (Android)

    代码: Date.prototype.Format = function (fmt) { var o = { , //月份 "d+": this.getDate(), //日 == ...

  6. POJ 3613 Cow Relays(floyd+快速幂)

    http://poj.org/problem?id=3613 题意: 求经过k条路径的最短路径. 思路: 如果看过<矩阵乘法在信息学的应用>这篇论文就会知道 现在我们在邻接矩阵中保存距离, ...

  7. BZOJ 1951 【SDOI2010】 古代猪文

    题目链接:古代猪文 好久没写博客了,这次就先写一篇吧…… 题面好鬼……概括起来就是:给出\(N,G(\leqslant 10^9)\),求:\[G^{\sum_{d|n}\binom{n}{d}} \ ...

  8. 关于浏览器的eventflow(capture and bubble up)

    因为,没有全面的学习javascript,及其事件原理: 全占的课程:4-5 浏览器 Bubble Up 事件模型中 不是很理解它所讲的.网上查找相关知识点.记录中在博客中: 理解了JS的加载 htt ...

  9. PHP------数组和对象相互转化,stdClass Object转array

    数组转JSON PHP json_encode() 用于对变量进行 JSON 编码,该函数如果执行成功返回 JSON 数据,否则返回 FALSE . JSON转数组 PHP json_decode() ...

  10. Linux如何修改命令提示符

    1.什么是命令提示符 命令提示符是CLI(command-line interface,命令行界面)在人机交互的过程中提示用户可以进行命令输入的特殊符号,在Linux中普通用户的prompt为“$”, ...