使用jmeter進行dubbo協議的測試方法
阿新 • • 發佈:2018-01-10
統計 註冊中心 自己 get 分享圖片 目的 響應 初始化 png
jmeter腳本是作為dubbo消費者
以下為工程主要代碼:
package com.one; 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.alibaba.dubbo.config.ApplicationConfig;import com.alibaba.dubbo.config.ReferenceConfig; import com.unj.dubbotest.provider.DemoService; public class TestConsumer extends AbstractJavaSamplerClient { private static String label = "consumer"; private String ID; //dubbo服務地址 private String URL; private String VERSION ;private String SERVICE_NAME; private Object object; public void init() { // 當前應用配置 ApplicationConfig application = new ApplicationConfig(); application.setName("hehe_consumer"); // 註意:ReferenceConfig為重對象,內部封裝了與註冊中心的連接,以及與服務提供方的連接 // 引用遠程服務 ReferenceConfig reference = newReferenceConfig(); // 此實例很重,封裝了與註冊中心的連接以及與提供者的連接,請自行緩存,否則可能造成內存和連接泄漏 reference.setApplication(application); reference.setId(ID); reference.setVersion(VERSION); //dubbo服務名 reference.setInterface(SERVICE_NAME); //dubboip地址 reference.setUrl(URL); // 和本地bean一樣使用xxxService object = reference.get(); // 註意:此代理對象內部封裝了所有通訊細節,對象較重,請緩存復用\ } public void setupTest(){ //定義測試初始值,setupTest只在測試開始前使用 System.out.println("setupTest"); } @Override public SampleResult runTest(JavaSamplerContext arg0) { SampleResult sr = new SampleResult(); ; try { //獲取參數 ID = arg0.getParameter("ID"); URL = arg0.getParameter("URL"); VERSION = arg0.getParameter("VERSION"); SERVICE_NAME = arg0.getParameter("SERVICE_NAME"); //dubbo初始化 init(); //jmeter結果對象 sr.setSampleLabel(label); sr.sampleStart(); DemoService demoService = (DemoService)object; String hello = demoService.sayHello("tom"); sr.setResponseCode("00000"); sr.setResponseMessage(hello); sr.setSuccessful(true); sr.sampleEnd(); // jmeter 結束統計響應時間標記 } catch (Exception e) { e.printStackTrace(); sr.setResponseCode("999"); sr.setResponseMessage(e.getMessage()); sr.setSuccessful(false); } return sr; } public Arguments getDefaultParameters(){ //參數定義,顯示在前臺,也可以不定義 Arguments params = new Arguments(); params.addArgument("ID", ""); params.addArgument("URL", ""); params.addArgument("VERSION", ""); params.addArgument("SERVICE_NAME", ""); return params; } public void teardownTest(JavaSamplerContext arg0){ super.teardownTest(arg0); } }
第一步:右擊工程,點擊Export標簽,選擇java文件夾,點擊【JAR file】
第二步:輸入JAR file 文件路徑,點擊【Finish】按鈕
第三步:導致的jar放置../apache-jmeter-2.13libext目錄下
jmeter使用
第一步:打開Jmeter軟件
新建線程組
第二步:新建一個Java請求,選擇自己編寫的測試類,輸入參數
第一個參數:這個參數沒有特定的規定,名字取得有意義一些,比如:ID
第二個參數:輸入dubbo的服務地址:dubbo://127.0.0.1:20880(是自己項目的具體情況)
第三個參數:輸入dubbo的版本號:1.0.0
第四個參數:輸入dubbo服務名稱:com.unj.dubbotest.provider.DemoService
第三步:新建一個監聽器
第四步:Jmeter導入依賴包,(包的目錄是在工程(consumer)的lib下)
點擊測試計劃,右下方點擊【瀏覽】按鈕,選擇工程下的lib目錄,重啟Jmeter
第五步:執行Jmeter,查看結果
使用jmeter進行dubbo協議的測試方法