2017-05-30 1 views
1

テストケースをnonguiモードで実行しようとしています。ここJMeterは、非GUIモードで各サンプラーのカスタム.jtlログを作成します。

は私の試験プラン

testplan

とBeanShellのコード

import java.text.ParseException; 
import java.text.SimpleDateFormat; 
import java.util.Date; 
import java.net.URLDecoder; 

import org.apache.jmeter.services.FileServer; 

String samplerNumber = "${__threadNum}"; 
String samplerName = "${__samplerName()}"; 

if(sampleEvent.getResult() instanceof org.apache.jmeter.protocol.http.sampler.HTTPSampleResult) { 
    String request = (sampleEvent.getResult().getSamplerData()); 
    String response = prev.getResponseDataAsString(); 
    String url = java.net.URLDecoder.decode(request, "UTF-8"); 


    f = new FileOutputStream("D:/testScripts/logs/" + samplerName + ".log", true); 
    p = new PrintStream(f); 

    p.println("sample time: " + prev.getTime() 
    + " Thread: " + samplerNumber 
    + ", sampler name: " + samplerName 
    + ", system time: " + new Date() 
    + " \nREQUEST: " + url); 

    p.close(); 
    f.close(); 
} 

は基本的にそれが何を私が持っている各HTTP-サンプラーのための.logファイルを作成し、スレッドのログを記録することです、サンプラー名、システム時間、および要求されたURL。

これの代わりに、後でリスナー(グラフなど)に読み込んで各サンプラーの結果を確認できる.jtlファイルを作成したいと考えています。

これを達成するためにスクリプトを変更する方法はありますか?

答えて

0

基本的にこのリスナーは必要ありません。JMeterは、この情報をすべてデフォルトで.jtl結果ファイルに保存します。

jmeter.save.saveservice.url=true 

かのよう-J command-line argumentを経由して、それを渡します:あなたはまだやりたい場合は

jmeter -Jjmeter.save.saveservice.url=true -n -t test.jmx -l result.csv 

あなたはURLを保存する必要がある場合は、単にuser.propertiesファイルに次の行を追加します。これはコードから、saveservice構成と一致する有効なCSVを生成して、次のプロパティを生成する必要があります。

# legitimate values: xml, csv, db. Only xml and csv are currently supported. 
#jmeter.save.saveservice.output_format=csv 


# true when field should be saved; false otherwise 

# assertion_results_failure_message only affects CSV output 
#jmeter.save.saveservice.assertion_results_failure_message=true 
# 
# legitimate values: none, first, all 
#jmeter.save.saveservice.assertion_results=none 
# 
#jmeter.save.saveservice.data_type=true 
#jmeter.save.saveservice.label=true 
#jmeter.save.saveservice.response_code=true 
# response_data is not currently supported for CSV output 
#jmeter.save.saveservice.response_data=false 
# Save ResponseData for failed samples 
#jmeter.save.saveservice.response_data.on_error=false 
#jmeter.save.saveservice.response_message=true 
#jmeter.save.saveservice.successful=true 
#jmeter.save.saveservice.thread_name=true 
#jmeter.save.saveservice.time=true 
#jmeter.save.saveservice.subresults=true 
#jmeter.save.saveservice.assertions=true 
#jmeter.save.saveservice.latency=true 
# Only available with HttpClient4 
#jmeter.save.saveservice.connect_time=true 
#jmeter.save.saveservice.samplerData=false 
#jmeter.save.saveservice.responseHeaders=false 
#jmeter.save.saveservice.requestHeaders=false 
#jmeter.save.saveservice.encoding=false 
#jmeter.save.saveservice.bytes=true 
# Only available with HttpClient4 
#jmeter.save.saveservice.sent_bytes=true 
#jmeter.save.saveservice.url=false 
#jmeter.save.saveservice.filename=false 
#jmeter.save.saveservice.hostname=false 
#jmeter.save.saveservice.thread_counts=true 
#jmeter.save.saveservice.sample_count=false 
#jmeter.save.saveservice.idle_time=true 

# Timestamp format - this only affects CSV output files 
# legitimate values: none, ms, or a format suitable for SimpleDateFormat 
#jmeter.save.saveservice.timestamp_format=ms 

あなたはまた、パフォーマンスが可能になる。この場合のように代わりのBeanShellのJSR223 Listener and Groovy言語を使用するずっと良いだろう

timeStamp,elapsed,label,responseCode,responseMessage,threadName,dataType,success,failureMessage,bytes,sentBytes,grpThreads,allThreads,URL,Latency,IdleTime,Connect 
1496132228865,336,HTTP Request,200,OK,Thread Group 1-1,text,true,,1576,115,1,1,http://example.com/,336,0,174 

のような列と一致する必要がありますだけでなく、ヘッダ行を生成する必要がある場合がありますより高いリソース消費量を実現します。

JMeterのプロパティとその設定方法とオーバーライドの詳細については、Apache JMeter Properties Customization Guideを参照してください。

関連する問題