Jmeter開發dubbo協議指令碼
2)、指令碼說明。參考示例指令碼:acc_1_09_QueryCustRiskSurveyFacade.java
package acc_interface;
import java.io.PrintStream;
import org.apache.jmeter.config.Arguments;
import org.apache.jmeter.protocol.java.sampler.JavaSamplerClient;
import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;
import org.apache.jmeter.samplers.SampleResult;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.howbuy.common.facade.BaseResponse;
//引入該指令碼需要的測試類
import com.howbuy.acccenter.facade.query.querycustlastlogin.QueryCustLastLoginFacade;
import com.howbuy.acccenter.facade.query.querycustlastlogin.QueryCustLastLoginRequest;
public class acc_1_07_QueryCustLastLoginRequest
implements JavaSamplerClient
{
static ClassPathXmlApplicationContext context;
public Arguments getDefaultParameters()
{
Arguments params = new Arguments();
//介面輸入引數化
params.addArgument("DisCode", "HB000A001");
params.addArgument("TxAcctNo", "20000023");
params.addArgument("logs", "false");
return params;
}
public SampleResult runTest(JavaSamplerContext arg0) {
SampleResult result = new SampleResult();
try
{
result.sampleStart();
context.start();
//獲取Spring中定義的Bean例項 byid(xinggong-search-dubbo-consumber.xml)
QueryCustLastLoginFacade qtcq = (QueryCustLastLoginFacade)context.
getBean("queryCustLastLoginFacade");
//new一個請求物件
QueryCustLastLoginRequest request = new QueryCustLastLoginRequest();
//設定請求引數
request.setDisCode(arg0.getParameter("DisCode"));
request.setTxAcctNo(arg0.getParameter("TxAcctNo"));
//獲取響應訊息
BaseResponse response = qtcq.execute(request);
if (arg0.getParameter("logs").equals("true")) {
System.out.println(arg0.getParameter("DisCode"));
System.out.println(response.getReturnCode());
System.out.println(response.getDescription());
}
//斷言
if (response.getReturnCode().equals("0000000"))
result.setSuccessful(true);
else {
result.setSuccessful(false);
}
}
catch (Exception e)
{
System.out.println("=======================Exception Start=======================");
System.out.println("Exception raise!!!");
System.out.println(e.getMessage());
result.setSuccessful(false);
System.out.println("=======================Exception End=======================");
} finally {
result.sampleEnd();
}
return result;
}
public void setupTest(JavaSamplerContext arg0)
{
context= new ClassPathXmlApplicationContext(
new String[] { "xinggong-search-dubbo-consumber.xml" });
}
public void teardownTest(JavaSamplerContext arg0)
{
}
public static void main(String[] args)
{
}
}
說明:黃色底的部分需要根據各介面的實現進行修改,其餘部分屬於框架類部分,基本不需要修改,感興趣的同學請自行學習。
關於介面的具體實現,可以參考《xx專案介面文件.doc》和開發寫的單元測試指令碼。