でのアクション QTP/UFT 例を挙げて

⚡ スマートサマリー

でのアクション UFT/QTP テストスクリプトを論理的で再利用可能な単位に分割することで、テスターは自動化をより迅速に構築、保守、共有できるようになります。このページでは、3種類のアクションタイプ、それらを分割して呼び出す方法、およびアクション間でデータを渡す方法について説明します。

  • 🧩 定義: アクションは、テスト手順のセットを、モジュール式で再利用可能なユニットにグループ化します。 UFT/QTP スクリプト。
  • 🔁 再利用可能なアクション: 同じテスト内、または他のテストから、同じアクションを複数回呼び出すことができます。
  • 🔒 再利用できないアクション: 一度だけ実行し、作成されたテスト内でのみ実行してください。
  • 🌐 外部行動: 再利用可能なアクションは、別のテストから呼び出されると、読み取り専用の外部アクションになります。
  • ✂️ 分割: 大きなアクションを、独立した兄弟アクション、または入れ子になった親子関係のペアに分割します。
  • 📞 アクションの呼び出し: 新しいアクションを挿入するか、アクションのコピーを挿入するか、既存のアクションを呼び出します。
  • 📤 パラメーター: RunActionステートメントを使用して、アクション間で入力値と出力値を渡す。
  • 🗂️ データシート: テスト全体のデータにはグローバルシートを、各アクションのプライベートデータにはローカルシートを使用してください。

アクションとは何か UFT/QTP?

in UFT/QTP テストを「論理単位」または「ビジネスプロセス」に分割します。各アクションは、ログイン、フライト検索、チケット予約など、認識可能なタスクを実行する手順をグループ化します。アクションを使用することで、よりモジュール化され効率的なスクリプトを作成できます。

スクリプトが新しく作成された時点では、アクションは1つだけです。Micro Focusにアクションを追加できます。 UFT 要件に従ってスクリプトを作成し、追加された各アクションは、テストの他の部分とは別に独自のロジックとローカルデータを保持します。

長いスクリプトをアクションに分割すると、テストの変更が必要になった際に大きなメリットが得られます。テスターは、ログインシーケンスなどのアクションのみを更新でき、他のアクションに含まれる検索やチェックアウトのロジックには手を加える必要がありません。このようにアクションを分離することで、他のスクリプトから呼び出して同じ手順を再度記録する必要がなくなり、再利用可能な構成要素として活用できます。

例えば、一般的な航空券予約スクリプトは、ログインアクション、フライト検索アクション、チケット予約アクションにきれいに分割されます。それぞれが独自のステップとローカルデータを持つため、ログインの確認だけが必要なテスターは、予約フローを記録したり維持したりする必要は一切ありません。

アクションの種類 UFT/QTP再利用可能、再利用不可、外部

UFT/QTP 3種類のアクションをサポートしており、選択したタイプによって、アクションを複数のスクリプト間で共有できるか、作成されたテスト内でのみ有効になるかが決まります。

アクションタイプ 実行可能な場所 呼び出しテストで編集可能
再利用可能な 同じテストを複数回行う、またはその他のテストを行う はい、それを所有するテストから
再利用不可 作成されたテストのみ、かつ一度のみ はい
外部再利用可能 別のテストから共有保存アクションとして呼び出されます いいえ、読み取り専用です。ローカルのデータテーブルのコピーのみが編集可能です。

再利用可能なアクションは 外部行動 別のテストが、そのテストを所有するテストではなく、呼び出し元のテストから呼び出した瞬間に、外部アクションは読み取り専用になります。これは、共有アクションが数十のスクリプトで同時に使用される可能性があるため、すべての呼び出し元がステップを編集できるようにすると、他のスクリプトが壊れてしまうためです。呼び出しをパラメータ化して、データ テーブルのコピーをローカルで操作することは可能です。

経験則として、新しいアクションのロジックがまだ特定のテストに特化している間は、そのアクションを再利用しないようにしておくべきです。 Promo2番目のスクリプトが同じ手順を必要とするようになったらすぐに再利用可能にし、2番目のスクリプトが実際にそれを呼び出した瞬間に、外部の読み取り専用アクションとして動作することを期待します。

分割、コピー、アクションの呼び出し方法 UFT

アクションが大きくなるにつれて、ping スクリプトの各ステップが1箇所に集中すると、デバッグや再利用が難しくなる。 UFT 既存のアクションが扱いにくくなった場合に、それを2つの方法で分割できるようにします。

  • 独立した(兄弟姉妹間の)分割: 選択されたアクションは、2 つの別々のアクションに分割され、それぞれが順番に実行されます。ping 独自のローカルデータテーブル。
  • ネストされた(親子)分割: 選択されたアクションは、親アクションと子アクションに分割され、親アクションの最後のステップが子アクションを呼び出し、両者の間に論理的な依存関係が維持されます。

アクションが存在する場合、 UFT テストにアクションを取り込むための 3 つの方法を提供します。 インサート メニュー:

  • 新しいアクションの呼び出しを挿入します。 現在のテスト内に、新しい空のアクションを作成します。
  • アクションのコピーへの呼び出しを挿入します。 既存のアクションを、チェックポイント、パラメータ設定、データテーブルタブを含め、呼び出し元のテストに完全にコピーします。コピーは完全に独立しているため、編集内容が元のアクションに影響を与えることも、元のアクションから影響を受けることもありません。再利用可能なアクションと再利用不可能なアクションの両方をコピーできます。
  • 既存のアクションへの呼び出しを挿入する: 別のテストに保存されている再利用可能なアクションへの読み取り専用呼び出しを挿入します。この呼び出しは、作成されたテスト内でのみ変更できるため、すべての呼び出し元が同期され、大規模なテストスイートの保守が容易になります。

すべての呼び出しは、 RunAction 専門家の見解における声明:

' Calls Action2, which is stored in Test2, running it for one iteration
RunAction "Action2[Test2]", oneIteration

アクションは、アクション呼び出しプロパティで指定された回数だけ実行されます。たとえば、Action2がTest2のデータテーブルの各イテレーションで実行されるように設定されている場合でも、Test1の呼び出し元であるAction1が1回しか実行されない場合、呼び出し自体が1回しかトリガーされないため、Action2も1回しか実行されません。

💡ヒント: テストに複数のアクションが含まれている場合は、 テストフロー 表示メニューからペインを選択してドラッグして並べ替えます。これにより、 UFT 個々のアクション内の手順を編集することなく、アクションを実行します。

以下のビデオは、以前のチュートリアルで作成した 5 つのステップのログイン スクリプトを基にしています。 フライト予約 そして、アクションの作成、分割、呼び出しを最初から最後まで解説します。これはこのシリーズで最も長いビデオです。 UFT/QTP チュートリアルシリーズそのため、視聴しながらメモを取ると役立ちます。

詳しくはこちら こちら ビデオにアクセスできない場合

アクション間でパラメータを渡し、出力値を保存する方法

実際のスクリプトのほとんどは、アクションを呼び出すだけでなく、データをスクリプトに入力し、結果を読み出す必要があります。 UFT すべてのアクションに独自の入力パラメータと出力パラメータを与え、さらに戻り値を永続化するための複数の方法を提供する。

アクションとの間でパラメータを渡す

と同じように 関数またはメソッド プログラミング言語では、アクションは入力と出力を定義できる。 パラメータこのパラメータは関係ありません テストデータのパラメータ化 前述のとおり、ここでのパラメータはアクション自体に属し、データテーブルの列には属しません。設定方法は 編集 > アクション > アクションのプロパティまたは、キーワードビューでアクションを右クリックします。呼び出し時に値を渡すには、次の構文を使用します。

' Passes an input value and captures the action's output into myResult
RunAction "Action1", oneIteration, "testuser", myResult

アクションの出力値を保存する

スクリプトの残りの部分のニーズに応じて、アクションの戻り値を次の3つの場所のいずれかに保持することができます。

  • 変数: RunAction "Action1", oneIteration, "testuser", myResult 出力を直接保存します myResult.
  • An 環境変数: ユーザー定義変数を作成する ファイル > 設定 > 環境、次に書く RunAction "Action1", oneIteration, "testuser", Environment("env_var").
  • データテーブルの列: RunAction "Action1", oneIteration, "testuser", DataTable("A", dtGlobalSheet) 結果をグローバルシートに直接書き込みます。

グローバルおよびローカルのデータシート

アクションは、2種類のシートを通してテストデータを読み書きします。 グローバルデータシート テスト全体に固有のものであり、どの操作でもそこから読み取ったり書き込んだりすることができ、常に「Global」という名前が付けられます。 ローカルデータシート アクションごとに一意であり、そのアクションにちなんで名付けられ、自身のアクションのみが読み書きできます。

アクションの終了とイテレーションの制御

ステップでアクションを完了させるのではなく、途中で停止する必要がある場合、 UFT 以下の4つの声明を提供する。

  • ExitAction — 現在のアクションのみを停止します。
  • ExitActionIteration — 現在のアクションの反復処理を停止し、次の反復処理に進みます。
  • ExitRun —テスト実行全体を即座に停止します。
  • ExitGlobalIteration — 現在のグローバルテストの反復処理を停止し、次の反復処理に進みます。

実行中、 UFT/QTP スクリプト アクションを使用する際には、グローバル反復とローカル反復の両方に注意してください。どちらもアクションが実際に実行される回数に影響します。呼び出されたアクションの繰り返し頻度は、次の方法で変更できます。 アクション呼び出しプロパティ > 実行 タブを開き、そこで反復モードを設定します。

⚠よくある落とし穴: ローカルイテレーションごとに実行されるように設定されている呼び出しアクションが、一度しか実行されない親アクションからトリガーされた場合、実行は一度だけになります。呼び出しアクションが繰り返されると想定する前に、親アクションのグローバルイテレーション数と子アクションの呼び出しプロパティの両方を確認してください。

よくあるご質問

アクションは組み込みの UFT 独自のオブジェクトリポジトリとデータテーブルを備えた機能であり、再利用できる場合とできない場合がある。 function これはプレーンなVBScriptであり、常に再利用可能であり、独自のオブジェクトリポジトリやデータテーブルを持ちません。

はい。アクションのプロパティを開いて、いつでも再利用可能フラグを切り替えることができます。以前は再利用可能だったアクションを再利用可能でないとマークしても、他のテストがそれを呼び出し続けると、呼び出し元のテストは失敗し、 UFT 呼び出しが削除されるまで警告が表示されます。

アクションは、単独のスクリプトファイルとしてではなく、.mtr/.mtsアクションフォルダとしてテストと共に保存されます。一方、関数ライブラリは、どのテストでも関連付けて再利用できる個別の.vbsまたは.qflファイルとして保存されます。

はい。AIを活用したテスト設計ツールは、記録されたフローをスキャンし、ログイン、検索、チェックアウトなどの論理的なブレークポイントを候補アクションとして提案できます。ただし、テスト担当者は、最終決定する前に、分割が実際の再利用ニーズに合致していることを確認する必要があります。

これは役立ちます。自己修復オブジェクト識別機能は、アクション内で移動または名前変更されたコントロールを完全に失敗させるのではなく、再リンクすることで、多くのスクリプトで共有される再利用可能な外部アクションのメンテナンス負荷を軽減します。 Rev完全に信頼する前に、癒された対象物をよく観察する。