JMeter 中實現發送Java請求
1. 步驟1 新建JAVA項目
File -> New -> Java Project
如上圖,填寫Project Name,然后Next,打開以Java Settings界面
如上圖,切換到Libraries標簽頁 -> 選擇Add Library -> User Libray,點擊Next 按鈕,打開以下 User Libraries界面
如上圖,點擊 New ,彈出窗中輸入自定義類庫名稱
選擇定義類庫(例中為 JMeter Lib),然后點擊 Add JARS 按鈕,添加$JMETER_HOME/lib 目錄下(包含子目錄下)的jar包(為了避免包之間的依賴性問題,可以考慮全部添加進來)
完成后,點擊OK按鈕,返回如下界面
點擊Finish,返回如下界面
點擊Finish
2. 步驟2 新建JAVA包
右鍵src目錄 -> New -> Package,打開如下界面
點擊Finish,提交
3. 步驟3 新建JAVA Class
右鍵 包名 -> New -> Class,打開如下界面
點擊Finish,提交
再新建一個testDriver JAVA Class
4. 步驟4 編寫用例類
package testpkg;
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;
public class TestClass extends AbstractJavaSamplerClient {
private static long start = 0;
private static long end = 0;
private String id = "0";
@Override
public void setupTest( {
// 開始時間
start = System.currentTimeMillis();
}
@Override
public void teardownTest( {
// 結束時間
end = System.currentTimeMillis();
// 總體耗時
System.err.println("cost time:" + (end - start) / 1000);
}
public Arguments getDefaultParameters() {
Arguments args = new Arguments();
args.addArgument("id", "123456789"); // 添加默認參數及對應值 //參數名稱:id 參數值:123456789
return args;
}
@Override
public SampleResult runTest( {
id = arg0.getParameter("id");
boolean if_success = true;//測試結果標記位
SampleResult sr = new SampleResult(); // 為避免多線程問題,設置sr為局部變量
sr.setSampleLabel("; // 設置采樣標簽,對應GUI 聚合報告里的Label值
try {
//Start
sr.sampleStart(); // 開始統計響應時間
// TODO
System.out.println(id);
//sr.setResponseData("data return by server", ""); //第一個參數 設置JMeter GUI "查看結果樹" 請求對應的"響應數據" // 執行壓測前 建議注釋掉
sr.setResponseData("data return by server", "utf-8"); //第二個參數 為編碼, 設置JMeter GUI "取樣器結果" DataEncoding: utf-8 // 第二個參數為 "", 則表示默認為 GBK編碼
sr.setDataType(SampleResult.TEXT); // 設置JMeter GUI "取樣器結果" Data type ("text"|"bin"|""):text
sr.setResponseMessageOK(); // 設置JMeter GUI "取樣器結果" Response message: OK
sr.setResponseCodeOK(); // 設置JMeter GUI "取樣器結果" Response code: 200
if_success = true;
} catch (Exception e) {
if_success = false; // 請求失敗
sr.setResponseMessage("server error"); // 設置JMeter GUI "取樣器結果" Response message: server error
sr.setResponseCode("500"); // 設置JMeter GUI "取樣器結果" Response code: 500
e.printStackTrace();
} finally {
// End
sr.sampleEnd();
// setSuccessful 設置請求結果為 true--請求成功,JMeter查看結果樹中會顯示請求成功 false--請求失敗,JMeter查看結果樹中會顯示請求失敗
sr.setSuccessful(if_success);
}
return sr;
}
}
編寫測試代碼
package testpkg;
import testpkg.TestClass;
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;
public class testDriver {
public static void main(String[] args) {
TestClass obj = new TestClass();
Arguments params = new Arguments();
params.addArgument("id", "1234567890");
JavaSamplerContext arg0 = new ;
obj.runTest(arg0);
}
}
5. 步驟5 導出jar文件
File -> Export -> Java -> JAR file,打開如下界面
如圖,點擊Next按鈕,打開如下界面
如上圖,選擇要導出的類,然后選擇JAR file文件保存路徑,最后點擊Finish即可。把導出的jar放入JMeter_home/lib/ext目錄下,重啟JMeter
6. 步驟6 新建JMeter Java請求
右鍵線程組 添加->Sampler -> Java請求
如上,選擇要測試的類名,設置測試所需要參數(和其它參數一樣,可以做成參數化)
運行,查看結果
Jmeter 控制台輸出