「マイクロソフト系技術情報 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?)でテストを書いて直接実行。
プロパティ †
以下の設定が可能。
グローバル定義画面 †
テスト計画のグローバル定義
スレッドグループ定義画面 †
テスト計画のスレッドグループ
テスト計画 †
- 負荷テストの実行計画を設定するもの。
- 以下のプロパティ設定や、コンポーネント追加ができる。
Threads(Users) †
スレッドグループ(仮想ユーザ群)
以下の3種類のThreads(Users)がある。
- setUp Thread Group
テスト前のアクションを実行するスレッドグループ。
- 通常のスレッドグループとほぼ同じ。
- 通常のスレッドグループの実行前に実行される。
- tearDown Thread Group
テスト後のアクションを実行するスレッドグループ。
- 通常のスレッドグループとほぼ同じ。
- 通常のスレッドグループの実行後に実行される。
プロパティ †
以下のプロパティを設定。
- Delay Thread creation until needed
スレッドが必要になったタイミングで生成するオプション。
- ループ回数
- テスト・シナリオの実行回数
- [無限ループ]にチェックを入れると無限にテスト
- 開始時刻
スケジューラが有効の場合、この時刻が来るまでテストの実施を待つ。
ただし後述の起動遅延の指定があれば、そちらが優先される。
- 終了時刻
スケジューラが有効の場合、この時刻までテストが行われる。
- 終了条件
Jmeterのスレッドが終了する契機が、
以下の終了条件のうち、いずれか達成の早いものになる。
条件チェックは各サンプル間でのみ行われる。
- 指定のループ回数に達した時
- 終了時刻に達した時
- 持続時間に達した時
- サンプラーエラー後のアクション
サーバがエラーを返してきた場合など、
リクエストが何らかの原因でエラーになった際どうするかを選択する。
- Start Next Loop
エラーを無視して次のループの最初から続行
- テスト停止
いずれかのサンプルの終了をもってテスト全体が停止
- Stop Test Now
即座にテスト全体を停止。
サンプラーを追加する場合、
スレッドグループで右クリック > 追加 > サンプラー > XXXXリクエストを選択。
Test Fragment †
設定エレメント †
共通 †
# | 設定エレメント名 | 説明 |
1 | TCP サンプラー設定 | TCP サンプラーのデフォルト設定 |
2 | ログイン設定エレメント | ユーザ名とパスワードの設定 |
プロトコル †
- HTTP
# | 設定エレメント名 | 説明 |
1 | HTTP 認証マネージャ | 認証機能を追加 |
2 | HTTP クッキーマネージャ | クッキーを扱う機能を追加 |
3 | HTTP Cache Manager | キャッシュ機能を追加 |
4 | HTTP ヘッダマネージャ | ヘッダを追加または上書き |
5 | HTTP リクエスト初期値設定 | HTTP 接続テスト時のデフォルト値を設定 |
- その他、既定値
# | 設定エレメント名 | 説明 |
1 | FTP リクエスト初期値設定 | FTP 接続テスト時のデフォルト値を設定 |
2 | LDAP リクエスト初期値設定 | LDAP 接続テスト時のデフォルト値を設定 |
3 | LDAP Extended Request Defaults | LDAP拡張リクエストのデフォルト値を設定 |
4 | Java リクエスト初期値設定 | Java 接続テスト時のデフォルト値を設定 |
- 接続設定
# | 設定エレメント名 | 説明 |
1 | JDBC Connection Configuration | JDBC の接続設定 |
2 | MongoDB Source Config | MongoDB Script サンプラーのための接続設定を行う |
データ †
スレッドグループのサンプラーの中から参照可能なデータ
# | 設定エレメント名 | 説明 |
1 | カウンタ | カウンタを生成(サンプラー単位) |
2 | Random Variable | ランダム文字列を生成 |
3 | ユーザ定義変数 | 任意の変数を定義 |
4 | Keystore Configuration | キーストアを設定 |
5 | CSV Data Set Config | 変数値を CSV ファイルで与える |
6 | シンプル設定エレメント | 任意の値を追加・上書き |
タイマ †
スクリプト系 †
# | タイマ名 | 説明 |
1 | BeanShell?タイマ | BeanShell?(JSR-274)を使ったタイマ |
2 | BSFタイマ | BSFを使ったタイマ |
3 | JSR223タイマ | JSR-223を使ったタイマ |
4 | Synchronizing Timer | 逆セマフォ的な動きをするタイマ(瞬間的な高負荷を与える)。 |
定数系 †
# | タイマ名 | 説明 |
1 | 定数タイマ | 各スレッドリクエストのたびに指定した秒数分遅延する。 |
2 | 定数スループットタイマ | トータルのスループットが一定値に近づくように停止時間を調整する。 |
乱数・分布系 †
# | タイマ名 | 説明 |
1 | 一様乱数タイマ | 各スレッドリクエストのたびにランダム時間停止し、遅延時間の総計は乱数値+オフセット値の合計 |
2 | Poisson Random Timer | 各スレッドリクエストのたびにランダム時間停止し、停止時間能総計はポアソン分布の値になるタイマ |
3 | ガウス乱数タイマ | 各スレッドリクエストのたびにランダム時間停止し、遅延時間の総計はガウス分布に従うタイマ。 |
前処理 †
スクリプト系 †
# | プリプロセッサ名 | 説明 |
1 | BeanShell? PreProcessor? | BeanShell?の前処理を実行 |
2 | BSF PreProcessor? | BSFの前処理を実行 |
3 | JSR223 PreProcessor? | JSR-223の前処理を実行 |
4 | JDBC PreProcessor? | SQLの前処理を実行 |
抽出系 †
# | プリプロセッサ名 | 説明 |
1 | HTML リンクパーサ | 応答を解析してリンクとフォームを抽出 |
2 | RegEx? User Parameters | 応答を正規表現を使って解析してパラメタを抽出 |
その他 †
# | プリプロセッサ名 | 説明 |
1 | ユーザーパラメータ | 個別のスレッドに対してユーザ変数を設定 |
2 | HTTP URL-Rewriting 修飾子 | URL 書き換えを行うWeb サービスでセッションの引き回す |
後処理 †
スクリプト系 †
# | ポストプロセッサ名 | 説明 |
1 | BeanShell? PostProcessor? | BeanShell?の後処理を実行 |
1 | BSF PostProcessor? | BSFの後処理を実行 |
1 | JSR223 PostProcessor? | JSR-223の後処理を実行 |
4 | JDBC PostProcessor? | SQLの後処理を実行 |
抽出系 †
# | ポストプロセッサ名 | 説明 |
1 | 正規表現抽出 | 応答をPerl 互換正規表現を使って解析してパラメタを抽出 |
2 | CSS/JQuery Extractor | 応答をCSS/JQuery ライクなセレクタの文法を使って解析してパラメタを抽出 |
3 | XPath Extractor | 応答をXPath クエリー言語を使って解析してパラメタを抽出 |
その他 †
# | ポストプロセッサ名 | 説明 |
1 | Debug PostProcessor? | 各プロパティからサブサンプルを生成する。 |
2 | アクションハンドラの終了状態 | サンプラーが失敗したら、スレッドまたはテスト全体を終了する。 |
アサーション †
成立条件チェック
スクリプト系 †
# | アサーション名 | 説明 |
1 | BeanShell? Assertion | BeanShell?でアサーションチェックを実行 |
2 | BSF Assertion | 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 | 応答のサイズ(バイト数)が正しいか(等しい、より大きい、より小さい、等しくない)をチェック |
サンプラー †
- サーバなどのテスト対象に対し、何らかの指示やリクエストを行うためのコンポーネント
- サンプラーにより負荷テスト結果が収集され、 この結果はリスナーにより参照できる。
サンプラーの種類 †
様々なサンプラーがある。
- Webサーバのテストであれば、「HTTPリクエスト」を選択する。
- XXXサーバのテストであれば、「XXXXリクエスト」を選択する。
HTTPリクエストの場合
プロパティ †
以下のプロパティを設定。
- Webサーバ
- サーバ名またはIP
テストするサーバ名またはIPアドレス(http:// は書くとエラーになるので注意)
- ポート
http なら 80、https なら 443など。
- プロトコル
HTTP(既定値)/HTTPS/FILEのいずれか。
- メソッド
GET(既定値), POST, HEAD, TRACE, OPTIONS, PUT, DELETE, PATCH
- パス
- / から始まる(サーバ名またはIPアドレスを除いた)パス
- パスはURLエンコードされないので注意(URLエンコードされたものを指定)。
- クエリ・ストリングを付加したい場合は 後述の「リクエストで送るパラメータ」に記載。
- フルパスの場合、サーバ名またはIP、ポート、プロトコル、クエリ・ストリングは無視される。
- その他
- Timeouts(millisecond)
- Response
応答タイマー。
- HTTPリクエスト
- Implementation
- Java, HttpClient3.1, HttpClient4(既定値).
- 既定値は Jmeter の jmeter.httpsampler プロパティの値にも依存。
- Content encoding
- (POST, PUT, PATCH, FILE に対して)使われるContent encoding。
- HTTP の Content-Encoding ヘッダには影響しない。
- KeepAlive?を有効にする
- Jmeter に Connection: keep-alive ヘッダをセットさせる。
- Apache HttpComponents? の HttpClient? 実装であれば正しく動作する。
- multipart/form-data
- Use multipart/form-data for POST
multipart/form-data もしくは application/x-www-form-urlencoded を使った POST リクエストを使用。
- Browser-compatible headers
multipart/form-data を使う際、Content-Type および Content-Transfer-Encoding ヘッダを使わず、Content-Disposition ヘッダだけを送る。
- リクエストで送るパラメータ
クエリ・ストリングとして送るパラメータを指定する。
- リクエストと一緒に送信されるファイル
アップロードするファイルを指定する。
- Proxy Server
- サーバ名またはIP
- ポート番号
- ユーザー名
- パスワード
- Embedded Resources from HTML Files(画像, JavaScript, CSS等)
- 全てのイメージとアプレットを繰り返しダウンロードする(HTMLファイルのみ)
HTML ファイルをパースし、埋め込みリソースをGET。
- Use concurrent pool.
同時並行コネクションプールを使う。
- Size:
同時並行コネクションプールのサイズ
- URLs must match
GETする埋め込みリソースのURLとしてマッチさせたいものを正規表現で指定。
- Source address(HTTPClient 実装における HTTP リクエストのみ)
- ソースアドレスの型
ソースアドレスの値を区別するために型を選択する。
- ソースアドレスの値
・・・
- オプションタスク
- モニタとして使用
モニタ結果リスナーで使用する。
- Save response as MD5 Hash?
- 応答が結果に格納されなくなる。
- 代わりに、32 文字の MD5 ハッシュが格納される。
HTTPリクエスト初期値設定 †
ロジックコントローラー †
ループや条件分岐など、 複雑な制御を行うためのコンポーネント
リスナー †
結果のレポーティング
モニタ結果リスナー †
スクリプト †
よくわかない。
BeanShell?(JSR-274) †
Bean スクリプト・フレームワーク (BSF) †
JSR-223 †
参考 †
Tags: :テスト, :ツール類