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中的一個問題 –
關於這方面的任何消息? –