我正在尝试在beanshell中编写一个jmeter采样器,以执行memcached telnet接口命令,特别是flush_all。每次测试后,我都需要清除缓存,因为它会导致快速连续的测试失败。

我有以下代码:

import org.apache.commons.net.telnet.TelnetClient;

TelnetClient telnet = new TelnetClient();
telnet.connect( "memcachedServer.dev", 11211 );

//InputStream in = telnet.getInputStream();
PrintStream out = new PrintStream( telnet.getOutputStream() );

out.println("flush_all\r");
out.println("quit\r");

telnet.disconnect();


似乎执行没有问题,但未清除缓存。我已经尝试了带有和不带有“ \ r”的代码,但是都无法正常工作。

有人知道怎么了吗?

谢谢,
阿德里安

最佳答案

是否有不使用TCP Sampler的原因?


将TCP Sampler添加到您的测试计划中(您需要刷新缓存)
配置主机和端口
将以下行放入“要发送的文本”区域:

flush_all${CR}${LF}
quit${CR}${LF}

Beanshell PreProcessor添加为TCP Sampler的子级
将以下代码放入预处理器的“脚本”区域:

vars.put("LF",URLDecoder.decode("%0D", "ASCII"));
vars.put("CR",URLDecoder.decode("%0A", "ASCII"));



有关更多详细信息,请参见How To Send Control Characters Using The JMeter TCP Sampler?指南。

09-12 11:37