首先本人準備測試的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/