1
我想用jMeter测试我的memcached安装(我们使用jMeter进行其他功能测试,因此将它用于memcached看起来是最好的选择)。我现在用的是TelnetClient(org.apache.commons.net.telnet.TelnetClient
)连接到Memcached和火get命令:jMeter挂在扫描仪上读取
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的后处理(这memcached的测试之前运行一些测试),我每次运行它时,该程序被卡在
scan.hasNext()
线。它永远挂起直到我杀死这个过程。我也尝试使用org.apache.commons.io.IOUtils中的工具,比如toString(输入流)方法,我得到了完全相同的行为。
任何想法?
它可能是扫描重新获取的输入。 –
奇怪的是,它在Eclipse上工作得很好,这只是jMeter中的一个问题 –
关于这方面的任何消息? –