ShowTable of Contents
JMeterを使ってXPagesアプリケーションのパフォーマンスを計測する
XPagesアプリケーションの負荷テストを実施する場合、Server.load(Lotus Domino 標準の負荷テストツール)ではGET要求しか行えないため、シナリオによっては十分なテストが行えない場合があります。当記事では、オープンソースのJMeterを使って、XPagesアプリケーションのパフォーマンス測定を行う方法について解説します。
JMeter概要
JMeterの特徴をは下記です。
・100%Javaの汎用テストツール
・HTTPプロキシを利用して、ブラウザ操作をキャプチャし、テストシナリオとして記録
・複数のスレッドを同時に起動して多重度による負荷をかけることが可能
JMeterの詳細は下記をご覧ください。
-JMeterの概要を短時間で理解するにはこちら。
今から3分で jmeter の使い方を身に付ける (負荷テスト入門)
-JMeterの詳細な使い方は下記参照。
JMeter を用いた Lotus Domino Web アプリケーションのパフォーマンス計測
-公式サイト
Apache JMeter™
参考.JMeterと他のツールの比較
参考として、JMeterと他のパフォーマンスツールの機能の比較表を以下に示します。
| Apache JMeter | Server.load | Rational Performance Tester |
リクエストのサポート | ○
GET/POST両方可能 | ×
GETのみ | ○
GET/POST両方可能 |
テストシナリオの作成・保存 | △
プロキシでユーザー操作をトレース
(データ相関は手動で関連付ける、後述) | ×
すべて手動で作成 | ○
プロキシでユーザー操作をトレース、データ相関を自動分析 |
仮想ユーザーの設定 | ○
複数ユーザー可能 | △
固定ユーザーのみ | ○
複数ユーザー可能 |
テスト結果の分析補助 | △
簡易なグラフの作成のみ | ×
グラフ作成は自作 | ○
各種グラフの作成可能 |
XPagesアプリケーションに対してJMeterを使用してテストする場合の考慮点
以下、2点について対応する必要があります。
・セッションIDを次のリクエストに引き継ぐ
・1つのページに継続して要求を行う場合、viewのidを引継ぐ
セッションIDを次のリクエストに引き継ぐ
XPagesアプリケーションは、クラシックWebと異なりステートフルな対話をクライアントと行うため、リクエストはセッションIDを引き引き継いで行う必要があります。
JMeterでセッションIDを引き継ぐためには、テスト計画に、「HTTPクッキーマネージャ」を追加します。
※「追加」-「設定エレメント」-「HTTPクッキーマネージャ」
1つのページに継続して要求を行う場合には、viewのidを引き継ぐ
viewとは,サーバーページ※全体を表すJSFのviewオブジェクトを指しています(Lotus Notes/Domino の文書の一覧を表示する”ビュー”とは別物であることに注意)。
XPagesから出力されたWebページには、form下部に必ずname属性が$$viewidという要素があります。そのvalueとしてviewのidが格納されています(下図の「d8x96mu6jm」)。
XPagesでは、このviewのidをもとに,表示されているWebページとサーバーページが紐付けられているため,XPagesではPOST要求や部分更新を行うGET要求において,このidを引き継いで要求を行う必要があります。
※XPagesでは、各コントロールをJavaのオブジェクトとして束ねたツリー構造(コンポーネント・ツリー)でページを管理しています。このページをここではサーバーページと呼んでいます。
サーバーページは、メモリまたはディスクに保存されます(デザイナーの「アプリケーションのプロパティ」-「XPages」タブ-「パフォーマンス」-「サーバーページの保持」)。
ディスクに保存される場合(8.5.3デフォルト)、下記のパスに保存されます。