天天看点

使用Jmeter测试java requst

  首先本人准备测试的jar包已经准备好了叫Hello.jar,源代码如下:

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;

  一、在eclipse(别的也可以)里面新建一个工程,把{Jmeter_home}\lib目录下的所有jar

  (根据情况其实可以只用导入以下几个:ApacheJmeter_core.jar、Apache_Jmeter_java.jar、jorphan.jar、logkit-2.0.jar、avalon-framwork-4.1.4.jar)和被测的jar(包括被测试的方法需要用到的所有第三方jar)都导入到classpath。

 二、编写测试类

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 perftestbbb 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) {

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

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);

}*/

  三、将测试类打成jar包放入{Jmeter_home}\lib\ext目录下,同时将被测试的jar包及被测试的方法需要用到的所有第三方jar都放入{Jmeter_home}\lib目录下。

  四、重新打开Jmeter,添加sampler-java request,选择测试类。

  其它的就参照常规做法即可。

最新内容请见作者的GitHub页:http://qaseven.github.io/

继续阅读