Skip to main content
バージョンタグがご希望のコンテンツと一致しているかご確認ください。 または、最新バージョンをご利用ください。

シナリオテスト

UIベースの機能テストとエンドツーエンドのシナリオテストを使って、エンドツーエンドのケースが予期したとおりに機能することを検証します。 UIベースのシナリオテストツールを使用すると、開発者は複雑なコードを記述することなく、シングルページアプリケーション(SPA)に関する機能的で有効なテストを作成できます。 シナリオテスト機能へのアクセスは、@baseclasspxScenarioTestAutomation権限で付与されます。 この権限は、すぐに使えるPegaRULES:SysAdm4ロールで使用できます。

テストはアプリケーションルールで定義された専用のテストルールセットに保存されます。 テストルールセットの詳細については、「Creating test ruleset to store test cases」を参照してください。

補足: テストスイートの詳細については、「Grouping scenario test into suites」を参照してください。 

機能のシナリオテスト

シナリオテストを使って、UIベースのエンドツーエンドのシナリオを作成し、アプリケーションをテストできます。ランタイムツールバーにアクセスできるユーザーは、アプリケーションポータルのコンテキストでシナリオテストを取得できます。 Dev Studioアプリケーションポータルで、Launch portalメニューを使用して、特定のポータル(ユーザーポータルなど)を選択して移動し、テストレコーディングを開始します。 シナリオテストを作成または変更するには、実行時ツールバーのAutomation Recorderを使用します。

scenario-recorder

テストレコーダーを開始するときに、 Case typeまたはPortal シナリオテストのいずれかを指定します。 

補足: Deployment Managerからシナリオテストを実行するには、Seleniumランナーを使用する必要があります。 詳細については、「Deployment Manager guidelines on running scenario tasks」を参照してください。 シナリオテストは、関連付けられているPega APIを使って他のパイプラインツールからも実行できます。 詳細については、ディスカッションの投稿「Pega RESTful API for remote execution of scenario tests」を参照してください。
次の図で「+」アイコンをクリックすると、Automation Recorderの機能の詳細が表示されます。

以下のインタラクションで理解度をチェックしてください。

明示的なアサーションとシナリオテスト

インタラクションは可視化された一連のステップに記録され、テストステップの完了には遅延を含められます。 オートメーションレコーダーを使って要素にカーソルを合わせると、オレンジ色のハイライトボックスが表示され、テストできる対応ユーザーインターフェイス要素が示されます。

オレンジ色のハイライトボックスのMark for assertionアイコンは、2つの機能を提供します。

  • テストシナリオのアクション実行後の待機時間。
  • テストシナリオで検証ステップを作成する機能。 

 

runtime-scenario-testing

明示的なアサーションを使用して、予想される出力を定義し、アプリケーションのビジネス要件またはテスト要件を検証します。 たとえば、顧客タイプのプロパティがGoldに等しい場合、顧客の注文に10%割引が適用されることを要件とします。 テストに合格しなかった場合は、10%が適用されていない箇所を示す結果が表示されます。 

検証はそれぞれテストシナリオを実行する際に完了されます。 待機時間を追加することで、ステップの応答の遅延が予想される場合に、アプリケーションの処理時間を増やしておくことができます。 待機時間の機能は、テストスクリプトでステップの1つの応答時間が遅いためにすべてのステップが失敗してしまう、ということがないようにするために重要です。

「Scenario Testing」ランディングページ

テストは、保存後に「Application: Scenario Testing」ランディングページで利用できます。 ランディングページには、Dev Studioのヘッダー(Configure > Application > Quality > Automated Testing > Scenario Testing> Test Cases)からアクセスできます

シナリオテストのランディングページには、グラフィカルテスト作成ツールが用意されています。このツールを使って、複雑なコードを記述せずにテストの対象範囲を拡大できます。 シナリオテストケースを表示および実行できます。 レポートを表示することで、シナリオテストに合格しなかったケースタイプおよびポータルを特定できます。

次の画像で「+」のアイコンをクリックすると、ランディングページの各種機能の詳細が表示されます。

補足: ランディングページからのシナリオテストスイートの実行の詳細については、「Running scenario test suites」を参照してください。

シナリオテストに関するベストプラクティス

スモークテストやリグレッションテストなど、特定の目的のためにシナリオテストを作成します。 テストを実行する前に、ログインして手動でケースタイプを作成すると、キャッシュされたページが高速でレンダリングされます。 

アプリケーションの品質を向上させるために、プロジェクトリーダーやリードシステムアーキテクト(LSA)は、シナリオテストの結果を定期的にレビューし、次の作業を行います。 

  • 失敗したテストケースをレビューし、修正アクションを実行する。
  • ケースタイプおよびポータルルール用のテストケースを追加し、テストの対象範囲を拡大する。
  • 新たに導入された機能変更の影響があるため、レビューを実施し、チームメンバーに既存のテストケースをすべて更新するよう指示する。

テスト中のアクションの実行

シナリオテストはライブ入力を取得するため、記録開始後はアクションの実行に時間がかかります。 ページまたはページ要素(ドロップダウンやセクションなど)が完全に更新されるまで待ってから、次のステップを記録します。 同様に、クリックアクションに関連付けられているアクティビティが更新されるのを待ってから、それ以降のクリックアクションを実行します。

ステップが更新されると、記録パネルで確認できます。 シナリオテストの記録中に問題が発生した場合は、テストをキャンセルして記録を再開してください。 

記録パネルの後ろにある要素を記録する必要がある場合は、記録パネルを折りたたんで記録してください。 記録後、再び記録パネルを展開すると、記録したステップを表示できます。 

補足: 記録パネルの折りたたみと展開は、ステップとして記録されません。 

フォームにデータを入力する際に自動入力を使用しないでください。選択内容がテストに悪影響を及ぼす可能性があります。 また、既存セクションの任意の要素に対するdata-test-IDを更新すると、シナリオテストが失敗します。 data-test-idを更新する必要がある場合は、テストケースを再作成するか、更新してください。 

シナリオテストの制限事項

シナリオテストは、記録しているポータルと同じポータルで実行する必要があります。 たとえば、マネージャーポータルでシナリオテストを開始した後で、ユーザーモバイルポータルからテストを実行することはできません。 テストが必要なポータルごとに、別のシナリオテストを実行してください。 ログアウトするとテストが終了するため、別のペルソナやログインを使用してシナリオテストを実行することはできません。

その他にも、以下のような制限事項があります。

  • ファイルのアップロードやダウンロードは、オペレーティングシステムとのインタラクションが必要なため、サポートされていません。 
  • オンホバーアクションなど、ホバーに関連するCSSスタイルは、シナリオテストでは使用できません。 
  • シナリオテストに別のシナリオテストを含めることはできません。 
  • シナリオテストは、テストデータのセットアップやクリーンアップをサポートしていません。 

以下のインタラクションで理解度をチェックしてください。


このトピックは、下記のモジュールにも含まれています。

If you are having problems with your training, please review the Pega Academy Support FAQs.

このコンテンツは役に立ちましたか?

このコンテンツは 50% のユーザーにとって役に立ちました。

改善できるところはありますか?

We'd prefer it if you saw us at our best.

Pega Academy has detected you are using a browser which may prevent you from experiencing the site as intended. To improve your experience, please update your browser.

Close Deprecation Notice