2017-02-20 71 views
0

我正在使用Jmeter作爲負載測試工具。 我通過請求傳遞一個參數,作爲響應,我得到的結果只有一個參數。響應。我想在csv文件中保存請求和響應。 我正在使用正則表達式提取器捕獲響應,Bean Shell Postprocessor將其保存在csv文件中。但無法捕獲相應的請求參數。如何在Jmeter中捕獲請求和響應值並將其存儲在文件中?

例子:請求:http://localhost:8080/myService?input=abcd123455 和響應:pqrst1245/84985 == 雖然這裏輸入請求,我從另一個csv文件服用。 我想要捕獲輸入參數和相應的響應,並將其存儲在csv文件中,如輸入,響應即。 abcd123455,pqrst1245/84985 ==

回答

0

嘗試使用這個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(); 
} 
-1

最簡單的方法是使用Sample Variables屬性。鑑於你有2個變量,即${request}${response}下一行只是添加到user.properties文件:

sample_variables=request,response 

,並重新啓動JMeter的挑財產了。一旦您的測試完成,您將在.jtl結果文件中看到2個額外的列,其中包含${request}${response}變量值。

另一種方式來暫時設置的屬性是通過-J command-line argument通過它像

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

Apache JMeter Properties Customization Guide文章的更多信息,與JMeter的性能工作


我不會建議使用腳本作爲當涉及到高負載時,您可能會遇到多個線程同時寫入同一文件的問題,您需要考慮實施某種形式的write lock

相關問題