「マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
設定 †
HTTPリクエスト †
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)
- Connect
接続タイマー
- 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リクエスト初期値設定 †
認証設定 †
- 以下の認証がある場合、
- Basic
- Digest
- NTLM
- Kerberos
設定項目 †
- 基底URL
- ユーザー名
- パスワード
- Mechanism
Mechanism=KERBEROSの場合 †
追加で、以下の設定が必要。
- system.properties
- java.security.krb5.conf
- java.security.auth.login.config
- *.conf
- krb5.conf(Kerberos 構成ファイル)
- jaas.conf(JAASログイン構成ファイル)
その他の設定 †
Cookieの有効化 †
「設定エレメント」の「HTTP クッキーマネージャ」を追加する。
Cacheの有効化 †
「設定エレメント」の「HTTP Cache Manager」を追加する。
プロキシ設定 †
自身がプロキシとして動作するが、
更に、プロキシを経由させる場合、起動オプションでプロキシ設定を行う。
jmeterWithProxy?.bat的なbatファイルを準備しておくと吉。
なお、この時、jmeter.batへのパスを、フルパスで記述しておくこと。
手順 †
Jmeterの起動 †
以下に注意して、jmeter.batを起動する。
Java関係のパラメタ設定 †
必要に応じて、jmeter.batに、
Java関係のパラメタ設定を行う。
管理者実行 †
jmeter.batを右クリックして、
「管理者として実行」を選択する。
プロキシ設定 †
必要に応じて、jmeter.batに、
プロキシ設定のコマンドライン引数を指定する。
初期設定 †
スレッドグループの追加 †
テスト計画に、スレッドグループを追加。
- ここでは、スレッドグループ以下に当該「設定エレメント」を追加する。
- 最低限、Webサーバ(サーバ名またはIP、ポート)項目の設定を行っておく。
- HTTP認証がある場合があるので、有効化しておく。
- なお、ここでは、スレッドグループ以下に当該「設定エレメント」を追加する。
- 大概のWebアプリには、以下が使用されているので有効化しておく。
- Session Cookie
- Cookie認証Ticket
- なお、ここでは、スレッドグループ以下に当該「設定エレメント」を追加する。
- 大概のWebサイトは静的コンテンツをキャシュ可能にしているので有効化しておく。
- なお、ここでは、スレッドグループ以下に当該「設定エレメント」を追加する。
ワークベンチ設定 †
保存の設定 †
ワークベンチのSave Workbench チェック・ボックスをチェックにする。
- 設定
- ポート番号は既定で「8888」になっているので、必要に応じて変更する。
- Request Filteringタブ
- 「挿入するパターン」に記録対象となるURLを正規表現で追加する。
- 例えば、ホスト名は"local\.com:80/.*"、拡張子は".*\.html"などと指定する。
- Test Plan Creationタブ > Test plan contents
- 記録先を指定するため、
[対象となるコントローラー]ドロップダウンリストから「テスト計画 > スレッドグループ名」を選択する。
- また、ページ単位でリクエストをまとめて記録するようにするため、
(Simple Controller以下に、HTTPリクエストのサンプラーが並ぶようになる)
[グループにする]ドロップダウンリストから「新規コントローラーへ各グループを置く」を選択する。
- リスナーの追加
- プロキシサーバー機能が記録したワークロードを確認するためにリスナーを追加する。
- HTTPプロキシサーバ(Test Script Recorder)に、「結果をツリーで表示」リスナーを追加する。
- 開始
- 設定画面中にある開始ボタン ( [▶] ) を押下する。
- HTTPプロキシサーバ(Test Script Recorder)が開始したかどうかは「netstat -a」で確認できる。
Webアプリの電文を記録 †
- ココまで来たら、一度、テスト計画(テスト計画-nnnnnn.jmx)を保存しておく。
- なお、この*.jmxファイルは、backupフォルダに10世代文自動的に保持される。
ブラウザの設定 †
- その他、必要に応じて、各種ブラウザ設定を
サイトユーザのメジャー設定に合わせて変更しておく。
HTTPプロキシサーバ(Test Script Recorder)を開始しておく。
ブラウザを操作してワークロードを記録 †
- 以下は、当該PukiWiki?のページの新規作成と編集(削除)の操作をスクリプト化した例である。
PukiWiki?の仕組みを知らなかったため、ソレを理解しつつ、スクリプトの整理を行った。
ブラウザの設定を元に戻す †
先程のブラウザ設定を元に戻しておく。
必要に応じて、スクリプト修正を実施する。
テスト計画を実行する。 †
多重度 †
多重度の設定については、コチラを参照のこと。
デバッグ・検証 †
機能テスト・負荷テスト †
デバッグ・検証が完了したら、機能テスト・負荷テストを実施できる。
スクリプト修正 †
スクリプト修正には、HTTPとアプリケーションの知識が必要になる。
可変値の追跡 †
リクエスト → レスポンス → リクエストと持ち回る値を追跡し変数化する。
抽出系の後処理で抽出 †
抽出系の後処理を使用してレスポンスから値を抽出する。
テストデータの組込 †
変数に、CSVファイルなどを使用してテストデータを組み込む。
クライアントのCookie操作 †
BeanShell? PreProcessor?にCookie操作の処理を記述する。
注意事項 †
HTTPS対応 †
キャプチャの際、ブラウザにJmeterプロキシの証明書をインストールする。
- Jmeterプロキシの証明書は、
「HTTPプロキシサーバ(Test Script Recorder)」の開始後に、
「Jmeterを解凍したフォルダ\bin\」以下に生成される。
リダイレクト †
自動リダイレクト †
- 利用中の http プロトコルハンドラがリダイレクトに自動追従するようにする。
- 自動リダイレクトの応答は、Jmeterのサンプルとして追加されない。
※ 自動追従したリクエストにはクッキーが送信されないので注意。
リダイレクトに対応 †
- 「自動リダイレクト」が無効の場合、
応答がリダイレクトかどうかを チェックし、そうであればそれに従う。
- この場合のリダイレクトの応答は、Jmeterのサンプルとして追加される。
参考 †
Tags: :テスト, :ツール類