我使用j米進行負載測試,我必須通過http請求調用上傳圖像API並實現此操作,我必須將圖像轉換爲壓縮字節數組才能發送出去它通過http請求發送數據。如何發送字節數組在http請求中的Jmeter
任何人都可以幫助我如何通過Jmeter。
您的幫助真的很感激。
我使用j米進行負載測試,我必須通過http請求調用上傳圖像API並實現此操作,我必須將圖像轉換爲壓縮字節數組才能發送出去它通過http請求發送數據。如何發送字節數組在http請求中的Jmeter
任何人都可以幫助我如何通過Jmeter。
您的幫助真的很感激。
有你如何能進行多種選擇:
您可以使用HTTP Raw Request採樣器(可通過網站JMeter Plugins),它給你什麼,在哪裏如何發送的完全控制。
您是否嘗試過爲HTTP請求取樣器啓用Use multipart/form-data for POST
?這是如何根據RFC-1867上傳文件的方式。
如果您的用例是特定的並且以上都不適用,那麼您始終可以使用JMeter Scripting擴展。例如,如果你添加一個Beanshell Pre Processor到的東西等,從而進行文件上傳您的HTTP請求:
FileInputStream in = new FileInputStream("/home/glinius/401.png");
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
for (int i; (i = in.read(buffer)) != -1;) {
bos.write(buffer, 0, i);
}
in.close();
byte[] imageData = bos.toByteArray();
bos.close();
vars.put("imageData", new String(imageData));
你就可以在你的POST請求添加${imageData}
參數。
是的,我遵循這種方法「添加Beanshell預處理器到您的HTTP請求」,併成功。
對於我的情況,我還添加了一個「HTTP頭管理器」,指定:「Content-Encoding:gzip」,「Content-Type:」application/x-www-form-urlencoded「,」Accept:/「 並且,通過設置字符串編碼:vars.put( 「binaryData」,新的字符串(binThrift, 「ISO-8859-1」));
感謝您的詳細信息。但我想知道如何在這種情況下使用HTTP Raw Request Sampler,我必須將圖像轉換爲gzip壓縮字節數組。 –
另外,我遵循你的最後一點,以下是代碼片段: –
import java.io.BufferedInputStream; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; FileInputStream in = new FileInputStream(「C:\\ Users \\ i \\ Downloads \\ Screen 2.jpg」); ByteArrayOutputStream bos = new ByteArrayOutputStream(); int size =(int)file.length(); byte [] buffer = new byte [size];對於(int i;(i = in.read(buffer))!= -1;){ bos.write(buffer,0,i); } in.close(); byte [] imageData = bos.toByteArray(); bos.close(); 變異。put(「imageData」,new String(imageData)); –