首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

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

2013-09-07 
使用JMETER对TCP/IP服务器进行压力测试使用jmeter中的javasamplerpackage com.roiland.testimport java.i

使用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;    }}

热点排行