見出し画像

負荷テストツールNeoLoad学習3:変数を追加してみる


はじめに

こんにちは、DevOps推進部2グループの李です。前回はNeoLoadのレコーディング方法について紹介しましたが、そのままの状態では使えない場合があります。今回はレコーディングしたスクリプトに変数を追加し、実行可能な状態に修正する方法をご紹介します。

下記が今回使用するソフトウェアです。

内容を5つのシリーズに分けて紹介したいと思います。

連載目次

  1. 負荷テストツールNeoLoad学習1:NeoLoadとは

  2. (前回)負荷テストツールNeoLoad学習2:レコードしてみる

  3. (今回)負荷テストツールNeoLoad学習3:変数を追加してみる

  4. 負荷テストツールNeoLoad学習4:実行してみる

  5. 負荷テストツールNeoLoad学習5:クラウド実行とコンポーネント

スクリプト整理

NeoLoadの任意のページをクリックすると、レコーディング時の画面キャプチャを確認できます。上から順にページの画面キャプチャを一つずつ確認していくと、「/owa/_2」というページの時点でログインが成功していることが確認できます。その後のページはメールの内容を取得するためのものなので、ログインスクリプトとしては「/owa/_2」までで十分です。したがって、「/owa/_2」以降の内容を右クリックして削除してください。

そして、レポートの内容を確認しやすくするために、ページの表示名を編集します。編集方法は、ページをクリックして、Definitionの「Name」を以下の一覧の名前に編集します。

  • /owa/ ➡ Outlookのホームページへ遷移

  • /owa/prefetch.aspx ➡ Outlookホームページの内容取得

  • /owa/_1 ➡ メールアドレス入力画面へ遷移

  • /GetCredentialType.srf ➡ パスワード入力画面へ遷移

  • /ppsecure/post.srf ➡ 認証情報取得

  • /owa/_2 ➡ Outlookのメール一覧を取得する

変数の設定方法

学習2では、NeoLoadのレコード方法を紹介しました。今回はレコードしたスクリプトをベースにして、変数を追加していきましょう!NeoLoadでは、固定変数と変動変数の2つのタイプの変数があります。固定変数は、ユーザー名やパスワードなど、事前に内容がわかっている変数です。変動変数は、前のレスポンスから抽出したトークンやハッシュなど、実行中に交換される変数です。 まずは固定変数を追加しましょう。NeoLoadのメニューの上部にある「Variables」ボタンをクリックして、変数一覧画面を開きます。

左下の「New Variable」ボタンをクリックし、変数のタイプとして「Constant String」を選択します。次に、EmailとPasswordの2つの変数を追加し、それぞれの内容を入力します。入力が完了したら、「OK」ボタンをクリックして変数一覧画面を閉じます。

続けて、変動変数を設定します。パスワード入力画面への遷移「/GetCredentialType.srf」のBODYを確認します。BODY内の「uaid」と「flowToken」はログインごとに生成される認証用データですので、前のレスポンスから抽出する必要があります。

1つ前の「/login.srf」をクリックし、詳細内容を確認するために「Advanced」ボタンをクリックします。

変数の抽出には、「Recorded response」と「Variable extractors」という2つのタブを使用します。 まず、「Recorded response」タブで、実際の状況に合わせて適切なuaid値(例: "677c13b887564ffcb5fecd50af24f665")を検索します。

「uaid」値は、以下のHTML内に記載されていますので、「Variables extractors」タブを開き、「+」ボタンをクリックします。

<meta http-equiv="Refresh" content="0; URL=https://login.live.com/jsDisabled.srf?mkt=JA-JP&lc=1041&uaid=677c13b887564ffcb5fecd50af24f665"/>

変数抽出画面で変数名に「uaid」を入力し、以下の内容を入力してからOKボタンをクリックします。

  • 抽出方法: XPath

  • 抽出内容: //meta[@http-equiv="Refresh"]

  • Starting with: uaid=

  • Ending with: "

NeoLoadでは、XPathとJSONPathという2つの抽出方法があります。これらの方法では、Pathを指定してから開始文字と終了文字で特定の内容を抽出します。もし抽出したい変数の内容をHTMLのタグで特定できない場合でも、開始文字と終了文字だけでも抽出することができます。

続いて、上記の変数設定方法に従って、各リクエストの変動変数を設定します。

メールアドレス入力画面へ遷移

「メールアドレス入力画面へ遷移」の「/login.srf」には5つの変数が必要です。 「/login.srf」の「Advanced」をクリックし、以下の変数を追加してください。

  • 変数名:uaid

    • 抽出方法:XPath

    • 抽出内容://meta[@http-equiv="Refresh"]

    • Starting with:uaid=

    • Ending with:"

  • 変数名:flowToken

    • 抽出方法:なし

    • Starting with:<input type="hidden" name="PPFT" id="i0327" value="

    • Ending with:"/>'

  • 変数名:hpgid

    • 抽出方法:なし

    • Starting with:hpgid:

    • Ending with:,sRequestCountry

  • 変数名:GetCredentialTypesrf

    • 抽出方法:なし

    • Starting with:b6:'https://login.live.com/GetCredentialType.srf

    • Ending with:',

  • 変数名:postsrf

    • 抽出方法:なし

    • Starting with:'https://login.live.com/ppsecure/post.srf?

    • Ending with:',   

認証情報取得

「認証情報取得」の「/ppsecure/post.srf」には6つの変数が必要です。 「/ppsecure/post.srf」の「Advanced」をクリックし、以下の変数を追加してください。

  • 変数名:pprid

    • 抽出方法:XPath

    • 抽出内容://input[@name='pprid']

    • Starting with:value="

    • Ending with:"

  • 変数名:wbids

  • 抽出方法:XPath

  • 抽出内容://input[@name='wbids']

  • Starting with:value="

  • Ending with:"

  • 変数名:wbid

    • 抽出方法:XPath

    • 抽出内容://input[@name='wbid']

    • Starting with:value="

    • Ending with:"

  • 変数名:NAP

    • 抽出方法:XPath

    • 抽出内容://input[@name='NAP']

    • Starting with:value="

    • Ending with:"

  • 変数名:ANON

    • 抽出方法:XPath

    • 抽出内容://input[@name='ANON']

    • Starting with:value="

    • Ending with:"

  • 変数名:t

    • 抽出方法:XPath

    • 抽出内容://input[@name='t']

    • Starting with:value="

    • Ending with:"

変数を設定したら、各変数を使用する箇所で「${変数名}」の形式で対応する変数を呼び出します。以下の表を参考に、設定する変数の一覧をご確認ください。

パスワード入力画面へ遷移

「パスワード入力画面へ遷移」の「/GetCredentialType.srf」には変数の呼び出しが必要です。 「/GetCredentialType.srf」をクリックし、以下の変数を呼び出してください。

  • Post Parameter

    • Username:${Email}

    • uaid:${uaid}

    • flowToken:${flowToken}

  • URL path Parameter

    • ${GetCredentialTypesrf}   

認証情報取得

「認証情報取得」の「/ppsecure/post.srf」には変数の呼び出しが必要です。 「/ppsecure/post.srf」をクリックし、以下の変数を呼び出してください。

  • Post Parameter

    • login:${Email}

    • loginfmt:${Email}

    • passwd:${password}

    • uaid:${uaid}

    • PPFT:${flowToken}

  • URL path Parameter

    • ${postsrf}   

Outlookのメール一覧を取得する

「Outlookのメール一覧を取得する」の「/owa/」には変数の呼び出しが必要です。 「/owa/」をクリックし、以下の変数を呼び出してください。

リクエスト名 : /owa/

  • Post Parameter

    • wbids:${wbids}

    • pprid:${pprid}

    • wbid:${wbid}

    • NAP:${NAP}

    • ANON:${ANON}

    • T:${t}   

次回のお知らせ

今回はNeoLoadの変数設定の方法についてご紹介しました。いかがでしたでしょうか?JMeterと比較すると、変数の検索と設定が簡単に行えますね!また、NeoLoadのページではリクエスト間の待ち時間のバリデーションも設定できます。興味がある方はぜひ試してみてください。 次回はNeoLoadの実行前の多重度の設定と実行方法についてご紹介したいと思います。

最後までお読みいただき、ありがとうございました。また次回の記事でお会いしましょう!

参考資料:

  1. https://note.com/shift_tech/n/nef31308e258a


執筆者プロフィール:李 嘉興
社会人になって以来、数年間システムエンジニアとして多数のプロジェクトの開発(要件定義~リリース)を経験したのち、2021年7月にSHIFTに入社。システムエンジニアの仕事と全く違う分野の自動化とCICDを経験しつつ、未来のキャリアのため日々奮闘中。

この公式ブロガーのおすすめ記事

お問合せはお気軽に
https://service.shiftinc.jp/contact/

SHIFTについて(コーポレートサイト)
https://www.shiftinc.jp/

SHIFTのサービスについて(サービスサイト)
https://service.shiftinc.jp/

SHIFTの導入事例
https://service.shiftinc.jp/case/

お役立ち資料はこちら
https://service.shiftinc.jp/resources/

SHIFTの採用情報はこちら
https://recruit.shiftinc.jp/career/

みんなにも読んでほしいですか?

オススメした記事はフォロワーのタイムラインに表示されます!