使用jmeter中的javasampler
package com.roiland.test;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;
import java.nio.ByteBuffer;
import java.util.Map;
import javax.xml.bind.annotation.adapters.HexBinaryAdapter;
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 TestDBConnection extends AbstractJavaSamplerClient {
private final static String TEST_LABEL = "TcpDB";
private final static short EXPECTED_HEAD = 0x8900 & 0xff;
private final static byte EXPECTED_HEART = 0x00;
BufferedOutputStream bos;
BufferedInputStream bis;
@Override
public SampleResult runTest(JavaSamplerContext arg0) {
String ip = arg0.getParameter("ip");
int port = arg0.getIntParameter("port");
SampleResult sr = new SampleResult();
sr.setSampleLabel(TEST_LABEL);
Socket socket = null;
try {
socket = new Socket(ip, port);
socket.setSoTimeout(2000);
bos = new BufferedOutputStream(socket.getOutputStream());
bis = new BufferedInputStream(socket.getInputStream());
byte[] data = { 9, 0, 1, 1, 4, 0, 29, 1, 1, 13, 8, 13, 9, 18, 24,
3, 0, 2, 0, -71, 103, 43, 0, 3, 0, 59, 69, -57, 0, 11, 0,
4, 56, 120, -48, 39 };
byte[] auth = { 9, 0, 1, 1, 1, 0, 30, 1, 65, 65, 49, 50, 51, 52,
53, 54, 55, 56, 57, 48, 49, 50, 51, 52, 53, 49, 49, 49, 49,
49, 49, 49, 49, -69, -100, -123, 117 };
ByteBuffer buf = ByteBuffer.allocate(auth.length);
ByteBuffer buf1 = ByteBuffer.allocate(data.length);
buf.put(auth);
buf1.put(data);
buf1.flip();
buf.flip();
int i = 0;
// byte[] reHead = new byte[2];
while (true) {
try {
if (i == 0) {
bos.write(buf.array());
bos.flush();
}
int length = bis.available();
if (length != 0) {
byte[] dataT = new byte[length];
if (length > 3) {
byte serial = dataT[3];
}
if (length == 4) {
} else {
bis.read(dataT);
short head = (short) (((dataT[1] & 0xFF) << 8) | (dataT[0] & 0xff));
if (head != EXPECTED_HEAD) {
break;
}
}
}
} catch (IOException e) {
sr.setSuccessful(false);
}
if (i == 2) {
try {
bos.write(buf1.array());
bos.flush();
sr.setSuccessful(true);
break;
} catch (IOException e) {
sr.setSuccessful(false);
}
break;
}
i++;
}
} catch (UnknownHostException e1) {
sr.setSuccessful(false);
} catch (IOException e1) {
sr.setSuccessful(false);
} finally {
try {
bos.close();
bis.close();
socket.close();
} catch (IOException e) {
sr.setSuccessful(false);
}
}
return sr;
}
}
分享到:
相关推荐
JMeter 之TCP服务器并发压力测试,图文详细介绍,傻瓜式操作。
使用JMeter 对Web服务器压力测试
最详细的,用jmeter测试tcp服务器文档
此jar包为jmeter 的mqtt连接服务器压力测试工具。本人使用的是MessageBufferPacker对数据加密所以没有传入参数,修改自己修改
jmeter-压力测试报告-超细,Jmeter性能测试工具使用总结
Jmeter是基于Jave的,开放源代码的测试工具 Jmeter 可以用于测试静态或者动态资源的性能(文件、 SOAP 、 Web、Perl脚本、java对象、数据库和查询、ftp服务器或者其他 的资源) Jmeter 用于模拟在服务器、网络...
利用apache jmeter 对一个注册模块进行压力测试的过程记录。
使用jmeter测试java请求,博客地址http://blog.csdn.net/qq_34021712/article/details/78870407
jmeter 模拟ip http请求 并发测试 压力测试
JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来在不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。...
JMeter对mysql数据库进行压力测试
JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。...
JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。...
第一步:身份认证左边是终端request,右侧是server端的responseMessage_id:表示请求的唯一idDevice_id:表示终端设备的idM
JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来在不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。...
Apache jmeter 是一个100%的纯java桌面应用,用于压力测试和性能测量。它最初被设计用于Web应用测试但后来扩展到...它可以用于对服务器,网络或对象模拟繁重的负载来测试它们的强度或分析不同压力类型下的整体性能。
使用JMeter进行性能测试
Apache JMeter是Apache组织开发的压力测试工具,也是目前应用最广泛的开源性能测试工具之一。 不过要记住Jmeter由JAVA开发,安装Jmeter之前需要先安装JDK。
JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。...