簡體   English   中英

如何在Jmeter中捕獲請求和響應值並將其存儲在文件中?

[英]How to capture request and response values in Jmeter and store it in file?

我正在使用Jmeter作為負載測試工具。 我通過請求傳遞了一個參數,作為響應,我只得到一個參數。 響應。 我想將請求和響應都保存在csv文件中。 我正在使用正則表達式提取器捕獲響應,並使用Bean Shell后處理器將其保存在csv文件中。 但是無法捕獲相應的請求參數。

示例:請求: http:// localhost:8080 / myService?input = abcd123455和響應:pqrst1245 / 84985 ==在此輸入請求時,我正在從另一個csv文件中獲取該請求。 我想捕獲輸入參數和相應的響應並將其存儲在csv文件中,例如input,response即。 abcd123455,pqrst1245 / 84985 ==

嘗試使用此Beanshell ...我沒有嘗試過,但應該可以。

import org.apache.jmeter.services.FileServer;

if (sampleEvent.getResult() instanceof org.apache.jmeter.protocol.http.sampler.HTTPSampleResult) {

   String request = (sampleEvent.getResult().getSamplerData());
   String response = prev.getResponseDataAsString();

   fos = new FileOutputStream("/home/user/output.csv", true);
   ps = new PrintStream(fos); 

   StringBuilder sb = new StringBuilder();
   sb.append(request).append(",").append(response).append("\n");
   ps.println(sb.toString());

   ps.close();
   fos.close();
}

最簡單的方法是使用Sample Variables屬性。 假設您有兩個變量,即${request}${response}只需將下一行添加到user.properties文件中:

sample_variables=request,response

並重新啟動JMeter以拾取該屬性。 測試完成后,您將在.jtl結果文件中看到另外兩列,其中包含${request}${response}變量值。

臨時設置屬性的另一種方法是通過-J命令行參數傳遞它,例如

jmeter -Jsample_variables=request,response -n -t test.jmx -l result.jtl

有關使用JMeter屬性的更多信息,請參見Apache JMeter屬性定制指南文章。


我不建議使用腳本編制,因為涉及高負載時,您可能會遇到多個線程同時寫入同一文件的問題,並且您將需要考慮實現某種形式的寫入鎖定

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM