我正在尝试在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”的代码,但两种方式都不起作用。
任何人都知道什么是错的?
谢谢, 阿德里安
答案 0 :(得分:1)
没有使用TCP Sampler的原因?
将以下行放入“要发送的文字”区域:
flush_all${CR}${LF}
quit${CR}${LF}
将以下代码放入PreProcessor的“脚本”区域:
vars.put("LF",URLDecoder.decode("%0D", "ASCII"));
vars.put("CR",URLDecoder.decode("%0A", "ASCII"));
有关详细信息,请参阅How To Send Control Characters Using The JMeter TCP Sampler?指南。
答案 1 :(得分:0)
有两个选项可能对您有用
这是一篇关于如何通过telnet发送回车的文章。
How to send carriage return over telnet?
或者,你可能对SSH jmeter插件有更多好运,我认为它是内置于额外的库中,但如果没有,我可以给你发送一个链接。 这将允许您登录并执行给定目录中的命令,其简单且非常干净