HCL OneTest: セカンダリリクエストジェネレータを用いた静的リソースに関するアプリケーションの動作の効果的なシミュレート
2022年3月1日
著者: Arun Kutty / Lead Software Engineer - L3 support, HCL OneTest Products
ウェブページを提供する際、ブラウザーのクライアントは通常、提供されるコンテンツに基づく一連の静的リソースをアプリケーションからダウンロードする。例えば、eコマースサイトで商品のページに移動すると、その商品の画像が複数表示される。静的リソースの数がページによって異なる場合、ページナビゲーションを指示するテストデータがパラメータ化されると、二次リクエストの正確な数を定義することが困難になる可能性があります。HCL OneTest Performance のセカンダリー・リクエスト・ジェネレーター機能を使用して、これをどのように簡略化できるかを見てみましょう。
あるショッピングサイトを閲覧しているところを想像してください。ホームページから、特定の商品カテゴリー、例えば、書籍に移動します。このセクションで、興味のあるタイトル、例えば「Test Automation」を検索すると、それにマッチした書籍のリストが表示されます。リストアップされた書籍の中から、気になるものをクリックします。すると、その書籍の専用ページが表示されます。このページには、画像、コンテンツサンプル、購入者のレビュー、FAQなど、あなたの興味を引くような詳細な情報が掲載されており、あなたの意思決定を助けることを意図しています。
今度は別の帽子をかぶってみてください。このショッピングサイトの下にあるウェブアプリケーションに携わるパフォーマンスエンジニアの帽子です。品質保証チームがこのアプリケーションをロードテストする場合、すべての仮想ユーザーが同じカテゴリー「本」をナビゲートし、同じ検索条件を設定するスクリプトがあったとして、あなたはそれを受け入れられるでしょうか?「テストオートメーション "を選択し、同じ検索結果を選択するようなスクリプトがあったとして、受け入れられるでしょうか?広範な負荷テストを達成するためには、ブラウジングパターンに適度な多様性が必要です。したがって、テストスクリプトをさまざまなデータで駆動し、アプリケーションのすべての部分を網羅的にテストすることが必要です。ありがたいことに、パフォーマンステスターはこのステップの重要性をよく理解しており、HCL OneTest Performanceのような製品は、このタスクを簡単にします。(余談ですが、HCL OneTestのポートフォリオには豊富なデータ作成能力もあります)。
二次資産に対する要求の中には、テストデータが変化しても変わらないものがある一方、そうでないものもあります。ショッピングサイトの例で説明しましょう。本のタイトルをテストデータに置き換えても、スタイルシートやスクリプトに関する二次的なリクエストの量に変化はありませんし、おそらくレビューを取得するリクエストにも変化はないでしょう。他の二次リクエストの場合はそうではないかもしれません。ダウンロードが必要な商品画像のリクエストは、選択した書籍によって異なるかもしれません。確かに、相関処理によって、リクエストデータをサーバーが以前に提供したコンテンツに関連付けることは、テストスクリプトの不可欠な部分です。しかし、再生時にリクエストの総数そのものを変化させるには、単純な相関関係だけでは不十分で、何らかの反復ロジックが必要になる。このような状況では、レスポンスの解析やループの制御にループやカスタムコードを使いたくなるのが自然だろう。幸いなことに、HCL OneTest Performanceをテストに使用すれば、この問題は優れた解決策になります。
HCL OneTest Performanceは、プルダウンする必要がある必要な数の資産に割り当てられたセカンダリー・リクエストを設定する作業を容易にする、すぐに使えるソリューションを提供します。このソリューションには、3つの個別ステップがあります。最初のステップは、セカンダリーリクエストを駆動するためのすべての参照を含むレスポンスを特定し、そこに配列参照を作成することです。そのような二次リクエストでは、リクエストの置換可能な部分は通常、URI自体にあることに注意すること。さらに、この部分は一般的に画像ファイルの名前です (myBook-image1.JPG のようなもの)。URI断片を置換するための参照値を見つけるには、断片の正確な値でテスト検索(Ctrl + H)を実行します。検索結果から、サーバーがこの値を返した場所を特定します。多くの場合、これはHTMLコンテンツを含むレスポンスで、IMGまたはAタグのHREFプロパティに含まれていることが一般的です。配列参照を作成する際には、通常の参照を作成するのとは少し異なることに注意してください。
配列の参照が作成された後、第2の部分である置換が始まります。通常、単純な置換であれば、リクエストの中から動的な部分を選んで置換すればよいでしょう。しかし、この場合、あなたが目指しているのは単純な置換ではありません。リクエストの数自体が動的である必要があり、配列の参照が指すセカンダリアセットの数によって駆動されることを思い出してください。したがって、何か別のことをする必要があります。それでは、詳しく見ていきましょう。
記録されたテストスクリプトの中で、表示中のアイテムに関連すると思われるリクエストのセットを特定することから、プロセスを開始します。ショッピングサイトの例では、本の画像をサーバーからクライアントにプルダウンするリクエストのセットになります。セット内の1つの要求を別にし、残りの要求を無効化または削除して、要求を取り除きます。無効化されていないリクエストを右クリックし、コンテキストメニューから「セカンダリHTTPリクエストジェネレータの作成」を選択します。これでリクエストは特別なものに変換されます。それが "HTTP セカンダリリクエストジェネレータ" です。
さて、いよいよ最終段階です。リクエストの URI (まれに他のフィールド) を、先ほど作成した配列の参照に置き換えることで、やろうとしたことが完成します。すべてを結びつけるには、HTTPセカンダリリクエストジェネレーターの詳細な設定を行う必要があります。(各プロパティに関する追加情報、およびプロセスをガイドするスクリーンショットについては、HCL OneTest Performance 製品のナレッジセンターを参照してください: https://help.hcltechsw.com/onetest/hclonetestperformance/10.2.2/com.ibm.rational.test.lt.http.doc/topics/t_create_sec_req.html?hl=secondary%2Crequest%2Cgenerator)
HCL OneTest Performanceを使ったパフォーマンステストは、精度が命です。HTTPセカンダリリクエストジェネレータは、重要な機能の1つですが、あまり活用されておらず、負荷テストにおいてセカンダリリクエストによる再生の動作を正確にするものです。このブログ記事では、HTTPセカンダリリクエストジェネレータがどのような場合に便利で、どのように使用するのかを学びました。