性能テスト-Jmeter 3.1使用テクニック

5021 ワード

一、JMeter公式サイト
ダウンロードhttp://jmeter.apache.org/download_jmeter.cgi
Jmeter wikihttps://wiki.apache.org/jmeter
二、概念
ElapspedTimeの消費時間は、ResonseTime/SampleTimeと一致し、応答受信完了までの開始要求の時間を表している。
Latency遅延時間は、開始要求が受信応答を準備するまでの時間のみを含む。
90%のLineの時間測定指標は、90%の要求がこの応答時間内に完了することを示している。
Throughputスループットとは、毎秒処理される要求数をいう。公式:Throughput=(number of requests)/(total time)
スループットと応答時間/併発数の関係:TPS=U_concurrent/(Ttusponse+T_think)の中でT_thinkはユーザ思考時間です。
ThreadGroupスレッドグループは、同時要求のコンポーネントを制御するために使用される。パラメータを設定
  • スレッド数、同時進行数を制御する
  • rame-up周期、スレッドの柔軟な成長周期、例えば100スレッドの成長周期は10 sである。1 sは10スレッドを追加する
  • 固定要求数
  • 循環実行設定は、開始時間と終了時間を指定することができます。
    SummaryReport統合報告書、結果指標は以下を含む。
    属性
    説明
    label
    各サンプルの名前
    samples
    テスト要求の総数量
    average
    平均応答時間
    メディアン
    50%ユーザの応答時間
    90%ライン
    90%ユーザの応答時間
    min
    最小応答時間
    max
    最大応答時間
    error%
    エラー発生率
    recv KB/s
    毎秒受信データ量
    throughput
    スループット(TPS)
    三、起動停止
    GUI起動
    ./jmeter.bat
    コマンドライン起動
    jmeter -n -t xxx.jmx
    テストを中止します
    //    (gracefully stop, thread will stop at next opportunity)
    ./bin/shutdown.sh  
    
    //    (will kill thread directory)
    ./bin/stoptest.sh 
    四、変数の使用
    propertiesファイル
    Jmeterの主な配置ファイル
  • jmeter.propertiesは、jmeter実行のキー構成を定義する。
  • system.propertiesは、Javaプロセスのシステム変数を定義し、System.get Properties()を通じて照会できます。
  • user.properties、カスタムプロファイルは、jmeter.properties
  • をカバーすることができます。
    コマンドライン起動
    -JローカルJMeter変数-D指定Javaシステム変数-G指定グローバルJMeter変数は、リモートテストでテストノードに転送されます。
    サンプル
    PATH=$PATH:/opt/local/jre/bin
    JVM_ARGS="-Xmx2048m -Xms512m -Xmn256m -XX:PermSize=128m -Xss256k"
    jmeter -Jmongo.host=xxx -Jmongo.port=xxx -n -t test.jmx
    JVM_ARGSはJVMサイズを指定します。-nはno-guiモード起動-Gglobal.propertiesを指定します。-Gvar=valueの代わりにすることができます。
    引用の仕方
    試験計画では、関数によって変数を参照することができます。
    ${__P(varName,defaultValue)}
    五、遠隔テスト
  • は、jmeterを遠隔ノードに配置し、server
  • を起動する。
    PATH=$PATH:/opt/local/jre/bin
    JVM_ARGS="-Xmx2048m -Xms512m -Xmn256m -XX:PermSize=128m -Xss256k"
    
    ./bin/jmeter-server &
    ポート設定Jmeter-serverはRMIで通信を実現し、デフォルトポートは1099でuser.propertiesを編集して修正することができます。
    server_port=1999
  • は、リモートノード
  • をローカルに構成する。
    user.propertiesを変更:
    remote_hosts=xxx:1999
  • コマンドライン実行
  • リモートノードを構成した後、GUIクライアントを通じて直接テストを実行することができますが、自動化されたシーンではコマンドライン方式で実行する必要があります。
    //          
    jmeter -Gmongo.host=xxx -Gmongo.port=xxx -n -t test.jmx -r
    
    //          
    jmeter -Gmongo.host=xxx -Gmongo.port=xxx -n -t test.jmx -R192.168.0.100:1999,192.168.0.101:1999
    
    //        
    jmeter -Gmongo.host=xxx -Gmongo.port=xxx -n -t test.jmx -R192.168.0.100:1999,192.168.0.101:1999 -Z
    六、レポートを生成する
    jtlファイルJmeterはテストを実行した後、jtl/csv/xmlの結果ファイルを生成し、結果モニターに出力パスを追加することで得られます。コマンドラインで直接出力することもできます。
    jmeter -n -t test.jmx-l result.jtl
    htmlレポートJmeter 3.xは直接HTML形式を作成するレポートをサポートしています。詳細を参照してください。
  • 直接レポートを生成する
  • jmeter -n -t test.jmx-l result.jtl -e -o /opt/local/jmeter/result/html
    -eはhtml報告書を作成することを表しています。-oは目標パスを指定しています。
  • は、jtlファイルから
  • を変換する。
    jmeter -g result.jtl -o /opt/local/jmeter/result/html
    レポートをカスタマイズする
    user.propertiesを変更:
    // sample    
    jmeter.reportgenerator.sample_filter=find|update|delete|list|insert
    
    //APDEX  -      (    )
    jmeter.reportgenerator.apdex_satisfied_threshold=300
    
    //APDEX  -     (    )
    jmeter.reportgenerator.apdex_tolerated_threshold=1200
    
    //      ,           ,        ,  60s
    jmeter.reportgenerator.overall_granularity=5000
    重要なレポートResonseTimeOverTime Transactived Active ThreadOverTime ResonseTimePerenties OverTime
    七、性能モニタ
    Perfmonプラグインを使用して、プラグインの住所
  • 配置ServerAgentは、ターゲットサーバにServerAgentをアップロードし、startAgent.sh起動を実行する。デフォルトでは4444が起動します。スタートポートを変更できます。
  • ./startAgent.sh --udp-port 7777 --tcp-port 7777
  • Jmeterスクリプトファイルを編集し、Perfmonモニタを追加します。監視データをjtlファイルに出力して後続の分析に使う設定ができます。
  • 自動的に画像を生成するには、JMeterPluginsCMDプラグインを介してアドレスコマンドラインをダウンロードして実行する必要があります。
  • JMeterPluginsCMD.sh --generate-png cpu.png --input-jtl perfmon-cpu.jtl --plugin-type PerfMon --width 800 --height 600
    八、一般プラグイン
    Step ping ThreadGroup
    プラグインアドレスJmeterのThreadGroupはスレッドを均等に増やすだけで、より現実的な圧力シーンをシミュレートできません。
    プラグインは、より柔軟な同時圧力制御をサポートします。
        20  ,   10    5   ,  100         100s...
    CompsiteGraph
    プラグインアドレスは、応答時間、スループットレポートを組み合わせており、他のプラグインに依存する必要があります。
    サーバの限界性能を観察する際に有用であり、要求頻度の指定を考慮して、同時数の大きさを測定するために用いることができる。通常、同時数がシステムの耐能力を超えると、TPSは明らかに下降し、応答時間は持続的に上昇する。
    九、参考資料
    GitBook-Jmeter参考https://aimer1124.gitbooks.io/jmeter-tutorial/
    yukinamiのブログhttp://yukinami.github.io/2015/11/26/性能テストマニュアル/
    Jmeter論理コントローラ(よくまとめられた文章)http://www.guru99.com/controllers-in-jmeter.html
    Jmeter VS LoadRunnerhttp://www.cnblogs.com/shuiyelifang/p/5749523.html
    TPS/応答時間/併発数の研究http://blog.csdn.net/wind19/article/details/8600083