DevTest ワークステーション を初めて開くと、プロジェクト パネルに examples という名前のプロジェクトが表示されます。
任意のサンプル ファイルをダブルクリックして開きます。 右側のパネルには、適切なエディタが開かれます。
実際のプロジェクト ファイルは、LISA_HOME\examples ディレクトリにあります。
テスト スイート AllTestsSuite とすべての .tst ファイル、および AllTestsSuite を実行するための付随データ ファイルが含まれるスイート MAR。 このスイートには、1User1Cycle0Think ステージング ドキュメント、DefaultAudit 監査ドキュメント、および project.config 設定ファイルも含まれます。
creditCheckValidate テスト ケースおよび monitorRunBase ステージング ドキュメントが含まれるテスト ベース モニタ MAR。
DatabaseModel 仮想サービス モデルおよび仮想サービス イメージが含まれる仮想サービス MAR。
webservices-xml-fail テスト ケース、Run1User1Cycle ステージング ドキュメント、および project.config が含まれるテスト ベース モニタ MAR。
async-consumer-jms テスト ケース、Run1User1Cycle ステージング ドキュメント、および project.config 設定ファイルが含まれるテスト ベース モニタ MAR。
以下のアイテムが含まれる テスト ベース モニタ MAR。
webservices-xml テスト ケース、Run1User1Cycle ステージング ドキュメント、および project.config 設定ファイルが含まれるテスト ベース モニタ MAR。
rawSoap テスト ケース、1User0Think_RunContinuously ステージング ドキュメント、および project.config 設定ファイルが含まれるテスト MAR。
project.config ファイルには、多数のプロパティのためのインテリジェント デフォルトが含まれます。
Data
Data ディレクトリには、デモ サーバの一部のサンプルを実行するために必要なデータ セット、キーストア、および WSDL が含まれています。
Monitors
CVS モニタのデモに使用するテスト ケース。 特定の cid でランダムに失敗します。
1 人のユーザ、1 サイクル、100% の反応時間が設定され、CAI が無効で、最長実行時間が設定されていないステージング ドキュメント。
1 人のユーザ、継続的な実行、136% の反応時間が設定され、CAI が有効で、最長実行時間が 15 秒のステージング ドキュメント。
1 人のユーザ、1 サイクル、100% の反応時間が設定され、CAI が無効で、最長実行時間が設定されていないステージング ドキュメント。 JMX および JBOSS メトリックを記録するよう選択されています。
Selenium テスト ケースのオプションをカスタマイズするために設定できる Selenium Web ドライバ パラメータを持つサンプル スケルトン パラメータ ファイル。
CVS モニタのデモに使用。 特定の cid でランダムに失敗します。
このテストは CVS のデモのモニタ設定に使用します。
Setup
Examples ディレクトリにある Setup ディレクトリには、すべての DevTest コンポーネントを起動し、すべての DevTest コンポーネントを停止し、CVS モニタをロードするためのバッチ ファイルが含まれています。
アクセス制御(ACL)を有効にしてスクリプトを使用するには、スクリプトの Service Manager コマンドにユーザ名とパスワードのオプションを追加します。 パスワードは自動的に暗号化されないため、オペレーティング システムに応じた適切な方法を使用して、必ずファイルを保護してください。
このステージング ドキュメントでは、反応時間がゼロの単一の仮想ユーザを実行します。 また、このステージング ドキュメントはテストを「継続的」に実行します。これは必ずしも「永久」を意味するものではありません。
このステージング ドキュメントで実行するテストが以下の条件のすべてを満たす場合、データが使い果たされると、実行が終了します。
複数のデータ セットがこれらの条件に一致する場合は、期限切れになる最初のデータ セットが実行を完了します。 適切な例については、multi-tier-combo.tst テスト ケースを参照してください。
このステージング ドキュメントは、ユーザが 1 人のテストを 0% の反応時間スケールで 1 回実行します。
DevTest インストールで IP スプーフィングのサポートをテストするには、このステージング ドキュメントを使用します。 このステージング ドキュメントの IP スプーフィングは、[IP スプーフィング]タブで有効にします。 サンプル サーバを実行している場合は、IP スプーフィング テスト用の Web ページを http://localhost:8080/ip-spoof-test で使用できます。
このステージング ドキュメントは、3 人のユーザ、継続的な実行、最長実行時間が 440 秒、および 100% の反応時間のテストを実行します。 このドキュメントでは、レポート ジェネレータのパラメータ チェック ボックスが 4 つすべてオンになっており、JBOSS JMX メトリックをすべて収集するよう指定されています。
このステージング ドキュメントは、ユーザが 1 人のテストを 100% の反応時間スケールで 1 回実行します。
このステージング ドキュメントは、ユーザが 1 人のテストを 100% の反応時間スケールで、CAI が有効な状態で 1 回実行します。
このステージング ドキュメントは、ユーザが 1 人のテストを 100% の反応時間スケールで 1 回実行します。 また、デフォルトのレポート ジェネレータの 4 つのチェック ボックスをすべてオンにします。したがって、Web ベースのモデル実行ページにより多くの項目が表示されます。
Subprocesses
このワンステップ テスト ケースはサブプロセスとしてマークされ、任意のサブプロセスの実行ステップから呼び出すことができます。
AllTestsSuite は、1user1cycle ステージング ドキュメントおよびデフォルトの監査ドキュメント AuditDocs/DefaultAudit.aud を使用して、DevTest Tests ディレクトリにあるすべてのテストを実行します。 レポート メトリックについては、要求と応答のみを記録し、デフォルト メトリックを作成します。 実行モードはシリアルです。
AllTestsSuite は、1user1cycle0think ステージング ドキュメントおよびデフォルトの監査ドキュメント AuditDocs/DefaultAudit.aud を使用して、DevTest Tests ディレクトリにあるすべてのテストを実行します。 レポート メトリックについては、要求と応答のみを記録し、デフォルト メトリックを作成します。 実行モードはパラレルです。
LISA Bank に口座を持つユーザを追加する簡単な JMS テスト。 2 つのステップからの応答のパターンを予想し、アサートします。
テスト ケースが応答キュー/トピックから継続的にメッセージを受信する「async consumer」キューのサンプル。 また、このキューは、メッセージを、到達した順にテスト ケースで使用可能にします。
最初のステップでキュー(テストの内部)を作成します。
2 番目のステップで、デモ サーバの JMS キューへ 3 つのメッセージを送信します。 async キューがメッセージを受信します。
3 番目のステップでは、async キューが 3 つのメッセージを受信したことを検証します。
LISA Bank の機能についての純粋な EJB テスト。 通常、Web ブラウザまたはその他の UI を記録することでアプリケーションをテストします。 これらのテストは「エンド ツー エンド」の統合テストです。 このようなテストは「食物連鎖の下位」に相当するため、(コードを記述する必要はないものの)高度な技術を持つ作成者が必要です。
このようなテストを使用することにより、開発チームは、ユーザ インターフェースが存在しないか頻繁に変更されるためにテストに間に合わないような場合に、ユーザ インターフェースなしで継続的にテストを実行してコードを検証できます。
このモデルは LISA Bank Web サービスを徹底的にテストします。 このモデルは、ejb3EJB テストと機能的にほとんど同一で、同じ目的で使用できます(テスト ケース ドキュメントを参照)。
このサンプル テスト ケースは、DevTest の IP スプーフィングのサポートを示します。
このテストは、REST ステップを使用して「http://localhost:8080/ip-spoof-test」という URL を要求します。これは要求するクライアントの IP アドレスが含まれる Web ページです。 その後、次の URL に SOAP 要求を送信します。これは、要求するクライアントの IP アドレスを返す操作が含まれる Web サービスを識別します。
http://localhost:8080/itko-examples/ip-spoof-test/webservice
このテスト ケースは、両方の要求をループで 10 回実行します。 このテストは、IP スプーフィング テストのステージング ドキュメント「ip-spoofing.stg」でステージングできます。 正しいネットワーク インターフェース設定を使用して、仮想ユーザの HTTP 要求および SOAP 応答で使用されているさまざまな IP アドレスを確認します。
このテスト ケースはシンプルな JMS サンプルで、XML/テキスト メッセージおよびオブジェクトをネイティブ Java 形式で送信する方法を示しています。
このテスト ケースは、DevTest を実行しているコンピュータに関する診断情報を取得します。 この結果は、サポートが設定の問題を解決するのに役立ちます。
このテスト モデルは、Web アプリケーションをテストするためのデータ セットとしてカンマ区切り値(CSV)ファイルを使用します。 DevTest に付属しているデモ版の Web アプリケーションでは、データベースに対するユーザの追加および削除を行えます。
このサンプルでは、ログ ファイルの ERROR または WARNING メッセージを監視して、テストに失敗した原因を示します。
このサンプルでは、データ セットを使用して、サンプルの AntiPattern ビーンに除算のための数値を 2 つ与えています。 データセットのほぼ中間で、オペランドとして 0 を与えます。 このオペランドによって、divide-by-zero 例外がサーバで発生します。 AntiPattern ビーンはこの例外をログに記録し、結果として -1 を返します。
このサンプルは一般的なアンチパターンです。内部エラーが発生したものの、外部ではその結果が正しくないことがわからないというものです。 結果は信頼できるように見えますが、正しくありません。 予期される結果は、EJB からコール元への例外の伝達です。
CAI を使用すると、ログに例外が記録されたという事実をエージェントが記録するため、このテスト ケースは失敗します。 したがって、DevTest では何か問題があると判断します。
CAI を使用する以外の方法としては、サーバのログ ファイルを監視するグローバル アサーションを設定することです。 正規表現で構成されるものを定義します。この場合は単純に「ERROR」のテストです。 正規表現は、必要に応じて単純にも複雑にも指定できます。
通常は、テストがただちに失敗するようアサーションを設定します。 この場合、「Error detected in log file」ステップに移動し、テストを正常終了させます。
DevTest では、テスト中のアプリケーションによってエラーまたは警告がログに記録される場合、それらのアプリケーションが渡されないと想定されています。 テスト ケースでは、同等のコンパニオンをデフォルトで使用することを検討してください。
このテストは、ネガティブ テストのサンプルです。 テスト ステップが失敗することを想定しているため、エラーを引き起こすことが予期されるサービス データを与えます。
このテストにはコンパニオンが 1 つ(NegativeTestingCompanion)があり、いずれかのステップが成功するとテストが失敗します。
このケースでは、既存のデモ サーバにユーザを作成します。 このデータはデータベース自体から取得します(ユーザ名データ セットはテーブルに直接クエリ)。 いずれかのステップが成功すると、テスト全体が失敗します。
成功する唯一のステップは「quietly succeed」ステップです。 このステップにより、この種のシナリオで失敗が予期されるステップにエディタで「quiet」とマークして、NegativeTestingCompanion に含まれないようにすることができます。
このテストはサブプロセスを呼び出して、デモ サーバの USERS テーブルに一意のユーザ名を挿入します。
このデータセットは、データ シートを介して一意コード ジェネレータから値を取得します。 同じことは、「カウンタ」データ セットを持つ一意コード ジェネレータも実行できました。 このサンプルは、あるデータ セットが別のデータ セットにどのように影響を及ぼすかを示します。
データ セットは指定された順に評価されます。 ステップが実行されるたびに、UniqueUser プロパティに新しい値が割り当てられます。 データ シートは、{{UniqueUser}} を 4 回参照するため、一意の値が 5 つ得られます。
いずれかのステップで失敗すると、ただちにテストが失敗します。
このテストを「main_all_should_fail」と比較してください。「main_all_should_fail」は各ステップが失敗することを想定しており、いずれかのステップが成功すると失敗する同様のテストです。 このプロセスはネガティブ テストと呼ばれています。
multi-tier-combo テストでは、さまざまなサービス エンドポイントを使用して LisaBank のサンプルを検証します。 SOAP、EJB、JMS、Selenium、および Web トランザクションをテストし、デモ サーバのデータベースを直接検証するなどのさまざまな方法でこれらのトランザクションを検証します。 このテストでは、Selenium ステップを実行するために Firefox ブラウザが必要です。
multi-tier-combo テストでは、さまざまなサービス エンドポイントを使用して LISA Bank のサンプルを検証します。 このテスト ケースでは、SOAP、EJB、JMS、および Web トランザクションをテストし、デモ サーバのデータベースを直接検証するなどのいくつかの方法でこれらのトランザクションを検証します。
また、このテストは、スプレッドシートから複雑な SOAP オブジェクトを作成する方法を示します。 プロジェクトの Data フォルダにある「multi-tier-users.xls」という名前のスプレッドシートは、最初のステップにある「User」データ セットに値を返します。
このテストを[対話型テスト ラン (ITR)]ウィンドウで実行すると、スプレッドシートの最初の行から 1 ユーザを作成した後、テストは終了します。
サンプルの 1User0Think_RunContinuously ステージング ドキュメントを使用してテストをステージングすると、データ セットの末尾に到達するまでテストが再起動されます。 このプロセスは大きなデータ セットを繰り返し反復する場合に適しています。 テスト ケースにループを使用することもできますが、柔軟性がなくなります。
ステージング ドキュメントでデータ セットを制御してテストを終了させると、多数の仮想ユーザにテストを広げることができます。 また、反応時間やその他のパラメータを使用して、テストのペースを制御できます。
テストの最初のステップで設定されるグローバル データ セットのみが、ステージング ドキュメントが「継続的なテスト実行を終了」する動作に影響を与えます。 データ セットがテストに対してローカルか、テスト内のどこかで宣言されている場合は、「継続的な実行」の動作は実際には「永久に実行」を意味します。
multi-tier-combo-se テストでは、さまざまなサービス エンドポイントを使用して LISA Bank のサンプルを検証します。 SOAP、EJB、JMS、および Web トランザクションをテストし、デモ サーバのデータベースを直接検証するなどのさまざまな方法でこれらのトランザクションを検証します。
また、このテストは、スプレッドシートから複雑な SOAP オブジェクトを作成する方法を示します。 最初のステップにある User データ セットは、プロジェクトの Data フォルダにある multi-tier-users.xls という名前のスプレッドシートがベースになっています。
このテストを[対話型テスト ラン (ITR)]ウィンドウで実行すると、スプレッドシートの最初の行から 1 ユーザを作成した後、テストは終了します。
サンプルの 1User0Think_RunContinuously ステージング ドキュメントを使用してテストをステージングすると、データ セットの末尾に到達するまでテストが再起動されます。 この方法は大きなデータ セットを繰り返し反復する場合に適しています。 テスト ケースにループを使用することもできますが、柔軟性が大幅に低下します。
ステージング ドキュメントでデータ セットを制御してテストを終了させると、多数の仮想ユーザにテストを広げたり、反応時間を使用してテストのペースを制御したりすることができます。
ステージング ドキュメントが「継続的なテスト実行を終了」する動作は、テストの最初のステップで設定されるグローバル データ セットによってのみ影響を受けることに注意してください。 データ セットがテストに対してローカルか、テスト内のどこかで宣言されている場合は、「継続的な実行」の動作は実際には「永久に実行」を意味します。
rawSoap ステップは、「listUsers」ステップで簡単な RAW SOAP 要求を実行するワンステップのテスト ケースです。
rest-example テストは、RESTful サービスを実行する方法を示します。 デモ サーバには JAX-RS のサンプルが含まれています。 このテストの各ステップでは、XML と JSON の両方を使用するサービスと対話する方法を示します。
scripting
CA Application Test は、JSR-223 スクリプティング エンジンを利用できるため、スクリプト ステップ、アサーション、データ プロトコル ハンドラ、一致スクリプト、およびほとんどすべての場所で、{{=%language%}} 構文により、さまざまなスクリプティング エンジンを使用することが可能です。
要求/応答ペアから JMS のサービスを作成する VSEasy の機能をテストします。
このテストは、簡単なサービス検証のサンプルです。 このテストでは、1 つの Web サービスと 1 つの EJB サービスを呼び出し、基盤となるデータベースを SQL を使用して検査して、サービスが適切に機能していることを検証します。
このテストは、Web レコーダを使用して生成された簡単な Web テストです。 このテストには、「空でない応答のアサート」などいくつかの基本的なアサーションが含まれます。これは自動的に生成されます。 また、このテストには、HTML 応答の <title> タグを解析して作成される「タイトルのアサート」アサーションが含まれます。 これらのアサーションは、テストを再生する場合に、記録したページが同じページであることを確認するのに役立ちます。
このテスト ケースは、EJB3 Web サービスからユーザを追加、取得、削除します。 このテストは、一意コード ジェネレータを使用して、設定ファイルから値が {{user}} であるプレフィックスを持つ数値を作成します。 パスワードは、設定ファイル内にハードコードされています。
このテスト ケースでは、インラインの base64 エンコードされた BLOB データおよび XOP/MTOM 添付ファイルを送受信する機能をテストします。 ステップのフィルタおよびアサーションでは、要求および応答が正しいことを確認します。
ws_security テスト ケースは、署名および暗号化された SOAP メッセージを使用する方法を示します。 最初の 2 つのステップは成功し、最後の 2 つのステップは失敗します。 コールは同じですが、Web サービスは暗号化または署名されていないメッセージを許可しません。
このテスト モデルは、署名および暗号化された SOAP メッセージを使用する方法を示します。 最初の 2 つのステップは成功し、最後の 2 つのステップは失敗します (コールは同じですが、Web サービスは暗号化されていないメッセージまたは署名されたメッセージを許可しません)。
このテスト プランでは、Java 環境が無制限強度の暗号化をサポートしている必要があります。 最初の 2 つのステップのどちらかが失敗する場合は、高い確率で、JCE jar を更新して無制限強度の暗号化を有効にする必要があります。 JCE jar は、www.oracle.com からダウンロードできます。 「JCE unlimited strength」というキーワードで検索し、お使いの Java バージョンに適した JCE ライブラリ(Java 7 用の JCE 7 など)を選択してください。 JCE jar をインストールしたら、DevTest サービスを再起動する必要があります。
監査ドキュメントに 2 つの ステップ エラーが記録されることが予期されます。 ここで、最後の 2 つのステップの両方でステップ エラーが発生することが予期されるため、2 つのステップ エラーについて監査します。 このように、監査ドキュメントは、受信されたイベント発生の数を監査することもできます。 3 つ目のステップ エラー エントリを監査ドキュメントに追加すると、ステップ エラーが 2 つしか発生しないため、監査では、このテストが失敗します。
TestsThatFail
このテスト ケースは、EJB3 Web サービスからユーザを追加、取得、削除します。 このテストは、一意コード ジェネレータを使用して、設定ファイルから値が {{user}} であるプレフィックスを持つ数値を作成します。 パスワードは、設定ファイル内にハードコードされています。
VServices
Images
DatabaseModel.vsi
kioskV4ServiceImage.vsi
kioskV6.vsi
si-kioskV5-dynamic.vsi
si-kioskV5.vsi
WebServicesModel.vsm
|
Copyright © 2014 CA Technologies.
All rights reserved.
|
|