天天看點

使用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/

繼續閱讀