演習 1.10: 正規表現の使用

始める前に、「演習 1.9: 認識設定の変更」を完了してください。

オブジェクト・マップを使用した最後の作業は、プロパティー値を正規表現に変換することです。 この場合、正規表現の使用によって、オブジェクトの認識をより柔軟に行うことができます。

前の演習では、ClassicsB に対してスクリプトを完全に合格させる方法を見ました。 ClassicsB のアプリケーションに加えた変更は正しいので、その変更に合わせてスクリプトを更新したわけです。 したがって、作業を進めるという意味では、スクリプトは現時点であるべき状態になっていると言えます。 しかし、ClassicsA に対してスクリプトを再生すると、加えた変更のためにスクリプトは失敗します。 そこで、オブジェクトのバリアントを複数用意して、そのすべてを合格させることができれば便利です。 そのために使用できるのが動的オブジェクトです。つまり、1 つのオブジェクトに関して、少しずつ異なるバージョンを複数用意して、アプリケーションの正しいバージョンをいくつか作成するという手法です。 そのために、正規表現を使用して、テキストなどのプロパティーに複数の値を用意できます。

  1. ClassicsA に対してスクリプトを再生するために、スクリプトの先頭にある startApp コマンドを編集し、「B」を「A」に変更します。
  2. 機能テスト・ツールバーで、「機能テスト・スクリプトの実行」をクリックします。

再生中、機能テストはパスワード・チェック・ボックス・オブジェクトで一時的に休止しますが、最後には終了します。

スクリプトから警告が表示されます。 ログの中で、先ほどと同じオブジェクト、つまりパスワード・チェック・ボックスに関して警告が表示されていることを確認します。
  1. ログを閉じます。
  2. 演習 1.8 で行ったように、スクリプト・エクスプローラーでパスワード・チェック・ボックスをダブルクリックして、パスワード・チック・ボックス・オブジェクトからオブジェクト・マップを開きます。
  3. オブジェクト・マップで、「アプリケーション」 >「実行」をクリックして、アプリケーションを開きます。
  4. 矢印を使用して、「ClassicsJavaA」を選択します。 (間違いなく「A」を選ぶようにしてください。)
  5. 「OK」をクリックします。
  6. ClassicsCD で CD を選び、「Place Order」 をクリックして、「Member Logon」ダイアログ・ボックスを開きます。
  7. 演習 1.8 で行ったように、「テスト・オブジェクト」>「オブジェクトの挿入」をクリックして、新しいオブジェクトをマップに追加します。 さらに、オブジェクト・ファインダーを使用して、アプリケーションの「Member Logon」ダイアログ・ボックスのパスワード・チェック・ボックスを選択します。
  8. 「次へ」をクリックし、「完了」をクリックします。
  9. オブジェクト・マップの上部のペインで、古いチェック・ボックス・オブジェクトを新しいチェック・ボックス・オブジェクトにドラッグし、2 つのオブジェクトを統合します。
  10. 必要に応じて、「テスト・オブジェクトの統合」ウィザードの外側の一辺をドラッグして拡大し、フィールドを長くします。
ここでは、2 つの正規表現を使用します。1 つは、「name」プロパティーで使用し、もう 1 つは、「accessibleName」プロパティーで使用します。

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

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

機能テストは、値テキストの前にある「xy」アイコンにより、値が正規表現であることを示します。

  1. 再び「name」の値をダブルクリックすると、このフィールドを編集できるようになります。
  2. 「check」というテキストを削除し、その後を以下のように編集します。
  3. [rR]emember

  4. そのセルの外側をクリックします。

このパターンを使用すると、「remember」の先頭が大文字「R」の場合も小文字「r」の場合も合格になります。 比較操作では、大文字小文字が区別され、完全に一致したものだけが合格になるので、この点は重要です。

「accessibleName」プロパティーの値は、「Remember Password」です。
  1. 「Remember Password」値を右クリックし、「正規表現への値の変換」を選択して、値を変換します。
  2. その値をダブルクリックして、以下のように編集します。
  3. Remember.*Password

    つまり、スペースを除去し、ピリオド (.) とアスタリスク (*) 文字を追加します。

  4. 別のセルをクリックします。

「.」を使用すると、その位置にどの文字が入ってもよいことになります。 アプリケーションの 1 つのバージョンでは、このプロパティーの 2 つのワード間にスペースがあり、もう 1 つのバージョンではスペースがありません。 このパターンによって、その両方のケースをカバーします。

  1. ウィザードの「次へ」をクリックし、「完了」をクリックします。
  2. オブジェクト・マップで、「ファイル: 保管」をクリックし、この変更を保存してオブジェクト・マップを閉じます。
  3. ClassicsCD を閉じます。

では、実際に試してみましょう。

  1. ClassicsA に対してスクリプトをもう一度再生します。

ClassicsA のオブジェクト認識の警告がログに表示されません。

  1. ログを閉じます
  2. startApp コマンドを変更し、ClassicsB を再生し、スクリプトを実行します。

ClassicsB でもオブジェクト認識が合格になります。 正規表現を使用すれば、1 つのアプリケーションのさまざまなバージョンで、さまざまなプロパティーを持つ 1 つのオブジェクトに関して、再生時のオブジェクト認識をより柔軟に実現できます。正規表現の詳細については、機能テストのヘルプを参照してください。

要約」に挙げられている資料を確認して、チュートリアルを終了します。

ご利用条件 | フィードバック
(C) Copyright IBM Corporation 2002, 2004. All Rights Reserved.