您好,1. 在Eclipse中编写调用socket通讯的Jmeter脚本
新建测试项目
编写测试脚本
引入JMeter的jar包,从Jmeter的安装目录lib\ext中拷贝两个文件
ApacheJMeter_core.jar
ApacheJMeter_java.jar
写测试类,继承AbstractJavaSamplerClient类
/**********************************************
* @author Simon.Hoo(
[email protected])
* @contact MSN:
[email protected] * @Create July 8, 2011
********************************************/
packagecom.cottsoft.socket.test;
importjava.io.BufferedReader;
importjava.io.File;
importjava.io.FileReader;
importjava.io.IOException;
importorg.apache.jmeter.config.Arguments;
importorg.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;
importorg.apache.jmeter.protocol.java.sampler.JavaSamplerContext;
importorg.apache.jmeter.samplers.SampleResult;
publicclassTestSocketextendsAbstractJavaSamplerClient{
privateStringserverIp;
privateintserverPort;
privateStringfile;
@Override
publicSampleResult runTest(JavaSamplerContext sc){
serverIp=sc.getParameter(“serverIp”);
serverPort=Integer.valueOf(sc.getParameter(“serverPort”));
file=sc.getParameter(“file”);
Stringmessage=readFileByLines(file);
SampleResult sr=newSampleResult();
sr.setSampleLabel(“Socket Test”);
try{
SocketClientc=newSocketClient();
c.callServer(serverIp,serverPort,message);
}catch(Exceptione){
e.printStackTrace();
sr.setSuccessful(false);
}finally{
sr.sampleEnd();
}
returnsr;
}
@Override
publicArguments getDefaultParameters(){
Arguments params=newArguments();
params.addArgument(“serverIp”,“10.13.0.88″);
params.addArgument(“serverPort”,“7001″);
params.addArgument(“file”,“F:/test.txt”);
returnparams;
}
@Override
publicvoidsetupTest(JavaSamplerContext context){
super.setupTest(context);
}
@Override
publicvoidteardownTest(JavaSamplerContext context){
super.teardownTest(context);
}
privateStringreadFileByLines(StringfileName){
File file=newFile(fileName);
BufferedReader reader=null;
StringBuffer sb=newStringBuffer();
try{
//System.out.println(“以行为单位读取文件内容,一次读一整行:”);
reader=newBufferedReader(newFileReader(file));
StringtempString=null;
//int line = 1;
// 一次读入一行,直到读入null为文件结束
while((tempString=reader.readLine())!=null){
// 显示行号
sb=sb.append(tempString);
//System.out.println(“line ” + line + “: ” + tempString);
//line++;
}
reader.close();
}catch(IOExceptione){
e.printStackTrace();
}finally{
if(reader!=null){
try{
reader.close();
}catch(IOException e1){
}
}
}
returnsb.toString();
}
}
getDefaultParameters方法:主要用于设置传入的参数,
setupTest方法:为初始化方法,用于初始化性能测试时的每个线程,
runTest方法:为性能测试时的线程运行体,
teardownTest方法:为测试结束方法,用于结束性能测试中的每个线程,
2. 把上面的例子打包,然后把生成的Alipay_Test_Posp.jar文件拷贝到Jmeter的安装目录lib\ext下。
3. 编写JMeter的测试计划。
本回答被提问者和网友采纳