使用方法
簡単な使用方法
1.jmeter.batを起動
2.スレッドグループの追加
テスト計画→追加→スレッドグループ
スレッド数(≒クライアント数)などを設定する
3.リクエスト初期値設定の追加
スレッドグループ→追加→設定エレメント→HTTPリクエスト初期値
サーバ、ポートなどの共通を設定しておく
4.サンプラーの追加
スレッドグループ→追加→サンプラー→HTTPリクエスト
パスなどを指定する
5.リスナーの追加
スレッドグループ→追加→リスナー→(見たい結果に合わせて選択)
6.実行(Ctrl+R)
7.リスナーが更新されるため参照
プロキシサーバとして ブラウザ操作からシナリオ作成
1.jmeter.batを起動
2.スレッドグループの追加
3.リクエスト初期値設定の追加
ホストなどの共通を設定しておくと後から変更が簡単
4.記録コントローラの追加
5.HTTPプロキシサーバの追加
対象となるコントローラに4.を指定(デフォでも可能だが1つにまとめたほうが楽)
ヘッダが不要なら「HTTPヘッダの取り込み」を取り込まないとする
画像, js, cssが不要なら除去パターンに.*\.pngのように指定する
6.ブラウザのプロキシを5.のサーバに設定変更する(デフォならlocalhost:8080)
7.HTTPプロキシサーバ画面の開始を押下し、ブラウザで操作開始
Tips
「HTTPヘッダの取り込み」とすると、サンプラーごとにヘッダが設定される
「全てのイメージとアプレットを繰り返しダウンロードする」のチェックを行った場合、 サンプラーの該当項目にチェックが入って作成される
プロキシでブラウザ記録した場合、全ての項目のサンプラーが作成されるため チェックを行わないか、記録対象を絞る必要がある。
IEの場合であれば、Fiddlerなどで実際にリクエストを比較する方法もあり
リモート実行 複数台のPCでの実行
実行する側
jmeter-server.batを実行しておく
管理する側
1.jmeter.propertiesのremote_hostsに実行するサーバを指定する
2.jmeter.batで通常通り起動する
3.シナリオを作成
4.実行時にリモート開始を実行する
Tips
ファイルからパラメータを取得している場合には、実行する側の環境に必要
Tips
リスナーのクリア
メニューから実行→全て消去
リクエスト、レスポンスの確認
リスナーに「結果をツリーで表示」で確認
複数のサンプラーでの共通設定
設定エレメントの「HTTPリクエスト初期値設定」を利用
Cookie利用
設定エレメントの「HTTPクッキーマネージャ」を追加
前画面の内容を利用
正規表現抽出
HTMLリンクパーサ
動的パラメータ利用
関数の__StringFromFile
1行1ファイル1項目のみ
関数の__CSVRead
1行ファイル複数項目
設定エレメントのCSV Data Set Config
カウンタ利用
ユーザパラメータ利用
SSL
javaのバージョンによっては設定不要
オプション→SSLマネージャから%JAVA_HOME%\lib\security\cacerts
一定時間継続実行させたい
無限ループと、スケジューラを利用
ループし続けるため、負荷がとてもかかる
タイマなどで制限を掛ける
ファイルに日付を含めたい
time関数を利用
result_${__time(YMDHMS)}.txt
保存したjmxを開くとツリーが展開されたまま
jmeter.propertiesの設定で回避可能
キーボードショートカット
Ctrl+O
Ctrl+S
Ctrl+L
Ctrl+.
Ctrl+E
消去
Ctrl+Shift+E
全て消去
Ctrl+R
実行
Ctrl+-
ツリー展開
Ctrl+Shift+-
ツリー折りたたみ
設定
jmeter.batの設定
ヒープサイズ
set HEAP=-Xms256m -Xmx256m
足りない場合には、OutOfMemoryError発生
起動時オプション
共通
-h:ヘルプ
-v:バージョン
-p:プロパティファイル
-q:追加のプロパティファイル
-t:テスト計画ファイル指定
-l:結果ファイル指定
-s:サーバ
プロキシ関連
-H:プロキシホスト
-P:ポート
-N:プロキシ利用しないホスト
-u:ユーザ
-a:パスワード
プロパティ関連
-D:Javaシステムプロパティ
-J[プロパティ名]:ローカル、${__P(プロパティ名)}で参照可能
-G[プロパティ名]:全てのリモートで共有
-L:ログのプライオリティ
CUI関連
-n:コンソール実行
-j:ログ
-r:remote_hosts設定のサーバに対してテストを実行
-R:リモートサーバ一覧
jmeter-n.cmdにテスト計画ファイルをドラッグ
設定ファイル
jmeter.properties
共通
language
Look and Feel configuration
jmeter.laf
GUI設定
Results file configuration
jmeter.save.saveservice.timestamp_format
jmeter.save.saveservice.url
jmeter.save.saveservice.requestHeaders
jmeter.save.saveservice.output_format
Remote hosts and RMI configuration
remote_hosts
リモート実行時のサーバ
server_port
Miscellaneous configuration
onload.expandtree
jmx読み込み後のツリー展開
jmeter.expertMode
CookieManager
CookieManager.delete_null_cookies
null値クッキー
CookieManager.save.cookies
クッキーを保存(jmeter内で参照できるようにするか)
JMeterの項目
テスト計画
各スレッドグループを別々に実行
未チェック時は、スレッドグループを並行実行
チェック時は、上から順番に実行
スレッド
スレッドグループ
スレッド数
クライアント数
Ramp-Up期間
スレッド数を全て生成するまでの期間
ループ回数
各スレッドの繰り返し数
無限ループ
スケジューラ
持続時間
setUp
全体の前処理
tearDown
全体の後処理
ロジックコントローラ
ForEach
If
条件を満たせば実行
Include
他のjmxを取り込む
Runtime
実行時間の間子を実行
Switch
While
評価式がtrueの間
インタリーブ
このうち1つを実行
ループ時には上から順に実行
シンプル
まとめるため
スループット
指定回数、指定%実行する
トランザクション
モジュール
断片
ランダム順序
ランダムな順番で子を1回のみ実行
ループ
指定回数実行
一度だけ実行される
ログインなどで利用
乱数
子の内1つを実行
毎回ランダム実行
記録
設定エレメント
CSV Data Set Config
CSV読み込み
Filename:ファイルパス
Variable Names:他で利用するときの変数名(${}で利用)
HTTPクッキーマネージャ
セッション利用時には必要
COOKIE_クッキー名で参照可能
値nullは保存されない
HTTPヘッダマネージャ
HTTPリクエスト初期値設定
サーバ名
ポート番号
プロトコル
HTTP認証マネージャ
Basic認証時
カウンタ
ユーザ定義変数
他で参照可能な値を定義
タイマ
定数スループット
ターゲットスループット
1分間のリクエスト数
Calculate Throughput based on
ターゲットスループットの範囲
this thread only
all active threads
定数
ガウス乱数
偏差
オフセットの偏差
遅延時間オフセット
各リクエスト間の平均間隔
一様乱数
前処理
HTMLリンクパーサー
ユーザパラメータ
他で参照可能な値を定義
サンプラー
HTTPリクエスト
サーバ
ポート
プロトコル
パス
自動リダイレクト
リダイレクトを無視
リクエストで送るパラメータ
パラメータを定義
全てのイメージとアプレットを繰り返しダウンロードする
含まれているjs,css,画像などをリクエストする
ソースの中で<script src=""としていてもリクエストする
コメントなどもリクエストする
後処理
正規表現抽出
レスの内容を取得し、次のリクエストに利用可能
アサーション
検証可能
リスナー
シンプルデータライタ
timeStamp:開始時刻
elapsed:レス時間
responseCode
threadName
success
bytes
grpThreads
allThreads
Latency
Summary Report
Label
#Samples:サンプル数
Average:レス時間平均
Min:レス時間最小
Max:レス時間最大
Std.Dev.:標準偏差
Error%:エラー割合
Throughput:単位時間当たりの平均PV数
KB/sec:1秒あたりの平均転送KB
Avg.Bytes:レスコンテンツの平均容量
統計レポート
Median:レス時間の中央値
90%Line:全サンプルの90%が収まる値
※他はSummary Report参照
グラフ表示
スプラインビジュアライザ
全リクエストの10%毎のポイントからスプライン関数を利用し曲線を描く
メーラービジュアライザ
基準値以上失敗した場合に、メール送信
Tips
リスナー自体が重いため、シンプルデータライタ利用後、後から読み込ませる
Non-Testエレメント
HTTP Mirror Server
HTTP プロキシサーバ
プロキシとして動作してブラウザ操作からテストシナリオ作成可能
Attempt HTTPS Spoofing
サブトピック 1
Test plan content
対象となるコントローラ
ツリーの中から指定
グループにする
取得したサンプラーをグルーピングしたりする
HTTPヘッダの取込
ヘッダを取り込む
HTTPSamplersettings
Type
自動リダイレクト
挿入するパターン
指定したもののみ
.*\.jspなど
除外するパターン
取り込まないパターン
.*\.gifのように指定
Property Display
jmeter.propertiesの内容確認
プラグイン(拡張)
stataggvisualizer
Throughput(hits/sec), Average Response Timeのグラフを利用可能
消去が動作しない
結果のxml, csvなどを読み込めない
関数
Ctrl+Fで関数ダイアログが表示
counter
time
日時
Random
乱数
StringFromFile
ファイル読み込み
CSVRead
CSVファイル読み込み
XPath
カスタム関数作成
AbstractFunction実装
xxx.functionsパッケージ時に作成