????????????????
????1???????????“??????”????????->???->Threads(Users)->????飻
????2??????и????????"?????"????????->???->Sampler->Java????
????3??????и????????"Java????"????????->???->??????->?????棻
????4?????????????????????"?????"?????????????????????????????
????5????????????"????"->??????????У???"??????"??????????
????Tips:
????1.????"Java????"?????δ????????????????? ????????????????????JMeter??????? ??α??????Jar????? $?????/lib/ext/ ?£? ????????JMeter??
????2.???????java??????????????????????????????????java?汾??????????jmeter?????java?汾????1.6?????????????????java??java?汾?????jmeter????java?汾????£????????jmeter??????????α???jmeter??
??????????????jmeter????dubboЭ??????
package com.pingan;
import java.util.HashMap;
import java.util.Map;
import java.util.Random;
import org.apache.jmeter.config.Arguments;
importorg.apache.jmeter.protocol.java.sampler.JavaSamplerClient;
importorg.apache.jmeter.protocol.java.sampler.JavaSamplerContext;
importorg.apache.jmeter.samplers.SampleResult;
importcom.alibaba.dubbo.config.ApplicationConfig;
importcom.alibaba.dubbo.config.ReferenceConfig;
import com.alibaba.dubbo.config.RegistryConfig;
importcom.alibaba.dubbo.rpc.service.GenericService;
import com.paic.pafa.ac.dubbo.GenericParam;
importcom.paic.pafa.ac.dubbo.GenericResult;
public class DubboClient implementsJavaSamplerClient {
publicstatic int j = 0;
publicstatic int j1 = 0;
publicstatic int p= 0;
GenericServicegenericService = null;
//publicDubboClient() {
//System.out.println("gouzao");
//run();
//System.out.println("finish");
//
//}
publicSampleResult runTest(JavaSamplerContext jsc) {
SampleResultsampleResult = new SampleResult();
GenericParamparam = new GenericParam();
param.setParams(getParams());
try{
sampleResult.sampleStart();
GenericResultresult = (GenericResult) genericService.$invoke("anymethod"??
newString[] { "com.paic.pafa.ac.dubbo.GenericParam" }?? new Object[] {param });
System.out.println(result.getResult());
sampleResult.setResponseCodeOK();
sampleResult.setResponseMessageOK();
sampleResult.setSuccessful(true);
sampleResult.setResponseData(result.getResult().toString()??"UTF-8");}
catch(Exceptione){
sampleResult.setResponseCode("error");
sampleResult.setResponseMessage("error");
sampleResult.setSuccessful(false);
sampleResult.setResponseData("??磬ò????????????????????????"?? "UTF-8");
j1++;
}
finally{
sampleResult.sampleEnd();
}
returnsampleResult;
}
publicstatic void main(String[] args) {
DubboClientclient = new DubboClient();
client.setupTest(null);
client.runTest(null);
}
publicString run() {
//DubboClientclient = new DubboClient();
setupTest(null);
returnrunTest(null).toString();
}
publicstatic void main1(String[] args) {
intcount=90;
inti=0;
for(;i
newThread(new Runnable() {
publicvoid run() { //???????????????????????
for(;;){
DubboClientclient = new DubboClient();
client.setupTest(null);
client.runTest(null);
client.j++;
System.out.println(j+"error"+j1);
}
}
}).start();}
}
publicArguments getDefaultParameters() {
//TODO Auto-generated method stub
returnnull;
}
publicvoid setupTest(JavaSamplerContext arg0) {
try{
ReferenceConfigreference = new ReferenceConfig();
reference.setUrl("dubbo://10.21.99.79:20882/esb-proxy.service.B10013_000000");
reference.setInterface("esb-proxy.service.B10013_000000");
reference.setGeneric(true);
reference.setApplication(newApplicationConfig("ff-test"));
reference.setTimeout(10000);
reference.setRegistry(newRegistryConfig("zookeeper://10.21.66.48:2181"));
genericService = reference.get();}
catch(Exceptione){
System.out.print("error ");
}
}
publicvoid teardownTest(JavaSamplerContext arg0) {
//TODO Auto-generated method stub
}
publicMap getParams() {
Map params = new HashMap();
Map esbRequest = new HashMap();
Map header = new HashMap();
Map content = new HashMap();
esbRequest.put("content"??content);
esbRequest.put("header"??header);
StringsendSerialNo = this.getSeqNo();
esbRequest.put("sendSerialNo"??sendSerialNo);
esbRequest.put("idType"??"1");
esbRequest.put("idNo"??"1");
params.put("esbRequest"??esbRequest);
params.put("timeOutMs"??"30000");
params.put("systemId"??"958537");
params.put("requestNo"??sendSerialNo);
returnparams;
}
publicString getSeqNo() {
returnString.valueOf(System.currentTimeMillis() + System.nanoTime() + newRandom().nextInt(2));
}