无法在TCP采样器中发送多个字节数据[Apache Jmeter]

时间:2018-01-11 09:00:58

标签: java node.js sockets tcp jmeter

我尝试使用Apache Jmeter加载测试Node.js TCP服务器。我已经创建了一个TCP采样器来模拟TCP服务器的虚拟用户,并且目前正在测试10个线程。我发送到TCP服务器的数据包含以字节为单位的位置信息。

每个位置包包含相同的起始位和相同的结束位。我根据Beanshell预处理器脚本中的结束位分割字节字符串。当我尝试将数据发送到服务器时,每个线程只发送第一个位置数据包并丢弃休止符。

这是我发送到TCP服务器的位置数据:

  

78782222110c0f080428c70312a7b0084b69f000153d01940b03f800e0110102010005462c0d0a   78782222110c0f081a39c90312af68084b83f010140f01940b03f80045580100000016b5830d0a   78782222110c0f081b2ac90312bacc084b87800b140d01940b03f80045590100000020bc450d0a   78782222110c0f081c04c80312bf2c084b83b017151a01940b03f8004559010000002735860d0a   78782222110c0f081c13c90312bf58084b7cb017150101940b03f800f26e010000002a5ea20d0a   78782222110c0f081e0eca0312a788084b6cd00c151e01940b03f800455801000000419fd30d0a

BeanShell预处理器的脚本:

import java.io.*;
import org.apache.jmeter.protocol.tcp.sampler.*;

String textToSend = "";
String fLine = "";

    FileReader fileReader = new FileReader("${fname}");
    BufferedReader bufferedReader = new BufferedReader(fileReader);

    while((fLine = bufferedReader.readLine())!= null){
        textToSend = textToSend + fLine;
    }

String[] list = textToSend.split("0d0a");

for (String str : list) {
    sampler.setRequestData(str);
}

0 个答案:

没有答案