「マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
Jmeterで使用される用語を拾ってまとめた。
テンプレート †
- Visual Studio的に言うとプロジェクト・テンプレート的なもの。
- これを開いて、負荷テストを新規作成する。
テンプレートの種類 †
以下のようなテンプレートが存在する。
Web サーバ †
- build-web-test-plan.jmx
比較的単純な負荷テスト
- build-adv-web-test-plan.jmx
ログイン処理等を含む、やや複雑な負荷テスト
- build-webservice-test-plan.jmx
SOAP を使った 負荷テスト
FTP サーバ †
- build-ftp-test-plan.jmx
比較的単純な負荷テスト
LDAP サーバ †
- build-ldap-ext-test-plan.jmx
比較的単純な負荷テスト
- build-ldap-test-plan.jmx
ループコントローラ利用した負荷テスト
ストレージ †
- jdbc.jmx
PostgreSQL に対する JDBC 経由の負荷テスト
- mongodb.jmx
JSR233を使った mongodb に対する負荷テスト
その他 †
- recording.jmx
記録コントローラ(ユーザの操作を記録してテスト計画を自動作成する) 利用時テンプレート
- BeanShellSampler?.jmx
Jmeter用の軽量スクリプト言語(BeanShell?)でテストを書いて直接実行。
プロパティ †
以下の設定が可能。
グローバル定義画面 †
テスト計画のグローバル定義
スレッドグループ定義画面 †
テスト計画のスレッドグループ
テスト計画 †
- 負荷テストの実行計画を設定するもの。
- 以下のプロパティ設定や、コンポーネント追加ができる。
ワークベンチ †
- 特定のテストエレメントは、ワークベンチでのみ使用できる。
HTTP(S) Test Script Recorder †
- スクリプトを記録する。
- 使用する場合、ワークベンチにこれを追加する。
HTTP Mirror Server †
- 送信されたデータを単にミラーリングする非常に単純なHTTPサーバー。
- HTTP要求の内容をチェックするのに便利。
Property Display †
SystemプロパティまたはJMeterプロパティの値が表示される。
Threads(Users) †
スレッドグループ(仮想ユーザ群)
以下の3種類のThreads(Users)がある。
- setUp Thread Group
テスト前のアクションを実行するスレッドグループ。
- 通常のスレッドグループとほぼ同じ。
- 通常のスレッドグループの実行前に実行される。
- tearDown Thread Group
テスト後のアクションを実行するスレッドグループ。
- 通常のスレッドグループとほぼ同じ。
- 通常のスレッドグループの実行後に実行される。
プロパティ †
以下のプロパティを設定。
- Delay Thread creation until needed
スレッドが必要になったタイミングで生成するオプション。
- ループ回数
- テスト・シナリオの実行回数
- [無限ループ]にチェックを入れると無限にテスト
- 開始時刻
スケジューラが有効の場合、この時刻が来るまでテストの実施を待つ。
ただし後述の起動遅延の指定があれば、そちらが優先される。
- 終了時刻
スケジューラが有効の場合、この時刻までテストが行われる。
- 終了条件
Jmeterのスレッドが終了する契機が、
以下の終了条件のうち、いずれか達成の早いものになる。
条件チェックは各サンプル間でのみ行われる。
- 指定のループ回数に達した時
- 終了時刻に達した時
- 持続時間に達した時
- サンプラーエラー後のアクション
サーバがエラーを返してきた場合など、
リクエストが何らかの原因でエラーになった際どうするかを選択する。
- Start Next Loop
エラーを無視して次のループの最初から続行
- テスト停止
いずれかのサンプルの終了をもってテスト全体が停止
- Stop Test Now
即座にテスト全体を停止。
サンプラー †
- サーバなどのテスト対象に対し、何らかの指示やリクエストを行うためのコンポーネント。
- サンプラーにより負荷テスト結果が収集され、 この結果はリスナーにより参照できる。
- 追加する場合、スレッドグループかロジックコントローラで右クリック > 追加 > サンプラー > XXXXを選択。
- 様々なサンプラーがある。
- Webサーバのテストであれば、「HTTPリクエスト」を選択する。
- XXXサーバのテストであれば、「XXXXリクエスト」を選択する。
スクリプト系 †
# | サンプラー名 | 説明 |
1 | BeanShell? Sampler | BeanShell?スクリプト言語を使ってサンプラーを書く |
2 | BSF Sampler (DEPRECATED) | BSFスクリプト言語を使ってサンプラーを書く |
3 | JSR223 Sampler | JSR-223スクリプト言語を使ってサンプラーを書く |
4 | Java Request | org.apache.jmeter.protocol.java.sampler.JavaSamplerClient?を使用してリクエストを送りレスポンスを待つ。 |
5 | JUnit Request | JUnitを使用してリクエストを送りレスポンスを待つ。 |
プロトコル系 †
- セッション層
# | サンプラー名 | 説明 |
1 | TCP サンプラー | サーバに対してTCP リクエストを送りレスポンスを待つ。 |
- プレゼンテーション層
# | サンプラー名 | 説明 |
1 | HTTPリクエスト | Webサーバに対してHTTP(s)リクエストを送りレスポンスを待つ。 |
2 | FTPリクエスト | FTPサーバに対してファイルの取り出し/アップロードのリクエストを送る。 |
3 | LDAPリクエスト | 4種類のLDAPリクエストを送る。 |
4 | LDAP拡張リクエスト | 8種類のLDAPリクエストを送る。 より実際のLDAPセッションに近いシミュレーションが行える。 |
5 | JDBC Request | JDBCでデータベースに対してSQLを送りレスポンスを待つ。 |
6 | MongoDB Script (DEPRECATED) | MongoDBに対してMongoDB Scriptを送りレスポンスを待つ。 |
- メール
# | サンプラー名 | 説明 |
1 | SMTP サンプラー | SMTP / SMTPSプロトコルを使用してメールメッセージを送信。 |
2 | Mail Readerサンプラー | POP3(S)/IMAP(S)プロトコルを使用してメールメッセージを受信(オプションで削除)。 |
- JMS(Java Message Service)
# | サンプラー名 | 説明 |
1 | JMS Publisher | 指定された宛先(トピック/キュー)にメッセージを送信 |
2 | JMS Subscriber | 指定された宛先(トピック/キュー)からメッセージを受信 |
3 | JMS_Point-to-Point | ポイントツーポイント接続(キュー)でメッセージを送受信 |
その他 †
# | サンプラー名 | 説明 |
1 | OS Process Sampler | OSコマンドを実行する。 |
2 | Access Log Sampler | Webサーバーのアクセスログを読んで HTTP リクエストを生成。 |
3 | Test Action | ・・・ |
3 | Debug Sampler | ・・・ |
ロジックコントローラー †
- ループや条件分岐など、 複雑な制御を行うためのコンポーネント。
- 追加する場合、スレッドグループかロジックコントローラで右クリック > 追加 > ロジックコントローラ > XXXXを選択。
- また、下位にサンプラー(または子コントローラ)を追加できる。
制御構文系 †
- 選択
# | ロジックコントローラー名 | 説明 |
1 | If Controller | 指定した条件が "true"の場合、子コントローラーを実行する。条件は JavaScript または変数表現で指定。 |
2 | Switch Controller | スイッチの値に従って子コントローラーを実行する。 |
- ループ
# | ロジックコントローラー名 | 説明 |
1 | Loop Controller | 特定回数分、子コントローラーを実行する。 |
2 | While Controller | Whileで、指定した条件が "false"になるまでループしながら子コントローラーを実行する。 |
3 | ForEach? Controller | ForEach?で、変数の値を変えながらループして、子コントローラーを実行する。 |
その他 †
ググって。
- Simple Controller
- Once Only Controller
- Interleave Controller
- Random Controller
- Random Order Controller
- Throughput Controller
- Runtime Controller
- Transaction Controller
- Recording Controller
- Critical Section Controller
設定エレメント †
- リクエストにかかわる様々な項目を設定する。
- 追加する場合、スレッドグループかサンプラーを右クリック > 追加 > 設定エレメント > XXXXを選択。
共通 †
# | 設定エレメント名 | 説明 |
1 | TCP サンプラー設定 | TCP サンプラーのデフォルト設定 |
2 | ログイン設定エレメント | ユーザ名とパスワードの設定 |
3 | DNS Cache Manager | DNSキャッシュ機能を追加 |
プロトコル †
- HTTP
# | 設定エレメント名 | 説明 |
1 | HTTP 認証マネージャ | 認証機能を追加 |
2 | HTTP クッキーマネージャ | クッキーを扱う機能を追加 |
3 | HTTP Cache Manager | HTTPキャッシュ機能を追加 |
4 | HTTP ヘッダマネージャ | ヘッダを追加または上書き |
5 | HTTP リクエスト初期値設定 | HTTP 接続テスト時のデフォルト値を設定 |
- その他、既定値
# | 設定エレメント名 | 説明 |
1 | FTPリクエスト初期値設定 | FTPリクエストのデフォルト値を設定 |
2 | LDAPリクエスト初期値設定 | LDAPリクエストのデフォルト値を設定 |
3 | LDAP拡張リクエスト初期値設定 | LDAP拡張リクエストのデフォルト値を設定 |
4 | Javaリクエスト初期値設定 | Javaリクエストのデフォルト値を設定 |
- 接続設定
# | 設定エレメント名 | 説明 |
1 | JDBC Connection Configuration | JDBC の接続設定 |
2 | MongoDB Source Config (DEPRECATED) | MongoDB Script サンプラーのための接続設定を行う |
データ †
スレッドグループのサンプラーの中から参照可能なデータ
# | 設定エレメント名 | 説明 |
1 | Counter | カウンタを生成(サンプラー単位) |
2 | Random Variable | ランダム文字列を生成 |
3 | User Defined Variables | 任意の初期変数セットを定義 |
4 | CSV Data Set Config | 変数値を CSV ファイルで与える |
その他 †
# | 設定エレメント名 | 説明 |
1 | Keystore Configuration | Java Key Store(証明書ストア)を設定 |
2 | Simple Config Element | 任意の値を追加・上書き(開発者向け) |
タイマ †
- ・・・ためのコンポーネント。
- 追加する場合、で右クリック > 追加 > タイマ > XXXX を選択。
スクリプト系 †
# | タイマ名 | 説明 |
1 | BeanShell? Timer | BeanShell?(JSR-274)を使ったタイマ |
2 | BSF Timer (DEPRECATED) | BSFを使ったタイマ |
3 | JSR223 Timer | JSR-223を使ったタイマ |
4 | Synchronizing Timer | 逆セマフォ的な動きをするタイマ(瞬間的な高負荷を与える)。 |
定数系 †
# | タイマ名 | 説明 |
1 | Constant Timer | 各スレッドリクエストのたびに指定した秒数分遅延する。 |
2 | Constant Throughput Timer | トータルのスループットが一定値に近づくように停止時間を調整する。 |
乱数系 †
# | タイマ名 | 説明 |
1 | Uniform Random Timer | 各スレッドリクエストのたびにランダム時間停止し、遅延時間の総計は乱数値+オフセット値の合計になるタイマ。 |
2 | Poisson Random Timer | 各スレッドリクエストのたびにランダム時間停止し、停止時間能総計はポアソン分布に従うタイマ。 |
3 | Gaussian Random Timer | 各スレッドリクエストのたびにランダム時間停止し、遅延時間の総計はガウス分布に従うタイマ。 |
前処理 †
- ・・・ためのコンポーネント。
- 追加する場合、で右クリック > 追加 > 前処理 を選択。
スクリプト系 †
# | プリプロセッサ名 | 説明 |
1 | BeanShell? PreProcessor? | BeanShell?の前処理を実行 |
2 | BSF PreProcessor? (DEPRECATED) | BSFの前処理を実行 |
3 | JSR223 PreProcessor? | JSR-223の前処理を実行 |
4 | JDBC PreProcessor? | SQLの前処理を実行 |
抽出系 †
# | プリプロセッサ名 | 説明 |
1 | HTML Link Parser | 応答を解析してリンクとフォームを抽出 |
2 | RegEx? User Parameters | 応答を正規表現を使って解析してパラメタを抽出 |
その他 †
# | プリプロセッサ名 | 説明 |
1 | Sample Timeout | タイマータスクが完了するまでに時間がかかりすぎると、 サンプルを中断するようにタイマータスクをスケジュールする。 |
2 | User Parameters | 個別のスレッドに対してユーザ変数を設定 |
3 | HTTP URL Re-writing Modifier | URL 書き換えを行うWeb サービスでセッションの引き回す |
後処理 †
- ・・・ためのコンポーネント。
- 追加する場合、で右クリック > 追加 > 後処理 を選択。
スクリプト系 †
# | ポストプロセッサ名 | 説明 |
1 | BeanShell? PostProcessor? | BeanShell?の後処理を実行 |
2 | BSF PostProcessor? (DEPRECATED) | BSFの後処理を実行 |
3 | JSR223 PostProcessor? | JSR-223の後処理を実行 |
4 | JDBC PostProcessor? | SQLの後処理を実行 |
抽出系 †
# | ポストプロセッサ名 | 説明 |
1 | Regular Expression Extractor | 応答をPerl 互換正規表現を使って解析してパラメタを抽出 |
2 | CSS/JQuery Extractor | 応答をCSS/JQuery ライクなセレクタの文法を使って解析してパラメタを抽出 |
3 | XPath Extractor | 応答をXPath クエリー言語を使って解析してパラメタを抽出 |
4 | JSON Extractor | 応答をJSONをJSON-PATH syntax使って解析してパラメタを抽出 |
その他 †
アサーション †
- テストをしているサーバから受け取った応答を検査し、その応答が正しい応答かどうかをチェックするためのコンポーネント。
- 追加する場合、スレッドグループやサンプラーで右クリック > 追加 > アサーション > XXXXを選択。
スクリプト系 †
# | アサーション名 | 説明 |
1 | BeanShell? Assertion | BeanShell?でアサーションチェックを実行 |
2 | BSF Assertion (DEPRECATED) | BSFでアサーションチェックを実行 |
3 | JSR223 Assertion | JSR-223でアサーションチェックを実行 |
検証系 †
# | アサーション名 | 説明 |
1 | Response Assertion | Perl 互換の正規表現かプレインテキストで比較チェック |
2 | Compare Assertion | 応答の比較チェック(大量のリソースを消費) |
3 | HTML Assertion | JTidyを使って応答のHTML文法をチェック |
4 | XML Assertion | 応答のXML文法をチェック |
5 | XML Schema Assertion | 応答のDTDなどのXML Schemaへの準拠をチェック |
6 | XPath Assertion | well-formed や DTDのオプションを持つかチェック、もしくは JTidy を通して XPathのチェック |
7 | MD5Hex Assertion | JTidyを使って応答のMD5 ハッシュをチェック |
8 | SMIME Assertion | Mail Readerサンプラーの応答の署名をチェック |
その他 †
# | アサーション名 | 説明 |
1 | Duration Assertion | 応答を与えられた時間内に受け取ったかどうかをチェック |
2 | Size Assertion | 応答のサイズ(バイト数)が正しいか(等しい、より大きい、より小さい、等しくない)をチェック |
リスナー †
- テスト中に収集した情報を表示したりファイルへ保存したりして、結果をレポーティングするためのコンポーネント。
- 追加する場合、スレッドグループで右クリック > 追加 > リスナー > XXXXを選択。
スクリプト系 †
# | リスナー名 | 説明 |
1 | BeanShell? Listener | サンプルの結果に対して BeanShell?を適用する。 |
2 | BSF Listener (DEPRECATED) | サンプルの結果に対して BSFを適用する。 |
3 | JSR223 Listener | サンプルの結果に対して JSR-223 を適用する。 |
レポート・グラフ系 †
- Sample Result Save Configuration
- Graph Results
- View Results Tree
- Aggregate Report
- View Results in Table
- Aggregate Graph
- Response Time Graph
- Summary Report
- Generate Summary Results
- Backend Listener
アサーション結果系 †
# | リスナー名 | 説明 |
1 | Assertion Results | Assertionエレメントの結果を表示(スクリプトのデバッグ時に利用) |
2 | Comparison Assertion Visualizer | Compare Assertionエレメントの結果を表示 |
その他 †
# | リスナー名 | 説明 |
1 | Simple Data Writer | 結果をファイルに記録(GUIには表示されない) |
2 | Save Responses to a file | テストの作成のために結果をファイルに記録 |
3 | Mailer Visualizer | 失敗応答を受信するとメールを送る |
その他 †
Test Fragment †
- スレッドグループまたはWorkBench?に配置できる。
- Include ControllerおよびModule Controllerとともに使用される。
Module Controller †
Test Fragmentで代替テスト計画に迅速かつ容易に切り替えて実行。
Include Controller †
以下で作成した外部のJMXファイルをインクルードする。
- テスト計画の下にテストフラグメントを作成、
- その下に任意のサンプラー、コントローラーなどを追加。
- 次に、テスト計画を外部のJMXファイルに保存。
Debug †
Debug Sampler †
- すべてのJMeter変数および/またはプロパティの値を含むサンプルを生成。
- サンプルの値は、「結果ツリー・リスナー応答データの表示」ペインに表示される。
Debug PostProcessor? †
- 以前のサンプラプロパティ、JMeter変数、プロパティおよび/またはシステムプロパティの詳細を含むサンプルを生成。
- サンプルの値は、「結果ツリー・リスナー応答データの表示」ペインに表示される。
スクリプト †
よくわかないが、以下の3つがあるもよう。
BeanShell?(JSR-274) †
Bean スクリプト・フレームワーク (BSF) †
JSR-223 †
参考 †
Tags: :テスト, :ツール類