码迷,mamicode.com
首页 > 编程语言 > 详细

JMeter学习(十七)JMeter测试Java

时间:2014-10-11 19:23:36      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   io   os   ar   java   for   

目的:对Java程序进行测试;


一、核心步骤
1.创建一个Java工程;
2.将JMeter的lib目录下的jar文件添加进此工程的Build Path;
3.创建一个类并实现JavaSamplerClient接口或继承AbstractJavaSamplerClient,并重写:

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

4.Export为Runnable Jar File;
5.将此jar包放入JMETER_HOME\lib\ext目录;
6.以管理员身份打开JMeter;
7.创建线程组、Java Request、查看结果树,进行测试;

 

二、实例

1.在eclipse里面新建一个工程:JavaForJMeter

2.把{Jmeter_home}\lib目录下的所有jar添加进此工程的Build Path;

3.添加类Hello,代码如下:

package com.test.webservice;

public class Hello {
    public String sayHello()
    {
        return "Hello";
    }
    public String sayHelloToPerson(String s)
    {
        if(s == null || s.equals(""))
            s = "nobody";
        return (new StringBuilder()).append("Hello ").append(s).toString();
    }
    public int sum(int a,int b)
    {
        return a+b;
    }
}

 

4.添加类perftest,并继承AbstractJavaSamplerClient,并添加代码如下:

package com.test.webservice;

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;
import com.test.webservice.Hello;

public class perftest extends AbstractJavaSamplerClient {
    private String a;
    private String b;
    /** Holds the result data (shown as Response Data in the Tree display). */
    private String resultData;

    // 这个方法是用来自定义java方法入参的。
    // params.addArgument("num1","");表示入参名字叫num1,默认值为空。
    //设置可用参数及的默认值;
    public Arguments getDefaultParameters() {
        Arguments params = new Arguments();
        params.addArgument("num1", "");
        params.addArgument("num2", "");
        return params;
    }

    //每个线程测试前执行一次,做一些初始化工作;
    public void setupTest(JavaSamplerContext arg0) {
    }

    //开始测试,从arg0参数可以获得参数值;
    public SampleResult runTest(JavaSamplerContext arg0) {
        a = arg0.getParameter("num1");
        b = arg0.getParameter("num2");
        SampleResult sr = new SampleResult();
        try {
            sr.sampleStart();// jmeter 开始统计响应时间标记
            Hello test = new Hello();
            // 通过下面的操作就可以将被测方法的响应输出到Jmeter的察看结果树中的响应数据里面了。
            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);
            }
            // System.out.println(resultData);
            sr.setSuccessful(true);
        } catch (Throwable e) {
            sr.setSuccessful(false);
            e.printStackTrace();
        } finally {
            sr.sampleEnd();// jmeter 结束统计响应时间标记
        }
        return sr;
    }

    //测试结束时调用;
    public void teardownTest(JavaSamplerContext arg0) {
        // System.out.println(end);
        // System.out.println("The cost is"+(end-start)/1000);
    }
    
    // main只是为了调试用,最后打jar包的时候注释掉。
    /*
      public static void main(String[] args) 
      { // TODO Auto-generated method stub
          Arguments params = new Arguments(); 
          params.addArgument("num1", "1");//设置参数,并赋予默认值1 
          params.addArgument("num2", "2");//设置参数,并赋予默认值2
          JavaSamplerContext arg0 = new JavaSamplerContext(params); 
          perftestbbb test = new perftestbbb(); 
          test.setupTest(arg0); 
          test.runTest(arg0);
          test.teardownTest(arg0); 
      }
     */
}

5.Export为Runnable Jar File:hello.jar

6.将此hello.jar包放入JMETER_HOME\lib\ext目录;

7.打开JMeter,添加线程组,添加Java请求,查看结果树。

bubuko.com,布布扣

bubuko.com,布布扣

 

三.讲解一下JMeter用到的类

Arguments

getDefaultParameters() 用于获取界面的参数

SampleResult

runTest(JavaSamplerContext context) 类似于LR的Action

void

setupTest(JavaSamplerContext context) 初始化方法,类似于LR的init和Junit中的setUp()

void

teardownTest(JavaSamplerContext context) 类似于LR的end和Junit中的tearDown()

执行的先后顺序为:getDefaultParameters() --> setupTest(JavaSamplerContext context) --> runTest(JavaSamplerContext context) --> teardownTest(JavaSamplerContext context)
 
常用的方法:
①、addArgument("name", "value")    定义参数
②、sampleStart()    定义事务的开始,类似于LR的lr_start_transaction,和LR一样事务间不要放无关代码
③、sampleEnd()    定义事务的结束,类似于LR的lr_end_transaction
④、setSuccessful(true、false)    设置运行结果的成功或失败,Jmeter统计成功失败的次数,在聚合报告中能够体现。
 

至此,这已讲解完了。

 

JMeter学习(十七)JMeter测试Java

标签:style   blog   http   color   io   os   ar   java   for   

原文地址:http://www.cnblogs.com/yangxia-test/p/4019541.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!