< 前へ | 次へ >

演習 10: 正規表現の使用

オブジェクト・マップを使用して行う最後の事柄として、プロパティー値を正規表現に変換します。 この例では、正規表現を使用するとオブジェクト認識をより柔軟に行うことができます。
直前の演習では、ClassicsB でスクリプトが完全に成功する様子を学習しました。 ClassicsB でアプリケーションに対して加えられた変更は正しいものなので、それが目標でした。 そのため、現在のスクリプトはさらに続行するのに適切な状態にあります。 ここで、スクリプトを ClassicsA に対して再生すると、以前に加えられた変更のために再生は失敗します。 成功させるために、オブジェクトの複数のバリアントを許可することができます。 ダイナミック・オブジェクトや、 少しずつ異なるバージョンのオブジェクトを持つ複数のバージョンのアプリケーションを使用することがあり、その場合はそれらは両方とも正しいものです。 正規表現を使用して、テキストなどのプロパティー値の複数のバージョンを許可して、 このシナリオに適応させることができます。

オブジェクト・マップを開いてオブジェクトを統合する

  1. ClassicsA に対して再生するには、スクリプトの先頭にある startApp コマンドを編集して、 B を A に変更します。
  2. 「Functional Test」ツールバーにある「Functional Test スクリプトの実行」をクリックします。 再生の際に、Functional Tester はパスワード・チェック・ボックス・オブジェクトで短く一時停止しますが、 やがてそれは終了します。 ここでスクリプトは警告を出します。 ログ内で、それが同じオブジェクトの rememberPassword テスト・オブジェクトであることに注意してください。
  3. ログを閉じて、パスワード・チェック・ボックス・オブジェクトからオブジェクト・マップを開きます。 これは演習 8 で行ったように、スクリプト・エクスプローラーで「rememberPassword」を ダブルクリックすることによって行います。
  4. オブジェクト・マップで、「アプリケーション」 > 「実行」をクリックして アプリケーションを開きます。 「ClassicsJavaA」を選択してから、「OK」をクリックします。
  5. 任意の CD を選択し、ClassicsCD で「Place Order」をクリックして、 「Member Logon」ウィンドウを開きます。
  6. 「テスト・オブジェクト」 > 「オブジェクトの挿入」をクリックして、 新規オブジェクトをマップに追加します。
  7. オブジェクト・ファインダーを使用して、アプリケーション内の「Member Logon」ウィンドウでパスワード・チェック・ボックスを選択します。
  8. 「次へ」をクリックしてから、 「完了」をクリックします。
  9. オブジェクト・マップの上部ペインで、古いチェック・ボックス・オブジェクトを 新規のチェック・ボックス・オブジェクトにドラッグすることにより、それらのオブジェクトを統合します。
  10. 必要であれば、「テスト・オブジェクトの統合」ウィザードのいずれかの側を外側にドラッグして拡大し、 フィールドを長くしてください。

    ここでは 2 つの異なる正規表現を使用します。 1 つは name プロパティーに対するもので、 1 つは text プロパティーに対するものです。

    統合されたオブジェクトは、 「統合されたテスト・オブジェクトのプロパティー」グリッド (上部ペイン) に表示されます。 name プロパティーの値は checkRemember です。

プロパティー値の正規表現への変換

  1. 上部ペインで、「checkRemember」値を右クリックしてから、 「正規表現への値の変換」をクリックします。

    Functional Tester は値テキストの前に「xy」アイコンを表示して、 値を正規表現として指定します。

  2. name 値を再度ダブルクリックして、フィールドを編集可能にします。
  3. check という語を削除してから、残りの部分を編集して [rR]emember とします。
  4. セルの外側をクリックします。

    このパターンにより、「remember」の語が大文字の「R」でも小文字の「r」でも許可されて、 成功するようになります。 比較は大/小文字を区別するので、完全一致だけが成功するため、これは重要です。 text プロパティーの値は、「Remember Password」です。

  5. 「Remember Password」値を右クリックしてから、 「正規表現への値の変換」を選択して変換します。
  6. 値をダブルクリックして、Remember.*Password となるように編集します。 スペースを除去し、ピリオド (.) およびアスタリスク (*) 文字を追加することになります。
  7. 別のセルをクリックします。

    「.」は、その位置に任意の文字が出現することを許可します。 アプリケーションの 1 つのバージョンではこのプロパティー内の 2 語の間にスペースがあり、 別のバージョンではスペースがありません。 このパターンを使用すると、両方のケースに対応します。

  8. 「次へ」をクリックしてから、 「完了」をクリックします。
  9. オブジェクト・マップで「ファイル」 > 「保管」をクリックして、 変更を保管してから、オブジェクト・マップを閉じます。
  10. ClassicsCD を閉じます。
  11. ClassicsA に対してスクリプトを再び再生します。イメージ検査ポイントとプロパティー検査ポイントが失敗します。 イメージ検査ポイントは、オブジェクト javax.swing.JLabel の高さと重みが異なっているために失敗します。 プロパティー検査ポイントは、テキスト Orders for Trent Culpito は正規表現に変更されていないので、 失敗することが予期されます。 ClassicsA についてのオブジェクト認識に関する警告は、ログからなくなっています。
  12. ログを閉じます。
  13. ClassicsB を再生するように startApp コマンドを変更してから、スクリプトを実行します。

    オブジェクト認識が、ClassicsB に対しても成功します。 正規表現を使用すると、アプリケーションの異なるバージョンで異なるプロパティーを持つオブジェクトを より柔軟に認識できるようになり、どちらも再生中に認識されます。 正規表現について詳しくは、Functional Tester のヘルプを参照してください。

< 前へ | 次へ >

フィードバック