java - jMeter 在扫描仪读取时挂起

标签 java memcached jmeter

我正在尝试使用 jMeter 测试我的 memcached 安装(我们正在使用 jMeter 进行其他功能测试,因此将它用于 memcached 似乎是最佳选择)。我正在使用 TelnetClient (org.apache.commons.net.telnet.TelnetClient) 连接到 memcached 并触发 get 命令:

get somekey

我可以连接,但是当我尝试读取响应时,jMeter 挂起并需要重新启动。这是我的代码(其中 memcached_server 是我的服务器的 IP):

try 
{
   TelnetClient telnet = new TelnetClient();
   telnet.connect("memcached_server", 11211);

   PrintWriter pw = new PrintWriter(new OutputStreamWriter(telnet.getOutputStream()), true);
   String command = "get 2f605845757870234d94ae14ca83c660";
   pw.println("get 2f605845757870234d94ae14ca83c660");

   BufferedReader br = new BufferedReader(new InputStreamReader(telnet.getInputStream()));

    Scanner scan = new Scanner(br);

    System.out.println("Hello stackoverflow!!!!");      
if(scan.hasNext())
    System.out.println("It does have a next: " + scan.toString());
else
    System.out.println("It does NOT have a next");

    String output = "";         
while (scan.hasNext()) {
    String line = scan.nextLine();
        output += line;
        if (line.matches("^END.*$")) 
       break;

    }
    System.out.println("Output: " + output);
telnet.disconnect();

} 
catch(Exception e)
{
   e.printStackTrace();
}

我可以在 Eclipse 中运行此代码并且工作正常。在 jMeter 中,我使用 BeanShell PostProcessor(一些测试在此 memcached 测试之前运行),每次运行它时,程序都会卡在

scan.hasNext()

线。它会永远挂起,直到我终止该进程。我还尝试使用 org.apache.commons.io.IOUtils 中的实用程序,例如 toString(input stream) 方法,并且得到完全相同的行为。

有什么想法吗?

最佳答案

为什么将此代码放入后处理器而不是采样器中?

这看起来很奇怪。

您还可以尝试使用 JSR223 +Groovy,这可以让您有机会调试脚本。

关于java - jMeter 在扫描仪读取时挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16594893/

相关文章:

performance - 从 Jmeter 中的响应中捕获 header 值并重新使用

Java jsoup - 清除除链接以外的所有标签

带有二进制协议(protocol)的 PHP Memcached—— `increment()` 之后返回的垃圾数据

php - memcached 数据缓存的设计模式

maven - Jenkins 错误 : Failed to parse POMs java. io.IOException : Cannot run program error=2, 没有这样的文件或目录

java - Jmeter:了解吞吐量和 KB/秒之间的相关性

java - Tomcat:当连接数超过线程数时会发生什么?

Java 桌面应用程序和 Java EE?

java - android.content.res.Resources$NotFoundException : String resource ID #0x42

ruby-on-rails - VPS 的 Memcached Gui 管理器