![](/img/trans.png)
[英]In JMeter how can I capture multiple (varying) values of a regular expression?
[英]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.