SSブログ

[Jmeter]_03_シナリオ作成-01_HTTPリクエスト編 [Jmeter]

まずは前回のおさらい+αから。
キャプチャが終わった段階で、Jmeterは以下のような構成となっている。

スレッドグループ_01
    ┣トランザクションコントローラ_01_PV01
    ┃    ┣HTTPリクエスト_01_PV01_001
    ┃    ┃    ┗HTTPヘッダマネージャ_01_PV01_001
    ┃    ┗HTTPリクエスト_01_PV01_002
    ┃           ┗HTTPヘッダマネージャ_01_PV01_002
    ┣トランザクションコントローラ_01_PV02
     :

① スレッドグループ
  1つのシナリオ ≒ オペレーション群。
  Top => 商品詳細 => カート投入 => カート画面 などの一連の画面遷移を指す。

② トランザクションコントローラ
  ユーザの1オペレーション ≒ 1ページビュー(PV)。
  上述の例では「商品詳細」の表示、「カート投入」ボタンの押下などが該当する。

③ HTTPリクエスト
  ユーザオペレーションに伴うHTTP通信。
  通常(※1)、1PVに1つ以上存在。
  「.php」「.do」等の動的コンテンツの実行、
  「.js」「.css」「.jpg」等の静的コンテンツの取得(※2)などが該当。
    ※1 タブ切替などのHTTP通信を伴わないオペレーションも存在する。
          Jmeterではこれは再現せず、そのオペレーションに要した時間を
          定数タイマで再現するに留める
    ※2 ※1でも記載の通り、クライアントサイドの処理はJmeterで再現しない。
          ただし、次のリクエストに必要なパラメータをjs等で生成している場合、
          Jmeterでも同様にパラメータの作りこみが必要となる可能性がある。

④ HTTPヘッダマネージャ
  HTTPリクエストに付与するヘッダ情報。


今回は、③の設定について記載する。
キャプチャにて取得した場合、以下の通りパラメータがある程度記入されている。

03_001.png

赤枠で示した部分が主な設定すべき項目であるが、それらの詳細は以下の通り。

名称エリア
設定項目 内容 Note
名前 Jmeter上で表示する名前。
(左フレームの管理パネル、各リスナーなど)
実際のアクセス先URLと一致させる必要はない。
命名規則の観点から
  "PVXXX_YYY_ZZZ"
などとした方が無難かと。
XXX … PV番号
YYY … PV内HTTPリクエスト通番
ZZZ … アクセス先URL
コメント コメント欄。
オペレーション内容など記載するのがよいか。
「Top画面から1つ目の商品ページを開く」など。
ご自由にどうぞ。


Webサーバエリア
設定項目 内容 Note
サーバ名
またはIP
アクセス先サーバのホスト名またはIPを入力する。
上図では同一マシン内へのアクセスのため、
「localhost」を記載。
「http://」は必要アリマセンヨ。
ポート番号 アクセス先サーバのポート番号を記載する。 httpsだと443ダヨネ。


HTTPリクエストエリア
設定項目 内容 Note
Implementation Jmeterプロセス⇔サーバ間の通信方法。
HttpClient4、HttpClient3.1、Javaから指定。
HttpClient4推奨。
理由は前項の通り。
プロトコル 通信プロトコルを指定する。 大抵はhttpかhttps。
メソッド 通信メソッドを指定する。 大抵はGETかPOST。
Content
encoding
エンコードの文字コードを指定。 parametersエリアの
各パラメータに適用。
パス アクセス先URLを記載。 ホスト名(IP)以降のURL。
自動
リダイレクト
チェック時、リダイレクトに対応。
サーバからHTTPレスポンスコード3XX
が返却された場合、
自動で次のリクエストを送付する。
ただし、各リスナーには
レスポンスコード3XXの
リダイレクションレスポンス
(と対応するHTTPリクエスト)
は記録されません。
リダイレクト
に対応
チェック時、リダイレクトに対応。
サーバからHTTPレスポンスコード3XX
が返却された場合、
自動で次のリクエストを送付する。
自動リダイレクトと違い、
リスナーに途中のリクエスト
/レスポンスも記載される。
KeepAliveを
有効にする
チェック時、HTTPヘッダに含める
「Connection」の値を「Keep-Alive」とする。
チェックしない場合は
「Close」となる。
Use multipart
/form-data
for POST
Parameters部分を
multipart/form-dataで送信。
ファイルアップロードなど
実行するときにチェック。
Browser
-compartible
headers
multipart/form-data 使用時、
HTTPヘッダ
「Content-Disposition」のみを送信。
HTTPヘッダ
「Content-Type」、
「Content-Transfer-Encoding」
は不使用に。


Parametersエリア
設定項目 内容 Note
名前 パラメータ名。
基本的にキャプチャ後は変えない。
追加することはあるかも。
パラメータの値。
この部分を正規表現抽出したり、
CSV読込したりすることが多い。
固定値なのか、
システム変動値なのか、
ユーザ変動値なのか
見極めるのがキモ。
Encode? チェック時、「値」をエンコードして送信。 以下に使用例を書いたよ。
等号含む? チェック時、リクエストに「=」を含む。 これも以下に例を。


■Encode?の使用例
日本語や全角文字を送信する時、通常は下図「デコード前」のように
人間にわかりにくい文字にエンコードされた状態で送信されます。

03_002.png

ですが、パラメータを色々変更する時にこのエンコード後の状態だとわかりにくいです。
  ※読める人もいるでしょうが、私はデコーダ必須でゴザイマス…
このチェック項目は、この不便さを解消してくれる項目なのです。

03_003.png


■等号含む?の使用例
下表のようなパラメータをGETメソッドでリクエストする場合を考えます。

名前 等号含む?
memberId 0001 Checked
memberPass Checked


このとき、リクエストは以下のようになります。
  http://localhost:9999/sample.php?user=id01&pass=


次は、memberPassのCheckedをはずしてみます。

名前 等号含む?
memberId 0001 Checked
memberPass


このとき、リクエストは以下のようになります。
  http://localhost:9999/sample.php?user=id01&pass


アプリケーションによっては値が存在しない時に「=」を含めない方がよいことがあるため、
必要に応じて本項目のチェックをはずしてください。

次回はHTTPヘッダ編。


nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。