我正在尝试在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采样器 http://jmeter.apache.org/usermanual/component_reference.html#TCP_Sampler?
- 将 TCP Sampler 添加到您的测试计划中(需要刷新缓存的地方)
- 配置主机和端口
-
将以下行放入“要发送的文本”区域:
flush_all${CR}${LF}
quit${CR}${LF}
- Add Beanshell 预处理器 http://jmeter.apache.org/usermanual/component_reference.html#BeanShell_PreProcessor作为 TCP 采样器的子级
-
将以下代码放入预处理器的“脚本”区域:
vars.put("LF",URLDecoder.decode("%0D", "ASCII"));
vars.put("CR",URLDecoder.decode("%0A", "ASCII"));
See 如何使用 JMeter TCP Sampler 发送控制字符? https://guide.blazemeter.com/hc/en-us/articles/206733759-How-to-Send-Control-Characters-Using-the-JMeter-TCP-Sampler-指南以获取更多详细信息。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)