Jmeterシナリオ作成
Jmeterのシナリオ作成の手順を記載する。
シナリオは、EC-CUBEにログインする操作で作成する。
ベースシナリオ作成
手順メモ
①スレッドグループ作成
テスト計画->追加->Threads(Users)->スレッドグループ
②記録コントローラ作成
スレッドグループ->追加->ロジックコントローラー->記録コントローラー
③HTTPプロキシサーバ作成
テスト計画->追加->Non-Testエレメント->HTTPプロキシサーバ
④HTTPプロキシサーバ設定
1) 記録コントローラの設定
HTTPプロキシサーバ->TestPlanCreationタブ->対象となるコントローラ
テスト計画→スレッドグループ→記録コントローラ
2) HTTPプロキシサーバ->Requests Filteringタブ
挿入するパターン
.*IPアドレス/FQDN.*
除外するパターン
.*\.js.* .*\.gif.* .*\.svg.* .*\.css.* .*\.jpg.* .*\.woff2.* .*\.ico.* .*\.png.* .*\.woff.* .*\.ttf.*
⑤HTTPプロキシサーバ開始
テスト計画->HTTPプロキシサーバ->開始
⑥FireFoxプロキシ & 証明書設定
1) プロキシサーバ設定
127.0.0.1:8888
2) 証明書インポート
オプション->プライバシーとセキュリティ->証明書->証明書を表示
認証局証明書タブ→インポート
jmeterのbinフォルダは以下の「crt」ファイルをインポート
"この認証局によるこのウェブサイトの識別を信頼する"
⑧ログイン操作が記録されてることを確認し、名前変更
⑨リスナー作成
スレッドグループ->リスナー->結果をツリーで表示
⑨ベースシナリオ動作確認
スレッドグループ->記録コントローラ-->開始(上部にある緑矢印)
結果をツリーで表示->応答データタブ
表示方法をTextからHTMLに変更すると画面表示で確認可能
★ログインができてない、Hidden、Cookieが設定できてないため★
動的パラメタ対応
手順メモ
①シナリオ移動 & 記録コントローラ削除
※ベースシナリオ出来た為、記録コントローラは不要
シナリオを全てと、結果をツリーで表示をクリックし、スレッドグループ直下にドラッグ & ドロップ
記録コントローラを右クリックし削除
②ログインエラー検知
※正しくログインできた場合の条件を設定。このケースではログイン後、"ログアウト"が右上に表示される事を利用。
スレッドグループ->ログイン実施操作(03_LOGIN_TOP)を右クリック->追加->アサーション->アサーション
テストするレスポンスフィールド->テキストのレスポンス→パターンマッチルール->含む
テストパターンフィールに値("ログアウト")を設定し、追加をクリック
シナリオ実行し、ログインエラーが検知される事を確認
③クッキー設定
ブラウザの開発者ツールを使いCookieを使ってるかを確認する。
次にCookieは記録しない設定である事を確認
Cookieの記録設定
スレッドグループ->追加->設定エレメント->HTTPクッキーマネージャ
繰り返し毎にクッキーを破棄しますか?にチェックを入れる。
④クッキー設定の確認
シナリオ実行し、クッキーがセットされてる事を確認
⑤Hiddenパラメタ設定
ブラウザの開発者ツールを使いHiddenパラメタを使ってるかを確認する。
次にログイン実行時のシナリオより、送信したHiddenパラメタを確認
次にHiddenパラメタの指定方法をログイン実施の前ページの結果より検索
次にログイン画面(02_LOGIN)で正規表現抽出を設定
02_LOGIN->追加->後処理->正規表現抽出
★ポイント★行頭からマッチ必要。以下みたいに書く。
.*.*<INPUT value="(.*)" NAME="HOGE" TYPE="hidden">
次にログイン実行画面(03_LOGIN_TOP)に、Hiddenパラメタの変数を設定
⑥Hiddenパラメタ設定の確認
シナリオ実行し、ログインが成功した事を確認
シナリオ最適化
手順メモ
外部ファイルの読み込み
今までのシナリオだと1ユーザーしか使えない。外部ファイル読み込みで複数ユーザーを利用可能。
ユーザー以外の入力用データの読み込みでも利用可能。この手順ではユーザー情報の読み込みで利用。
負荷テスト用パラメタ設定
手順メモ
①結果表確認リスナー追加
スレッドグループ->追加->リスナー->結果を表で表示
各シナリオの実行時間の情報が得られる。
②タイマ設定
スレッドグループ->追加->タイマ>一様乱数タイマ
※3~5秒の遅延
上記は全シナリオに統一で設定。各シナリオ別に設定する際は、スレッドグループでなく各シナリオに一様乱数タイマを追加する。
図は参考サイトより引用
④エラー後のアクション設定
⑤設定の保存
テスト計画をクリックした状態で、保存をする。
Jmeterセットアップメモ
JAVAセットアップ
Jmeterセットアップ
手順メモ
①Jmeterダウンロード
Apache JMeter - Download Apache JMeter
②日本語化
apache-jmeter-5.3\bin\jmeter.bat
上記ファイル編集
※変更前
set JMETER_LANGUAGE=-Duser.language="en" -Duser.region="EN"
※変更後
rem set JMETER_LANGUAGE=-Duser.language="en" -Duser.region="EN" set JMETER_LANGUAGE=-Duser.language="ja" -Duser.region="JP"
③起動確認
jmeter.batをダブルクリック
④デザイン変更
Jmeter画面より
Options->Look and Feel
Windows性能情報調査メモ
パフォーマンスモニタ
起動方法
perfmon
使い方メモ
リアルタイムで使う場合
左ペインの"パフォーマンスモニタ"
スクロール表示
プロパティ→"グラフ"タブ→スクロール
スケール
- パフォーマンスモニタの縦軸のMAX値はデフォルト100。
- 採取した値をプロットする時の係数。デフォルトは1。
- 値が%で表現するデータはデフォルトで問題なし。
- 大きな数値は、デフォルト100以内には収まらない。スケールを0.01とかにすると、100以内に収まる。
ベンチマーク時(記録用)
見るポイント
パフォーマンスモニタでCPUリソース監視する際の主なカウンターについて – Rainbow Engine
パフォーマンスモニタでディスク(PhysicalDisk)監視する際の主なカウンターについて+具体的にどこをカウントしているのか?を図で表現してみた – Rainbow Engine
パフォーマンスモニタでメモリ(Memory)監視する際の主なカウンターについて+具体的にどこをカウントしているのか?を図で表現してみた – Rainbow Engine
カテゴリ | 項目 | 説明 |
---|---|---|
Processor | %Processor Time | CPU使用率 |
Processor | %User Time | CPU使用率(User) |
Processor | %Privileged Time | CPU使用率(Kernel) |
Memory | Pages/sec | ページIN/OUT。20以上はボトルネック可能性あり |
Memory | %Committed Bytes In Use | 仮想メモリ使用率 |
Memory | Available MBytes | 空きメモリ |
Paging File | %Usage | ページファイル使用率 |
Disk | Current Disk Queue Length | キュー待ちIO要求数。平均2以上はボトルネックの可能性あり |
Disk | %Disk Time | ビジー率。継続50%以上はボトルネックの可能性あり |
Process | %Processor Time | CPU使用率 |
Process | Working Set | 物理メモリ使用サイズ(共有込み) |
Process | Working Set - Private | 物理メモリ使用サイズ(共有なし) |
Process | Thread Count | アクティブスレッド数 |
ベンチマーク時(リアルタイムモニタ用)
リソースモニタ
起動方法
perfmon /res
Windows負荷ツール
Windows環境で利用できるMicrosoft製負荷ツール(2020年版) | 4thsight.xyz
HDDは以下が良さそう。
CrystalDiskMarkのダウンロード - 窓の杜
おまけ
ページフォルトとは?
プログラムがアクセスした仮想メモリのデータが、物理メモリにない場合にOSに通知する処理。OSは、この通知を受けたら、物理メモリ上のデータの内、ページアウト可能なデータをページアウトして、物理メモリの空きを確保し、ページフォルトしたデータを読み込む。
ページフォールト(page fault)とは - IT用語辞典 e-Words
配布リスト宛てのメールに付与されるEOPヘッダ
確認したヘッダ
[環境]
・配布リスト作成
・メンバーはテナント外アドレスのみ
テナント外アドレスで受信したメールのヘッダ
正常なメール
X-Forefront-Antispam-Report: CIP:XX.XX.XX.XX;CTRY:JP;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:ip-XX-XX-XX-XX.ap-northeast-1.compute.internal;PTR:ec2-XX-XX-XX-XX.ap-northeast-1.compute.amazonaws.com;CAT:NONE;SFS:(346002)(39830400003)(396003)(376002)(136003)(558084003)(68406010)(55016002)(70586007)(956004)(2616005)(2160300002)(34206002)(356005)(316002)(33656002)(36906005)(83170400001)(336012)(498600001)(26005)(19618925003)(1076003)(7696005)(42882007)(2906002)(46492009)(25626001)(38292003)(421364004)(425394004)(19559445001);DIR:OUT;SFP:1102;
SCL:1
SFV:NSPM
CAT:NONE
SPAMメール
X-Forefront-Antispam-Report: CIP:XX.XX.XX.XX;CTRY:JP;LANG:en;SCL:7;SRV:;IPV:CAL;SFV:SPM;H:ip-XX-XX-XX-XX.ap-northeast-1.compute.internal;PTR:ec2-XX-XX-XX-XX.ap-northeast-1.compute.amazonaws.com;CAT:OSPM;SFS:(39830400003)(346002)(396003)(376002)(136003)(218001);DIR:OUT;SFP:1501;
SCL:7
SFV:SPM
CAT:OSPM