`
RepublicW
  • 浏览: 80737 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

使用JMETER对TCP/IP服务器进行压力测试

 
阅读更多
使用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 之TCP服务器并发压力测试,图文详细介绍,傻瓜式操作。

    使用JMeter 对Web服务器压力测试

    使用JMeter 对Web服务器压力测试

    用jmeter测试tcp服务器

    最详细的,用jmeter测试tcp服务器文档

    jmeter mqtt服务器压力测试

    此jar包为jmeter 的mqtt连接服务器压力测试工具。本人使用的是MessageBufferPacker对数据加密所以没有传入参数,修改自己修改

    jmeter-压力测试报告-超细

    jmeter-压力测试报告-超细,Jmeter性能测试工具使用总结

    jmeter进行web测试

    Jmeter是基于Jave的,开放源代码的测试工具  Jmeter 可以用于测试静态或者动态资源的性能(文件、 SOAP 、 Web、Perl脚本、java对象、数据库和查询、ftp服务器或者其他 的资源)  Jmeter 用于模拟在服务器、网络...

    用apache jmeter系统压力测试工具进行简单的压力测试

    利用apache jmeter 对一个注册模块进行压力测试的过程记录。

    使用Jmeter测试java请求

    使用jmeter测试java请求,博客地址http://blog.csdn.net/qq_34021712/article/details/78870407

    jmeter模拟ip并发http请求jmx

    jmeter 模拟ip http请求 并发测试 压力测试

    压力测试工具JMeter使用笔记

    JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来在不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。...

    JMeter对mysql数据库进行压力测试

    JMeter对mysql数据库进行压力测试

    jmeter压力测试

    JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。...

    jmeter3.2压力测试

    JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。...

    基于JMeter模拟1万个终端设备,进行TCP长连接性能测试1

    第一步:身份认证左边是终端request,右侧是server端的responseMessage_id:表示请求的唯一idDevice_id:表示终端设备的idM

    Apache JMeter 3.3软件 服务器压力测试(包安装配置教程)

    JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来在不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。...

    Jmeter压力测试工具

    Apache jmeter 是一个100%的纯java桌面应用,用于压力测试和性能测量。它最初被设计用于Web应用测试但后来扩展到...它可以用于对服务器,网络或对象模拟繁重的负载来测试它们的强度或分析不同压力类型下的整体性能。

    使用JMeter进行性能测试

    使用JMeter进行性能测试

    压力测试工具:apache-jmeter-5.0

    Apache JMeter是Apache组织开发的压力测试工具,也是目前应用最广泛的开源性能测试工具之一。 不过要记住Jmeter由JAVA开发,安装Jmeter之前需要先安装JDK。

    jmeter2.2压力测试工具

    JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。...

Global site tag (gtag.js) - Google Analytics