ヘッダーをスキップ

Oracle® Functional Testing OpenScriptユーザーズ・ガイド バージョン9.20 B62630-01 |
| 目次 | 索引

戻る | 次へ |

# 5 Web機能テスト・モジュールの使用

この章では、Openscript Web機能テスト・モジュールの設定および使用手順について説明します。このテスト・モジュールは、Webブラウザのドキュメント・オブジェクト・モデル（DOM）を通じてオブジェクトにアクセスし、webベース・アプリケーションをテストします。

## 5.1 Web機能テスト・モジュールについて

OpenScript Web機能テスト・モジュールは、Webドキュメント・オブジェクト・モデル（DOM）を使用するWebベース・アプリケーションの機能テストをサポートするアプリケーション・モジュールです。OpenScriptでは、技術部門だけではなく非技術部門のテスターも簡単に使用できる柔軟性の高いスクリプティング・インタフェースを提供しています。コード・ビューおよびGUIビューの両方のスクリプティング・インタフェースでスクリプトを作成できます。

機能テスト・モジュールは、ドキュメント・オブジェクト・モデル（DOM）の記録および再生機能を備えた、OpenScriptプラットフォームの拡張モジュールです。DOMレコーダは、Webページのオブジェクト、アクションおよびナビゲーションを自動的に取得し、ツリー・ビュー・ノードとして（コード・ビューの基礎となるコードとともに）スクリプトに記録します。また、追加のGUIスクリプト修正オプションも提供されています。Web機能テスト・スクリプトはHTTPスクリプトとは異なります。Webアプリケーションのテストには両方が使用されますが、HTTPスクリプトは基礎となるHTTPネットワーク・プロトコルを自動化するのに対し、Web機能テスト・スクリプトはブラウザUIを自動化します。

Web機能テスト・モジュールはOracle OpenScriptプラットフォームの拡張モジュールであり、Web機能テストの記録および再生機能でプラットフォームを拡張します。Web機能テスト・モジュールは、OpenScriptプラットフォーム（結果ビュー、詳細ビュー、プロパティ・ビュー、コンソール/問題の各ビュー、詳細設定、ステップ・グループ、スクリプト・マネージャ、ワークスペース・マネージャを含む）と完全に統合されます。

Web機能テスト・レコーダにより、ツリー・ビューにコマンドがわかりやすく表示されます。スクリプト・コマンドはデフォルトで、それらのコマンドが実行されたWebページによって、ステップ・グループに分類されます。各ステップ・グループには、そのページで実行された記録済のアクションに対応する1つ以上のスクリプト・コマンドが含まれます。ステップ・グループのデフォルト名はWebページの（"Title"タグで指定された）タイトルです。

OpenScriptによって、Web機能テスト・スクリプトの再生結果が結果ビューに表示されます。結果ビューには、各スクリプト・コマンドの結果が表示されます（失敗の期間やサマリーを含む）。結果レポートは同じ情報をHTMLフォーマットの結果レポートにコンパイルします。結果をOpenScript GUIから標準フォーマット（CSV / HTML）でエクスポートすることもできます。また、コマンドラインを通じた自動再生によっても結果は生成されます。

Web機能テスト・モジュールAPIには、追加のプログラミング機能を提供する"Web"クラスが含まれています。

### 5.1.1 Web機能テスト・モジュールの主な機能

Web機能テスト・モジュールには、次の機能があります。

- ドキュメント・オブジェクト・モデル・オブジェクトおよびアクションを記録し、再生を自動化します。オブジェクトとアクションは、Webブラウザ（IEまたはFirefox）で生成できます。

- 機能テスト・スクリプトを再生して機能が適切かどうかを検証します。再生は、OpenScriptユーザー・インタフェースでインタラクティブに実行され、Oracle Test Managerでもサポートされます。

- 統合された完全なスクリプト・コード・ビューが提供されており、Web機能テスト・モジュールのスクリプトを生成できます。Web機能テスト・モジュールには追加のAPIが含まれており、Web機能テスト・プロトコルのコード・スクリプティングがサポートされています。

- ユーザーは、機能テスト・スクリプトへのユーザー入力をパラメータ化し、その入力データを外部データファイル（データバンク）から取り込むことができます。

- ユーザーは、オブジェクトおよびアクションを検証するためのテスト・ケースを挿入できます。

- 詳細設定インタフェースの機能テスト・カテゴリに含まれる機能テスト・スクリプトに固有の追加オプション/設定項目が提供されています。

- 機能テスト・スクリプトの再生結果を結果ビューおよびコンソール・ビューでレポートします。

## 5.2 Web機能テストの記録

Web機能テスト・モジュールでは、ドキュメント・オブジェクト・モデル・オブジェクトおよびアクションを自動再生できるようにWebブラウザに記録します。レコーダにより、ブラウザでGUIアプリケーションを自動化するための機能テストおよび回帰テストのスクリプトが作成されます。

OpenScriptにより、標準のWeb DOMオブジェクト（リンク、イメージ、フォーム、フォーム要素など）およびイベント（クリック、マウスダウン、フォーカスなど）が、再生用に記録されます。Web DOMオブジェクトは、「オブジェクト識別」の下にあるWeb機能テスト記録のプリファレンスで構成されている1つ以上の属性で識別されます。オブジェクト識別属性は、新規スクリプト、またはツリー・ビューやコード・ビューですでに記録済コマンドの「プリファレンス」グローバル設定を使用して、ユーザーが後から変更できます。すべてのWeb DOMオブジェクト、イベントおよび属性がサポートされます。記録は、Internet ExplorerまたはFirefoxで構成できます。ブラウザ・タイプは、詳細設定で設定できます。

Web機能テスト・モジュールには、Web DOMレコーダを開始してWebページのアクションをスクリプト・ビューに取得するための記録ツールバー・ボタンが備わっています。記録ツールバーには、記録を開始および停止するツールバー・ボタンが含まれています。OpenScriptレコーダではまた、ブラウザとOpenScript間の切替えを必要としない記録の際に使用できる、フローティング・ツールバーも開くことができます。

### 5.2.1 Web機能テスト記録の詳細設定の設定

Web機能テスト・スクリプトを記録する前に、Web記録の詳細を設定します。

1. OpenScriptを起動します。

2. 「ビュー」メニューから「OpenScript 詳細設定」を選択します。

3. 「OpenScript」ノード配下の「記録」カテゴリを開きます。

4. 「Web 機能テスト」を選択します。

5. 「一般」タブをクリックし、次のように記録の一般詳細設定を設定します。

   ブラウザ: Web機能テストの記録時に使用するブラウザ・オプションを指定します。

   - 異なるスクリプトを記録する場合にいつも新しいブラウザを起動する: 選択すると、新しいスクリプトを記録するたびに新しいブラウザが開きます。

   その他: その他の記録設定を指定します。

   - スクリーン ショットの取得: 選択すると、記録時にスクリーン・イメージが取得されます。

   - HTML の取得: 選択すると、記録時にページ・ソースHTMLが取得されます。

   - URL の取得: 選択すると、ページのURLが取得されます。

   - フレームの取得: 選択すると、ページのHTMLフレームが取得されます。

   - 自動ページを無視: 選択すると、記録時にサーバー側の自動ページが無視されます。

   - アクション キャッシュ間隔: 記録時にページ・アクションをキャッシュする頻度を指定します。この設定により次のケースが決定されます。

     記録中、同じWebページ要素上のテキストが「アクション キャッシュ間隔」時間設定内に変更された場合、前に記録された値は、変更された値に置き換えられます。Javaコードでは、`setText`アクションが、変更された値に置き換えられます。

     記録中、ユーザーがWebページでアクション（ボタン・クリックなど）を実行した後、アクション・キャッシュ間隔内にブラウザ・ウィンドウが閉じた場合、ウィンドウ・クローズ・イベントは、前に実行されたアクションが原因であるとみなされるため、記録されません。

   - waitForPage アクションを記録: 選択すると、スクリプト・レコーダでは、ブラウザのページ遷移を生成するテスト・ステップ用にwait for pageアクションが生成されます。選択を解除すると、スクリプト・レコーダでは、ブラウザのページ遷移を生成するテスト・ステップ用にcapture pageアクションが生成されます。Web機能テスト・スクリプトでは、wait for pageアクションは通常の記録オプションです。詳細は、Siebel機能テストの記録詳細設定を参照してください。

   - すべてのページにタイトル テストを作成する: 選択すると、Web機能テスト・レコーダが、記録されるページごとに自動的にページ・タイトル・テストを挿入します。ページ・タイトル・テストでは、記録されたページ・タイトルが、再生中に受信されるページ・タイトルと比較されます。デフォルトのテストでは、ページ・タイトルの比較に失敗した場合でも、再生が停止しません。選択を解除すると、記録中にページ・タイトル・テストは挿入されません。

   - すべてのページに HTML テストを作成する: 選択すると、Web機能テスト・レコーダが、記録されるページごとに自動的にHTMLテストを挿入します。HTMLテストでは、記録されたHTMLが、再生中に受信されるHTMLと比較されます。デフォルトのテストでは、HTMLの比較に失敗した場合に再生が停止します。「結果」ビューで結果を選択し、「詳細」ビューの「比較」タブで差異を表示します。選択を解除すると、記録中にHTMLテストは挿入されません。

6. 「オブジェクト識別」タブをクリックし、「追加」または「編集」を使用して、オブジェクト識別子のエレメントや属性をカスタマイズします。

7. 完了後、「OK」をクリックします。

### 5.2.2 オブジェクト識別子の追加/編集

Web機能モジュールではオブジェクト識別を使用して、Webオブジェクトの識別に使用する属性を指定します。Web機能テスト・モジュールには、共通のWebオブジェクトに対する事前定義のパス属性が含まれます。オブジェクト・パスはXPath形式で指定します。たとえば、Webオブジェクトの場合、オブジェクト識別パスはJavaコード・コマンドで次のように表されます。

    /web:window[@index='0']

       /web:document[@index='0']

       /web:form[@index='0']

       /web:input_text[@id='ticker' or @name='ticker' or @index='0']

Web機能テスト・モジュールの記録詳細設定でデフォルトのオブジェクト属性を設定できます。また、ツリー・ビューやコード・ビューで、記録済スクリプト内のオブジェクト属性を編集できます。

事前定義済のオブジェクト識別の他にも、オブジェクト・ライブラリをスクリプトに追加して、ライブラリ・ファイルにパスを記録できます。オブジェクト・ライブラリ・ファイルは、その他のスクリプトによって共有および再利用されます。オブジェクト・ライブラリ・ファイルによって、より便利なオブジェクトの「省略名」が提供されるため、プログラミングが容易になります。

Web機能テスト・モジュールには、レコーダがブラウザ・オブジェクトを識別する方法を指定するオブジェクト識別子が含まれます。記録の詳細設定で、オブジェクト識別子を追加することも、既存のオブジェクト識別子を編集することもできます。

オブジェクト識別子を追加または編集するには、次のようにします。

1. 「ビュー」メニューから「OpenScript 詳細設定」を選択します。

2. 「記録」ノードを開き、「Web 機能テスト」を選択します。

3. 「オブジェクト識別」タブをクリックします。

4. 「追加」をクリックするか、既存のオブジェクト識別子を選択して「編集」をクリックします。

   「オブジェクト エレメント」ダイアログ・ボックスでは、Web機能テスト・レコーダのオブジェクト識別子を定義できます。オブジェクト識別子により、OpenScript Web機能テスト・レコーダ・モジュールがWebページ上のドキュメント・オブジェクト・モデル内のWebオブジェクトを識別する方法が指定されます。

   アクティブ プロファイル: スクリプトを記録する際にアクティブ・プロファイルとして使用するオブジェクト識別プロファイルを指定します。プロファイルで、Web機能テストを記録するときに使用する一連のオブジェクト識別子が定義されます。新しいカスタム・プロファイルの作成には、「プロファイルの追加」オプションを使用します。プロファイルを作成したら、「名称」カラムでプロファイル名を選択し、「オブジェクトの追加」を使用してカスタム・プロファイルにカスタム・オブジェクトと属性を定義します。

   名称: 定義済のWebオブジェクト識別子の名前を表示します。

   属性: 定義済のWebオブジェクト識別子に対して指定されているパターンを表示します。

   プロファイルの追加: 新しいWebオブジェクト識別子プロファイルを指定するダイアログ・ボックスが開きます。

   オブジェクトの追加: 新規Webオブジェクト識別子を指定するためのダイアログ・ボックスが開きます。

   編集: 選択したWebオブジェクト識別子またはプロファイルを編集するためのダイアログ・ボックスが開きます。

   削除: 選択したWebオブジェクト識別子またはプロファイルを削除します。デフォルトのプロファイルは削除できません。

   エクスポート: 現在選択されているWebオブジェクト識別子プロファイルをXMLファイルにエクスポートするダイアログ・ボックスが開きます。「名称」カラムでプロファイル名を選択すると、エクスポート・オプションが有効になります。

   インポート: 現在選択されているWebオブジェクト識別子プロファイルをXMLファイルにインポートするダイアログ・ボックスが開きます。「名称」カラムでプロファイル名を選択すると、インポート・オプションが有効になります。

   元に戻す: デフォルトのWebオブジェクト識別プロファイルをデフォルト・プロファイルに戻します。デフォルト・プロファイルに対する変更はすべて削除されます。「名称」カラムでデフォルト・プロファイル名を選択すると、元に戻すオプションが有効になります。

   各オブジェクト要素について、名前（通常はWebオブジェクト属性）、オペレータ、値および値タイプを指定します。オブジェクト要素を追加すると、オブジェクト識別子の各要素間で論理ORを使用して、OpenScriptによりオブジェクト識別子が作成されます。論理ORとANDの間を変更するには、「編集」をクリックします。

5. 新規オブジェクト識別子を追加する場合は、「オブジェクトの追加」をクリックして、オブジェクト識別子のパス・セグメントを指定します。

   「パス セグメント」ダイアログ・ボックスでは、Web機能テスト・レコーダのオブジェクト識別子のセグメントを定義できます。オブジェクト識別子により、OpenScript Web機能テスト・レコーダ・モジュールがWebページ上のドキュメント・オブジェクト・モデル内のWebオブジェクトを識別する方法が指定されます。

   属性: 選択した場合、オブジェクト識別子の名前、オペレータ、値および値タイプを指定します。

   - 名称: オブジェクトの識別に使用するWebオブジェクト属性の名前を指定します。

   - オペレータ: オブジェクト値の識別に使用する論理オペレータを指定します。

   - 値: オブジェクトの識別に使用するWebオブジェクト属性の値を指定します。

   - タイプ: オブジェクトの識別に使用する値タイプを指定します。値タイプは、文字列、数値または変数参照にできます。「タイプ」を、指定した値に一致するように設定します。

     - String: Webオブジェクトを識別するため、「値」フィールド内の値がテキスト文字列としてマッチングされます。

     - Number: Webオブジェクトを識別するため、「値」フィールド内の値が数値としてマッチングされます。

     - 参照: Webオブジェクトを識別するため、「値」フィールド内の値が変数名としてマッチングされます。

   グループ: 選択すると、Webオブジェクト識別子を、名前、オペレータおよび値の論理グループを表す文字列として指定できます。

6. 既存のセグメントを編集する場合は、「編集」をクリックして、オブジェクト識別子のパス属性を指定します。

   「パス属性」ダイアログ・ボックスでは、オブジェクト識別子の要素を編集できます。

   名称: オブジェクトの識別に使用するWebオブジェクト属性の名前を指定します。

   オペレータ: オブジェクト値の識別に使用する論理オペレータを指定します。

   値: オブジェクトの識別に使用するWebオブジェクト属性の値を指定します。

   タイプ: オブジェクトの識別に使用する値タイプを指定します。値タイプは、文字列、数値または変数参照にできます。「タイプ」を、指定した値に一致するように設定します。

   - String: Webオブジェクトを識別するため、「値」フィールド内の値がテキスト文字列としてマッチングされます。

   - Number: Webオブジェクトを識別するため、「値」フィールド内の値が数値としてマッチングされます。

   - 参照: Webオブジェクトを識別するため、「値」フィールド内の値が変数名としてマッチングされます。

   AND/OR: オブジェクト要素間の論理ORまたはANDを指定します。編集しているオブジェクト要素がオブジェクト識別子グループ内の最後のオブジェクト要素である場合、このオプションは表示されません。

7. 既存のパスを編集する場合は、「編集」をクリックして、オブジェクト識別子のパス属性を指定します。

   「パス属性グループ」ダイアログ・ボックスでは、オブジェクト識別子グループを文字列値として編集できます。

   グループ: オブジェクト識別子グループのテキスト文字列。オブジェクト識別子グループの構文は、`@``name operator value/type`の形式に従います。参照による値は、二重の中カッコ（`{{}}`）に囲まれます。文字列値は一重引用符に囲まれます。数値は囲まれません。論理ORまたはANDはオブジェクト要素間で使用されます。複数のオブジェクト要素の論理グループにはカッコが使用されます。オブジェクト識別子では、複数の文字に対してワイルドカード文字の`*`（アスタリスク）を、1つの文字に対して`?`（疑問符）を使用できます。たとえば、`@text="Login*"`のようになります。オブジェクト識別子グループの構文例を次に示します。

       @index={{index}} or @title='title' or @number=5

       @text={{text}} or @href={{href}} or @index={{index}}

       (@id={{id}} or @name={{name}} or @index={{index}}) and multiple mod {{multiple}}

8. セグメントや属性の追加または編集が終わったら「OK」をクリックします。記録詳細設定にオブジェクト識別子が追加されます。

9. オブジェクト識別子を追加または編集する際にブラウザが開いていた場合は、いったん閉じて再起動してください。

#### 5.2.2.1 Web DOM要素で使用可能な属性

次の表は、Webドキュメント・オブジェクト・モデル・オブジェクトの使用可能な属性を示しています。

要素 | 属性
--- | ---
すべてのWeb DOM要素に共通する属性 | tag、id、index、title、style、class、html、_adftrueval、rn、un、ot
web:window | index、title
web:document | index、url
web:a | disabled、text、href
web:button | type、name、value、disabled、text
web:input_button | type、name、value、disabled、text
web:input_file | type、name、value、index、disabled、size
web:input_hidden | type、name、value、index、disabled
web:input_image | type、name、disabled、alt、align、border、height、hspace、src、lowsrc
web:input_submit | type、name、value、disabled、text
web:input_text | type、name、value、defaultValue、disabled、maxlength、readOnly、size
web:input_check | type、name、value、disabled、checked、defaultChecked、readOnly、size
web:input_radio | type、name、value、disabled、checked、defaultChecked、readOnly、size
web:img | alt、height、longdesc、name、src、width
web:option | value、text、optionIndex（select内のindex）、defaultSelected、selected
web:select | name、disabled、value、selectedIndex
web:textarea | name、disabled、value、defaultValue、readonly、cols、rows

### 5.2.3 Web機能テスト・スクリプトの記録

Web機能テスト・スクリプトを記録するには、次のようにします。

1. OpenScriptを起動します。

2. Web機能テスト記録の詳細設定を設定します。

3. 「ファイル」メニューから「新規」を選択します。

4. 機能テスト・グループを開きます。

5. 「Web」を選択します。

6. 「次へ」をクリックします。

7. リポジトリとワークスペースを選択します。

8. スクリプト名を入力します。

9. 「終了」をクリックします。新規スクリプト・ツリーがスクリプト・ビューに作成されます。

10. 「スクリプト」メニューから「記録」を選択します。記録を開始すると、ブラウザが自動的に開きます。

11. 記録を開始するWebページをブラウザにロードします。

12. ページ・オブジェクト、アクションおよびナビゲーションを記録するWebサイトにアクセスします。ページ・オブジェクト、アクションおよびナビゲーションは、スクリプト・ツリーうち、「記録セクション指定」設定で指定したノード（デフォルトは「Run」ノード）に追加されます。

13. ページのナビゲーションが終了したら、ブラウザを閉じてください。

14. 「スクリプト」メニューから「停止」を選択するか、OpenScriptツールバーの「停止」ボタンをクリックします。

15. スクリプトの「Run」ノードを開いて、スクリプト・ツリーのページ・オブジェクト、アクションおよびナビゲーションのノードを表示します。

    特定のテスト要件実現のために、メニュー・オプションまたはコード・ビューを使用してスクリプトをカスタマイズすることができます。

    注意: 記録中またはスクリプトの再生中に、スクリプト・エディタ・ビューまたはスクリプト・プロジェクトを閉じないでください。閉じると、OpenScriptアプリケーションで予期しない動作が発生する場合があります。

## 5.3 スクリプトの再生

OpenScriptは、イベントと属性で識別されるオブジェクトから構成される、記録済のWebアクションおよびコマンドを再生します（例: `click link(text="Home")`）。再生に使用されるアクションは、記録済のアクションまたはJavaコード・ビューで手動で指定されたアクションです。再生は、Internet ExplorerまたはFirefoxを使用して設定できます。自動再生は、Oracle Test ManagerまたはOpenScriptのコマンドライン・インタフェースを使用するサード・パーティ・ツールでサポートされています。Web機能テスト・スクリプトは、Oracle Load Testingでは再生されません。

Web機能テスト・モジュールには、再生および繰返しのツールバー・ボタンが用意されています。ユーザーはこれを使用して、スクリプトの最初から最後までを1回、あるいはデータバンク・ファイルのデータを使用して複数回繰り返して、スクリプトの再生を開始できます。Web機能スクリプトの再生結果は、結果ビューおよびコンソール・ビューで確認できます。

### 5.3.1 Web機能テスト再生の詳細設定の設定

Web機能テスト再生の詳細設定を設定するには、次のようにします。

1. OpenScriptを起動します。

2. 「ビュー」メニューから「OpenScript 詳細設定」を選択します。

3. 「OpenScript」ノード配下の「再生」カテゴリを開きます。

4. 「Web 機能テスト」を選択します。

5. 「オブジェクト タイムアウト」グループを開き、次のように詳細を設定します。

   タイムアウト(S): オブジェクトが表示されるまでOpenScriptが最大何秒待機すると、オブジェクトが見つからないとみなされるかを指定します。これは、オブジェクトの表示を待機する際、対応するアクションが起動されるまでのデフォルトのタイムアウトです。また、オブジェクトの表示を待機する際、スクリプトが続行されるまでのデフォルトのタイムアウトでもあります。

   `waitForPage()`または`object.waitFor()`の"timeout"プロパティを編集することで、個々のオブジェクトの待機タイムアウトを上書きできます。アクションのタイムアウトは上書きできません。

6. 「スクリーン ショット取得間隔」グループを開き、次のように詳細を設定します。

   スクリーン ショット取得時の遅延時間: ページのスクリーンショットが取得されるまで待機する時間を指定します。

7. 「オブジェクト テスト」グループを開き、次のように詳細を設定します。

   日付フォーマット: 月、日、年および時間のフォーマットを指定します。日付パターンは、標準のJava SimpleDateFormat文字列規則に従います。デフォルト値は`yyyy/MM/dd H:mm:ss`です。

8. 「その他」グループを開き、次のように詳細を設定します。

   HTML の取得: 選択すると、ページのHTMLが取得されます。

   スクリーン ショットの取得: 選択すると、再生中にページのスクリーンショットを取得します。スクリーンショットは、「結果」ビューで「WaitForPage」ノードを選択してから「詳細」ビューで「スクリーン ショット」タブを選択すると表示できます。スクリーンショットを取得すると、zipファイルにエクスポートするときスクリプトのサイズが大きくなります。

   URL の取得: 選択すると、ページのURLが取得されます。

   フレームの取得: 選択すると、ページのHTMLフレームが取得されます。

   反復間で Cookie を削除: 選択すると、再生の反復の間にキャッシュのセッションCookieが削除されます。

   反復間で永続 Cookie を削除: 選択すると、再生の反復の間にキャッシュの永続Cookieが削除されます。

   反復間で一時ファイルを削除: 選択すると、再生の反復の間にキャッシュのページが削除されます。

   再生前にセッション Cookie を削除: 選択すると、再生の前にキャッシュのセッションCookieが削除されます。

   再生前に永続 Cookie を削除: 選択すると、再生の前にキャッシュの永続Cookieが削除されます。

   再生前に一時ファイルを削除: 選択すると、再生の前にキャッシュのページが削除されます。

   アクションに JavaScript イベントを記録: 選択すると、スクリプトの再生でHTML要素に対して起動されたJavaScriptイベント（onmouseover、onmousedown、clickなど）のログが作成されます。これは、JavaScriptを使用する動的HTML（DHTML）が含まれるページがスクリプトで適切に再生されないときのトラブルシューティングに便利です。

   Internet Explorerブラウザの場合、ログ・ファイルは<installdir>\OpenScript\Oracle IE ToolBar\WebDOMToolBar*.logに保存されます。Fire Foxブラウザの場合、ログには「ツール」メニューからアクセスできます。エラー・コンソール→「メッセージ」を選択します。

   Web機能テスト・モジュールAPIには、適切に再生されないイベントを処理するために必要な場合にスクリプトJavaコードに追加できるAPIメソッドとして、`web.element("``path``").fireEvent("``eventName``")`と`web.element.setSelectedJSElement()`があります。

   選択を解除すると、ログは作成されません。

   異なるスクリプトを再生する場合にいつも新しいブラウザを起動する: 選択すると、異なるスクリプトを再生するとき、新しいブラウザが起動されます。選択を解除すると、以前に実行したスクリプトで起動されたブラウザはスクリプトで再利用されません。

9. 完了後、「OK」をクリックします。

### 5.3.2 Web機能スクリプトの再生

Web機能スクリプトを再生するには、次のようにします。

1. OpenScriptを起動します。

2. 再生するWeb機能スクリプトを開きます。

3. 「スクリプト」メニューから「再生」を選択するか、ツールバー・ボタンをクリックします。

   コンソール・ビューでスクリプト再生の進捗状況を確認できます。結果ビューでスクリプト再生の結果を確認できます。

### 5.3.3 Web機能スクリプトを反復して再生

Web機能スクリプトを反復再生するには、次のようにします。

1. OpenScriptを起動します。

2. 再生するWeb機能スクリプトを開きます。

3. 「スクリプト」メニューから「反復」を選択するか、ツールバー・ボタンをクリックします。

4. 「データバンクを使用」を選択します。

5. スクリプトに複数のデータベースが設定されている場合には、設定を指定するデータバンク・ファイルを選択します。

6. データバンク・ファイルの設定を指定します。

7. 再生を停止する反復数オプションを選択し、任意の再生の反復回数を指定します。反復設定の詳細は、4.5項「スクリプトを反復して再生」を参照してください。

8. 「OK」をクリックします。

   コンソール・ビューでスクリプト再生の進捗状況を確認できます。結果ビューでスクリプト再生の結果を確認できます。

## 5.4 スクリプトの変更

スクリプトを作成あるい記録したら、テスト上の必要に応じてスクリプトに変更を加え、カスタマイズすることができます。

### 5.4.1 パス・エディタ・ツールバー

テストの追加に使用するいくつかのダイアログ・ボックスでは、オブジェクト・パスの編集に共通のツールバーを使用します。オブジェクト識別パスの追加と編集については、5.2.2項「オブジェクト識別子の追加/編集」を参照してください。ツールバーのオプションは次のとおりです。

パス/ウィンドウ: テストするオブジェクトへのパスを指定します。オブジェクト・パスのツールバーで使用できるオプションは、次のとおりです。

- ツリー/テキスト表示切替: ツリー・ビューとテキスト・ビューの間でパスを切り替えます。ツリー・ビューでは、ツールバーを使用してオブジェクト・パスのセグメントを追加、編集、削除でき、「上へ」と「下へ」の矢印を使用してオブジェクト・パスのセグメントを並べ替えることもできます。テキスト・ビューでは、テキスト・ボックスで直接オブジェクト・パスを編集できます。

- 追加: オブジェクト・パスに新しいパス・セグメントを追加するダイアログ・ボックスが開きます。このツールバー・ボタンを使用できるのは、パスがツリー・ビューのときのみです。

- 編集: オブジェクト・パスで現在選択されているパス・セグメントの属性を編集するダイアログ・ボックスが開きます。このツールバー・ボタンを使用できるのは、パスがツリー・ビューのときのみです。

- 削除: 現在選択されているパス・セグメントをオブジェクト・パスから削除します。このツールバー・ボタンを使用できるのは、パスがツリー・ビューのときのみです。

- 上へ: 現在選択されているパス・セグメントをツリーで1レベル上に移動します。このツールバー・ボタンを使用できるのは、パスがツリー・ビューであり、選択されているパス・セグメントが最上位のセグメントではない場合のみです。

- 下へ: 現在選択されているパス・セグメントをツリーで1レベル下に移動します。このツールバー・ボタンを使用できるのは、パスがツリー・ビューであり、選択されているパス・セグメントが最上位のセグメントではない場合のみです。

- ブラウザ中のオブジェクトをキャプチャ: オブジェクトをキャプチャするダイアログ・ボックスが開き、キャプチャ・モードが開始されます。キャプチャするオブジェクトに移動し、キャプチャ・ダイアログ・ボックス内のオプションを使用してオブジェクト・パスをキャプチャします。

- オブジェクト ライブラリからオブジェクト パスを参照: 現在選択されているオブジェクト・パスのツリー・ビューとテキスト・ビューを両方表示するダイアログ・ボックスが開きます。

- オブジェクト ライブラリから選択: 保存済ライブラリからオブジェクトを選択するためのダイアログ・ボックスが開きます。

- オブジェクト ライブラリに保存: 現在のオブジェクトをライブラリに保存するためのダイアログ・ボックスが開きます。

### 5.4.2 スクリプトへのブラウザ・ナビゲーションの追加

スクリプトにブラウザ・ナビゲーションを追加するには、次のようにします。

1. Web機能テスト・スクリプトを記録します。

2. ナビゲーションを追加するスクリプト・ノードを選択します。

3. 「スクリプト」メニューを選択してから、「追加」サブメニューで「その他」を選択します。

4. 「Web アクション」ノードを開きます。

5. 「ブラウザ」ノードを開いてナビゲートを選択します。

6. 「OK」をクリックします。

7. オブジェクトのオブジェクト識別子パスを入力します。「キャプチャ」または「選択」メニュー・オプションを使用して、オブジェクト・パスをキャプチャまたは選択できます。パス編集ツールバーの詳細は、5.4.1項「パス編集ツールバー」を参照してください。

8. URLを入力します。

9. 「OK」をクリックします。スクリプト・ツリーにナビゲート・ノードが追加されます。

   Javaコード・ビューでは、`web.window(``objectId``).navigate`メソッドがスクリプト・コードに追加されます。

       web.window(1, "/web:window[@index='0']").navigate("http://testserver2/fmstocks");

   ブラウザのWebアクションには、ブラウザ・ナビゲーションのその他のオプション（戻る、進む、閉じる、リフレッシュ、ページ待機など）が含まれます。その他のブラウザ・アクションには、対応するJavaコード・メソッドがあります。

       web.window(1, "/web:window[@index='0']").waitForPage("http://testserver2/fmstocks/", "Stocks", true, null)

       web.window("/web:window[@index='0']").close();

       web.window("/web:window[@index='0']").back();

       web.window("/web:window[@index='0']").forward();

       web.window("/web:window[@index='0']").refresh();

       web.window("/web:window[@index='0']").capturePage();

       web.window("/web:window[@index='0']").solve("MyVariable", "(.+?)", true, 1);

       web.window("/web:window[@index='0']").storeResponseTime("MyRespTime");

       web.window("/web:window[@index='0']").waitFor(10);

       web.window("/web:window[@index='0']").storeAttribute("MyAttribVar", "MyAttribute");

### 5.4.3 ブラウザ・オブジェクトのWebアクションの追加

Web機能テスト・モジュールにはブラウザ・オブジェクト用のアクションが含まれており、これをスクリプトに追加できます。

ブラウザ・オブジェクトのWebアクションをスクリプトに追加するには、次のようにします。

1. Web機能テスト・スクリプトを記録します。

2. アクションを追加するスクリプト・ノードを選択します。

3. 「スクリプト」メニューを選択してから、「追加」サブメニューで「その他」を選択します。

4. 「Web アクション」ノードを開きます。

5. アクション・ノードを開いてアクションを選択します。

6. 「OK」をクリックします。

7. オブジェクトのオブジェクト識別子パスを入力します。「キャプチャ」または「選択」メニュー・オプションを使用して、オブジェクト・パスをキャプチャまたは選択できます。パス編集ツールバーの詳細は、5.4.1項「パス編集ツールバー」を参照してください。

8. 「OK」をクリックします。アクション・ノードがスクリプト・ツリーに追加されます。

   Javaコード・ビューでは、`web.``object``(``objectId``).``action``()`メソッドがスクリプト・コードに追加されます。

       web.button("/web:window[@index='0']

          /web:document[@index='0']

          /web:form[@index='0'

            or @id='loginform'

            or @name='loginform']

          /web:input_submit[@name='LoginButton'

            or @value='Login'

            or @index='0']").click()

   「Web アクション」ノードには、ボタン、チェック・ボックス、ダイアログ、イメージ、リンク、表などのオブジェクトのアクションが含まれます。その他のオブジェクト・アクションには、対応するJavaコード・メソッドがあります。

       web.link("/web:window[@index='0']

          /web:document[@index='0']

          /web:a[@text='Open a new account.'

            or @href='http://testserver2/fmstocks/_NewAccount.asp'

            or @index='0']").click()

   または

       web.select("/web:window[@index='0']

          /web:document[@index='0']

          /web:form[@index='0']

          /web:select[(@id='namespace'

            or @name='namespace'

            or @index='0')

            and multiple mod 'False']").selectOptionByText("[select product]");

   または

       web.clearSessionCookies();

       web.clearAllPersistentCookies();

       web.clearPersistentCookies("domain");

       web.clearCache("domain");

### 5.4.4 スクリプトへのオブジェクト・ライブラリの追加

スクリプトにオブジェクト・ライブラリを追加するには、次のようにします。

1. Web機能テスト・スクリプト・プロジェクトを開くか、作成します。

2. 「スクリプト」メニューを選択し、「スクリプト プロパティ」を選択します。

3. 「スクリプト アセット」カテゴリを選択して、「オブジェクト ライブラリ」を選択します。

4. 「追加」をクリックします。

5. ライブラリ・ファイルと別名を指定します。

   - オブジェクト・ライブラリ・ファイルをすでに作成してある場合は、リポジトリでファイルを選択します。

     注意: 関連するアセットとともにOracle Load Testingアプリケーションで実行するスクリプトは、Oracle Load Testingコントローラでアクセス可能なリポジトリ/ワークスペースに格納する必要があります。OpenScriptでリポジトリを新規作成する場合は、新規のリポジトリをOracle Load Testingで追加する必要もあります。

   - ライブラリ・ファイルを作成していない場合は、ファイル名を入力して「OK」をクリックします。新規ファイルが作成されます。Web機能テスト・スクリプトの記録の際、ブラウザのアクションがオブジェクト・ライブラリ・ファイルに自動的に追加されます。

6. 「OK」をクリックします。オブジェクト・ライブラリ・ファイルが、「オブジェクト ライブラリ」ツリーの下にスクリプト・テスト・アセットとして追加されます。スクリプト・テスト・アセットは、リポジトリのスクリプト・ディレクトリにあるassets.xmlファイルで参照されます。

7. 「OK」をクリックします。

8. オブジェクト・ライブラリを使用するため、Web機能テスト・スクリプトを記録します。

   記録の際、ブラウザ・オブジェクトのオブジェクト識別パスが、オブジェクト・ライブラリ・ファイルに自動的に追加されます。オブジェクト・ライブラリ・ファイルは、オブジェクト・ライブラリ・エディタを使用して開き、編集できます。「スクリプト」メニューから「スクリプト プロパティ」を選択し、ツリーで「オブジェクト・ライブラリ・テスト・アセット」を選択して「開く」をクリックします。オブジェクト・ライブラリ・エディタが、選択したオブジェクト・ライブラリに含まれるオブジェクトと詳細とともにワークペンチで開きます。オブジェクトは、「オブジェクト」リストで追加および削除できます。「詳細」セクションのオブジェクト文字列やツリー階層でオブジェクト属性を編集します。ツリー階層では、優先順位に従って属性を上または下に移動できます。

9. 終了したらスクリプトを保存します。

### 5.4.5 サーバー・レスポンス・テストの追加

サーバー・レスポンス・テストを使用して、指定の時間範囲内にWebページがクライアントに返されない場合に、エラーのレポートまたはスクリプト再生の中止（あるいはその両方）を行うことができます。

サーバー・レスポンス・テストをスクリプトに追加するには、次のようにします。

1. Web機能テスト・スクリプトを記録します。

2. 「Run」ノードを開きます。

3. サーバー・レスポンス・テストを追加するスクリプト・ノードを選択します。

4. 「スクリプト」メニューを選択してから、「追加」サブメニューで「その他」を選択します。

5. 「Web テスト」グループを開きます。

6. 「サーバー レスポンス テスト」を選択して「OK」をクリックします。

7. ウィンドウのオブジェクト識別子パスを入力します。「キャプチャ」または「選択」メニュー・オプションを使用して、オブジェクト・パスをキャプチャまたは選択できます。パス編集ツールバーの詳細は、5.4.1項「パス編集ツールバー」を参照してください。

8. テストの名前を入力します。

9. 時間の最小値と最大値を入力します。

10. 「検証のみ (失敗なし)」オプションを設定します。

11. 「OK」をクリックして、サーバー・レスポンス・ノードをスクリプト・ツリーに追加します。

    Javaコード・ビューでは、サーバー・レスポンス・テストは、`web.window(``objectId``).verifyResponseTime()`または`web.window(``objectId``).assertResponseTime()`メソッドで実行されるコードで構成されます。

        web.window("/web:window[@index='0']").verifyResponseTime("MyserverResp", 10.0, 20.0);

    または

        web.window("/web:window[@index='0']").assertResponseTime("MyserverResp2", 10.0, 50.0);

    前述のコード例で、`verify`は"失敗時に停止しない"ことを意味し、`assert`は"失敗時に停止する"ことを意味します。

### 5.4.6 スクリプトへのテキスト・マッチング・テストの追加

テキスト・マッチング・テストをスクリプトに追加するには、次のようにします。

1. Web機能テスト・スクリプト・プロジェクトを開くか、作成します。

2. テキスト・マッチング・テストを追加するスクリプト・ノードを選択します。

3. 「スクリプト」メニューを選択してから、「追加」サブメニューで「その他」を選択します。

4. 「Web テスト」ノードを開きます。

5. 「テキスト マッチング テスト」を選択します。

6. 「OK」をクリックします。

7. 「参照先」の場所を選択します。

   すべてのブラウザ: 選択すると、テキスト・マッチング・テストでは、開いているすべてのブラウザで一致するテキストを検索します。

   指定ブラウザ: 選択すると、テキスト・マッチング・テストでは、「パス」で指定されているブラウザIDを使用して一致するテキストを検索します。

   指定ドキュメント: 選択すると、テキスト・マッチング・テストでは、「パス」内のオブジェクトIDで指定されているドキュメント内で一致するテキストを検索します。

8. 「指定ブラウザ」または「指定ドキュメント」を選択した場合、ブラウザ、ドキュメント、またはフレームのオブジェクト識別パスを「パス」に入力します。 「キャプチャ」または「選択」ボタンを使用してオブジェクト・パスをキャプチャまたは選択できます。パス編集ツールバーの詳細は、5.4.1項「パス編集ツールバー」を参照してください。

9. テストの名前を入力します。

10. マッチングするテキスト文字列または正規表現を入力するか、「変数の置換」アイコンをクリックして、ソースで検索するデータバンクまたはスクリプト変数を選択します。

    注意: 番号記号（`#`）および二重中カッコ（`{{`および `}}`）を含む文字シーケンスを、テキスト・マッチング・テストでリテラル文字列として使用する場合（OpenScriptデータバンクやスクリプト変数を指定する文字列でない場合）、直前に番号記号（`#`）を付けてエスケープする必要があります。たとえば、番号記号は二重（`##`）にして使用し、二重中カッコの直前には番号記号を付ける（`#{{`および`#}}`）必要があります。

11. マッチング・テキストを検索する場所を選択します。

    HTML 表示コンテンツ: ブラウザでレンダリングされたページのテキストを検索します。

    HTML ソース: ページのHTMLソースを検索します。

12. 「成功条件」設定を選択します。

    選択文字列が存在する: 選択したソースに「テストする文字列」の文字列が見つかった場合は合格とします。

    選択文字列が存在しない: 選択したソースに「テストする文字列」の文字列が見つからない場合は合格とします。

13. 「一致」タイプを選択します。

    完全: 「テストする文字列」の文字列と完全にマッチングします。

    正規表現: 「テストする文字列」で指定された正規表現を使用してマッチングします。

    ワイルドカード: 「テストする文字列」で指定されたワイルドカード文字を使用してマッチングします。

14. 「検証のみ (失敗なし)」オプションを設定します。

15. 「OK」をクリックします。「テキスト マッチング テスト」ノードがスクリプト・ツリーに追加されます。

    Javaコード・ビューでは、「検証のみ (失敗なし)」オプションを選択しない場合、`web.assertText`または`web.document(``specifiedDoc``).assertText`メソッドがスクリプト・コードに追加されます。

        web.assertText("MyTextMatchTest", "Home", TextPresence.PassIfPresent, MatchOption.Exact)

        web.document("Main").assertText("MyTextMatchTest2", "Home", TextPresence.PassIfPresent, MatchOption.RegEx);

    Javaコード・ビューでは、「検証のみ (失敗なし)」オプションを選択した場合、`web.verifyText`または`web.document(``specifiedDoc`)`.verifyText`メソッドがスクリプト・コードに追加されます。

        web.verifyText("MyTextMatchTest", "Home", TextPresence.PassIfPresent, MatchOption.Exact)

        web.document("Main").verifyText("MyTextMatchTest2", "Home", TextPresence.PassIfPresent, MatchOption.RegEx);

### 5.4.7 オブジェクト・テストの追加

Web機能テスト・モジュールにはブラウザ・オブジェクト用のオブジェクト・テスト・ケースが含まれており、これをスクリプトに追加できます。

オブジェクト・テストをスクリプトに追加するには、次のようにします。

1. Web機能テスト・スクリプトを記録します。

2. オブジェクト・テストを追加するスクリプト・ノードを選択します。

3. 「スクリプト」メニューを選択してから、「追加」サブメニューで「その他」を選択します。

4. 「Web テスト」ノードを開き、「オブジェクト テスト」を選択します。

5. 「OK」をクリックします。

6. 必要な場合には、「オブジェクト タイプ」を選択します。

7. オブジェクトのオブジェクト識別子パスを入力します。「キャプチャ」または「選択」メニュー・オプションを使用して、オブジェクト・パスをキャプチャまたは選択できます。パス編集ツールバーの詳細は、5.4.1項「パス編集ツールバー」を参照してください。

8. テスト名を入力します。

9. 「検証のみ (失敗なし)」オプションを選択、または選択解除します。

10. 属性/値ペアを選択し、テストの詳細を指定します。

    属性: 選択されたオブジェクトの属性を表示します。属性を選択してテストの詳細を指定します。

    - 属性: 属性の名前を表示します。選択すると、属性がオブジェクト・テストに含まれます。選択を解除すると、属性はオブジェクト・テストに含まれません。

    - 値: 選択されている「表示」オプションに応じて、属性の記録された値またはテスト条件が表示されます。

    - すべて有効: テスト条件に含めるすべてのプロパティを有効にします。

    - すべて無効: テスト条件に含めないすべてのプロパティを無効にします。

    - 行を追加: 新規行をテーブルに追加します。

    - 表示: プロパティ・リストに表示する値を選択します。

      - テスト : 選択すると、各属性に定義されたテスト条件が「値」リストに表示されます。

      - 記録された値: 選択すると、各属性の記録された値が「値」リストに表示されます。

    テスト詳細: 選択した属性に対するテスト条件を指定します。

    - 記録された値: 属性の記録された値を表示します。

    - 有効: 選択すると、属性がオブジェクト・テストに含まれます。選択を解除すると、属性はオブジェクト・テストに含まれません。

    - タイプ: 属性のテスト条件として使用するデータ・タイプを指定します。「オペレータ」リストで使用可能なオプションは、テスト用に選択した値のタイプ（String、Boolean、Date、Numeric）によって異なります。

    - オペレータ: 再生テスト条件に使用するオペレータを指定します。オペレータのリストは、選択した「タイプ」によって異なります。

      String値には次のオプションを使用できます。

      - 完全: スクリプトの再生時、テキストまたは属性値がテキスト文字列の現在の値と完全に一致する場合、テストはパスします。

      - ワイルドカード: スクリプトの再生時、テキストまたは属性値がLikeオペレータ・パターンの現在の値と一致する場合、テストはパスします。

      - 正規表現: スクリプトの再生時、テキストまたは属性値が正規表現パターンの現在の値と一致する場合、テストはパスします。

      NumericおよびDate値には次のオプションを使用できます。

      - [関係オペレータ]: 関係オペレータをリストします。スクリプトの再生時に使用する比較のタイプを選択します。"範囲"オペレータを選択した場合、オブジェクト・テストでは、範囲を指定するフィールドが追加されます。下限から上限の範囲を指定します。

      Boolean値には次のオプションを使用できます。

      - イコール: スクリプトの再生時、テキストまたは属性値が、「値」フィールドに指定されたTrueまたはFalse値と一致する場合、テストはパスします。

    - 値: 属性のテスト条件に使用する値を指定します。

    - [変数の置換]: 属性のテスト条件に使用する値として置換するデータバンク変数を選択するためのウィンドウを開きます。

11. テストでの必要に応じて、各属性/値ペアのテストの詳細を指定します。

12. 「OK」をクリックします。オブジェクト・テスト・ノードがスクリプト・ツリーに追加されます。

    Javaコード・ビューでは、`web.element(``objectId``).verifyAttributes`メソッドがスクリプト・コードに追加されます。

        web.element(15, "/web:window[@index='0']

           /web:document[@index='0']

           /web:form[@index='0'

             or @id='loginform'

             or @name='loginform']

           /web:input_password[@name='password' or @index='0']").verifyAttributes(
             "MyObjectTest", web.attributes(
             web.attribute("index", "0", TestOperator.StringExact),

             web.attribute("tag", "INPUT", TestOperator.StringExact),

             web.attribute("name", "password", TestOperator.StringExact),

             web.attribute("value", "ta", TestOperator.StringExact),

             web.attribute("type", "password", TestOperator.StringExact),

             web.attribute("checked", "False", TestOperator.StringExact),

             web.attribute("disabled", "False", TestOperator.StringExact)));

### 5.4.8 テーブル・テストの追加

Web機能テスト・モジュールにはHTML表用の表のテスト・ケースが含まれており、これをスクリプトに追加できます。

表テストをスクリプトに追加するには、次のようにします。

1. Web機能テスト・スクリプトを記録します。

2. 表テストを追加するスクリプト・ノードを選択します。

3. 「スクリプト」メニューを選択してから、「追加」サブメニューで「その他」を選択します。

4. 「Web テスト」ノードを開き、「テーブル テスト」を選択します。

5. 「OK」をクリックします。

6. 必要な場合には、「オブジェクト タイプ」を選択します。

7. オブジェクトのオブジェクト識別子パスを入力します。「キャプチャ」または「選択」メニュー・オプションを使用して、オブジェクト・パスをキャプチャまたは選択できます。パス編集ツールバーの詳細は、5.4.1項「パス編集ツールバー」を参照してください。

8. テスト名を入力します。

9. 「検証のみ (失敗なし)」オプションを選択、または選択解除します。

10. 行および列のセルを選択し、テストの詳細を指定します。

    テスト詳細: 各値に対して実行するテストを指定します。行および列のリストで値を選択し、その特定の値に対する詳細を設定します。

    - 行: 選択したテーブル値の行番号を表示します。

    - 列: 選択したテーブル値の列番号を表示します。

    - 有効: 選択すると、比較テストにテーブル値が含まれます。

    - 記録された値: 選択した属性の記録された値を表示します。

    - タイプ: 選択した値のデータ・タイプ（String、Numeric、DateまたはBoolean）を指定します。

    - オペレータ: 値の比較方法を指定します。「オペレータ」オプションは、選択した値タイプによって変わります。関係オペレータの場合、"範囲"オペレータを選択すると、数値または日付の範囲を指定するためのフィールドが追加されます。「下限」から「上限」の範囲を指定します。

    - 値: テストする値を指定します。

    - [変数の置換]: テストする値として使用する変数を選択するためのダイアログ・ボックスが開きます。

11. テストでの必要に応じて、各表セルのテストの詳細を指定します。

12. 「OK」をクリックします。表テスト・ノードがスクリプト・ツリーに追加されます。

    Javaコード・ビューでは、「検証のみ (失敗なし)」設定に応じて、`web.table(``objectId``).assertCells`または`web.table(``objectId``).verifyCells`メソッドがスクリプト・コードに追加されます。

        web.table(24, "/web:window[@index='0']

           /web:document[@index='0']
           /web:table[@index='6']").verifyCells("MyTableTest", web.cells(
             web.cell(1, 1, "Ticker ", TestOperator.StringExact),
             web.cell(1, 2, "Company ", TestOperator.StringExact),
             web.cell(2, 1, "ORCL ", TestOperator.StringExact),

             web.cell(2, 2, "Oracle Corporation ", TestOperator.StringExact)))

#### 5.4.8.1 テーブルのイメージのテスト

テーブル・テストを使用すると、Webページ・テーブルに1つ以上のイメージが存在するかどうかをチェックするテストを作成できます。

テーブル・テストを使用してスクリプトにイメージ存在確認のテストを追加するには、次のようにします。

1. 表に1つ以上のイメージがあるWebページ・テーブルを持つWeb機能テスト・スクリプトを記録します。

2. イメージを含むWebページ・テーブルが表示されたら、「スクリプト」メニューを選択した後、「追加」サブメニューから「その他」を選択します。

3. 「Web テスト」ノードを開き、「テーブル テスト」を選択します。

4. 「OK」をクリックします。

5. 「ブラウザ中のオブジェクトをキャプチャ」ツールバー・ボタンをクリックします。パス編集ツールバーについては、5.4.1項「パス編集ツールバー」を参照してください。

6. Webページ・テーブルのイメージを選択し、[F10]キーを押してオブジェクト・パスをキャプチャします。

7. 「OK」をクリックします。「テーブル テスト」ダイアログ・ボックスが開き、「オブジェクト タイプ」としてweb.tableが選択されます。

8. テスト名を入力します。

9. 「検証のみ (失敗なし)」オプションを選択、または選択解除します。

10. テーブルのセルを選択し、テストの詳細を指定します。テーブル・テストでは、イメージの存在をテストするために、SRC=http://path/imageNameというテキストが使用されます。

11. テストでの必要に応じて、各表セルのテストの詳細を指定します。イメージの場合、値にイメージ・ファイルのパスと名前を指定します。Webページのソースによっては、テーブルの他のテーブル・セル値も追加できます。

12. 「OK」をクリックします。テーブル・テスト・ノードがスクリプト・ツリーに追加されます。

    Javaコード・ビューでは、「検証のみ (失敗なし)」設定に応じて、`web.table(``objectId``).assertCells`または`web.table(``objectId``).verifyCells`メソッドがスクリプト・コードに追加されます。

        web.table(7,"/web:window[@index='0' or @title='MyImageTable']
         /web:document[@index='0']
         /web:table[@firstTableCell='http://my.com/img1.gif' or @index='28']")
         .assertCells("ImageTableTest",
           web.cells(web.cell(1, 1,"http://my.com/img2.gif", TestOperator.StringExact),
            web.cell(2, 1, "http://my.com/img3.gif", TestOperator.StringExact),
            web.cell(3, 1, "http://my.com/img4.gif", TestOperator.StringExact),
            web.cell(4 ,1, "http://my.com/img5.gif", TestOperator.StringExact)));

13. 記録が終了したら、「停止」ツールバー・ボタンをクリックします。

### 5.4.9 ページ・タイトル・テストの追加

ページ・タイトル・テストを使用して、Webページが所定のタイトルのページをクライアントに返さない場合に、ページ・タイトル・エラーのレポートまたはスクリプト再生の中止（あるいはその両方）を行うことができます。ページ・タイトル・テストでは、記録されたページ・タイトルが、スクリプトの再生時に受信されるタイトルと比較されます。

タイトル・テストをスクリプトに追加するには、次のようにします。

1. Web機能テスト・スクリプトを記録します。

2. 「Run」ノードを開きます。

3. ページ・タイトル・テストを追加するスクリプト・ノードを選択します。「WaitForPage」ノードを選択すると、オブジェクト識別パスIDが自動的にテストに追加されます。

4. 「スクリプト」メニューを選択してから、「追加」サブメニューで「その他」を選択します。

5. 「Web テスト」グループを開き、「タイトル テスト」を選択します。

6. 「OK」をクリックします。

7. 「追加先」オプションを選択します。

   - 指定ページ: 選択すると、スクリプトの特定の、または現在選択されているページにページ・タイトル・テストが追加されます。

   - スクリプト中のすべてのページ: 選択すると、再生時に比較するタイトルとして記録されているページを指定するスクリプトの、各ページにページ・タイトル・テストが追加されます。

8. オブジェクトのオブジェクト識別子パスを入力します。「キャプチャ」または「選択」メニュー・オプションを使用して、オブジェクト・パスをキャプチャまたは選択できます。パス編集ツールバーの詳細は、5.4.1項「パス編集ツールバー」を参照してください。

9. テストの名前を入力します。

10. ページ・タイトルを入力します。WaitForPageノードを選択した場合、ページ・タイトルは自動的にテストに追加されます。

11. 「検証のみ (失敗なし)」オプションを設定します。

12. 「OK」をクリックしてページ・タイトル・ノードをスクリプト・ツリーに追加します。

    Javaコード・ビューでは、ページ・タイトル・テストは、`web.window(``objectId``).verifyTitle()`または`web.window(``objectId``).assertTitle()`メソッドで実行されるコードから構成されます。

        web.window("/web:window[@index='0' or @title='Stocks']")
          .verifyTitle("MyTitleTest", "Home");

    または

        web.window("/web:window[@index='0' or @title='Stocks']")
          .assertTitle("MyTitleTest2", "Home");

    前述のコード例で、`verify`は"失敗時に停止しない"ことを意味し、`assert`は"失敗時に停止する"ことを意味します。

### 5.4.10 HTMLテストの追加

HTMLテストを使用して、Webページが所定のHTMLのページをクライアントに返さない場合に、HTMLエラーのレポートまたはスクリプト再生の中止（あるいはその両方）を行うことができます。HTMLテストでは、記録されたHTMLが、スクリプトの再生時に受信されるHTMLと比較されます。

スクリプトにHTMLを追加するには、次のようにします。

1. Web機能テスト・スクリプトを記録します。

2. 「Run」ノードを開きます。

3. HTMLテストを追加するスクリプト・ノードを選択します。「WaitForPage」ノードを選択すると、オブジェクト識別パスIDが自動的にテストに追加されます。

4. 「スクリプト」メニューを選択してから、「追加」サブメニューで「その他」を選択します。

5. 「Web テスト」グループを開き、「HTML テスト」を選択します。

6. 「OK」をクリックします。

7. 「追加先」オプションを選択します。

   - 特定のドキュメント: 選択すると、スクリプトの特定の、または現在選択されているHTMLドキュメントにHTMLテストが追加されます。

   - スクリプトのすべてのドキュメント: 選択すると、スクリプトの各HTMLドキュメントにHTMLテストが追加されます。

8. オブジェクトのオブジェクト識別子パスを入力します。「キャプチャ」または「選択」メニュー・オプションを使用して、オブジェクト・パスをキャプチャまたは選択できます。パス編集ツールバーの詳細は、5.4.1項「パス編集ツールバー」を参照してください。

9. テストの名前を入力します。

10. 「検証のみ (失敗なし)」オプションを設定します。

11. 「OK」をクリックしてHTMLテスト・ノードをスクリプト・ツリーに追加します。

    Javaコード・ビューでは、HTMLテストは、`web.document(``objectId``).verifyHTML()`または`web.document(``objectId``).assertHTML()`メソッドで実行されるコードから構成されます。

        web.document("/web:window[@index='0' or @title='Stocks']
          /web:document[@index='0']")
           .verifyHTML("MyHTMLTest","e6306c5cf8f6697d9ba7bb2110888a50");

    または

        web.document("/web:window[@index='0' or @title='Stocks']
          /web:document[@index='0']")
           .assertHTML("MyHTMLTest2","e6306c5cf8f6697d9ba7bb2110888a50");

    前述のコード例で、`verify`は"失敗時に停止しない"ことを意味し、`assert`は"失敗時に停止する"ことを意味します。

再生時にHTMLテストが失敗した場合、「結果」ビューでHTMLテスト結果を選択し、「詳細」ビューの「比較」タブで違いを表示できます。

### 5.4.11 Wait For Pageの追加

Wait For Pageブラウザ・オプションを使用して、サーバーからページが返されるまで待機してからスクリプト再生が続行されるようにできます。

Wait For Pageコマンドをスクリプトに追加するには、次のようにします。

1. Web機能テスト・スクリプトを記録します。

2. 「Run」ノードを開きます。

3. 「Wait For Page」ノードを追加するスクリプト・ノードを選択します。

4. 「スクリプト」メニューを選択してから、「追加」サブメニューで「その他」を選択します。

5. 「Web アクション」グループを開きます。

6. 「ブラウザ」グループを開きます。

7. 「Wait For Page」を選択して、「OK」をクリックします。

8. ドキュメントIDをXPath形式で入力します。

9. Wait for any pageオプションを選択または選択解除します。

10. Wait for any pageオプションの選択を解除した場合は、「URL」および「一致」オプションを指定します。

11. 「タイムアウト」値を設定します。

12. 「OK」をクリックして、サーバー・レスポンス・ノードをスクリプト・ツリーに追加します。

    Javaコード・ビューでは、`web.window(``objectId``).waitForPage()`メソッドがスクリプト・コードに追加されます。

        web.window(6, "/web:window[@index='0']").waitForPage("http://testserver2/fmstocks/home.asp", null, null)

### 5.4.12 オブジェクト・パスの調査

Webオブジェクト・パスを調べるには、次のようにします。

1. Web機能テスト・スクリプトを記録します。

2. 「スクリプト」メニューを選択した後、「パス探査」を選択します。OpenScriptのキャプチャ・モードが開きます。このダイアログ・ボックスでは、Webページ上のオブジェクトのオブジェクト・パスを取得できます。

   パス: マウス・カーソルで選択されたオブジェクトのオブジェクト識別パスを示します。

   [F10]を押してオブジェクト・パスを取得した後、プルダウン・メニューで次のオプションを使用できます。

   - オブジェクトをキャプチャ: オブジェクトをキャプチャするダイアログ・ボックスが開き、キャプチャ・モードが開始されます。キャプチャするオブジェクトに移動し、キャプチャ・ダイアログ・ボックス内のオプションを使用してオブジェクト・パスをキャプチャします。

   - オブジェクト パスの参照: 現在選択されているオブジェクト・パスを表示するためのダイアログ・ボックスが開きます。

   - オブジェクト ライブラリに保存: オブジェクト・パスを保存するオブジェクト・ライブラリを指定するためのダイアログ・ボックスが開きます。

   ポジション: 画面全体のx、y座標を示します。画面全体の左上の座標は{0,0}です。この位置座標は、オブジェクトに対するマウス・アクションの実行に画面の位置を必要とするFlashなどのオブジェクト・タイプを含む機能テストで使用されます。位置座標は、機能テストの`ft.mouseClick()`、`ft.mouseDown()`および`ft.mouseUp()`の各メソッドで使用されます。

   オフセット: 現在選択されているオブジェクトを基準するx、y座標を示します。選択されているオブジェクトの左上の座標は{0,0}です。このオフセット座標は、オブジェクトに対するマウス・クリックの実行に画面の位置を必要とするFlashなどのオブジェクト・タイプを含むWeb機能テストで使用されます。位置座標は、Web機能テストの`web.element().mouseClick()`メソッドで使用されます。

3. Webオブジェクトに移動し、マウス・カーソルをオブジェクト上に置きます。

4. [F10]を押してパスをキャプチャします。

5. マウス・カーソルでパスをハイライト表示し、[Ctrl]キーを押しながら[C]キーを押して、パスをクリップボードにコピーします。

6. 完了後、「OK」をクリックします。

### 5.4.13 スクリプト・プロパティの設定

スクリプト・プロパティを設定するには、次のようにします。

1. Web機能テスト・スクリプトを記録します。

2. 「スクリプト」メニューから「スクリプト プロパティ」を選択します。

3. プロパティのカテゴリを選択します。

4. カテゴリに対するプロパティを指定します。

5. 完了後、「OK」をクリックします。

### 5.4.14 データバンク変数の置換

スクリプトのデータバンク変数を問合せ文字列パラメータと置換するには、次のようにします。

1. テキスト文字列パラメータを含むWeb機能テスト・スクリプトを記録します。

2. 「Run」ノードを開きます。

3. テキスト・パラメータを含むノードを開きます。

4. テキスト・パラメータ・ノードを右クリックし、ショートカット・メニューから「プロパティ」を選択します。

5. スクリプトに1つ以上のデータバンクを設定している場合、[変数の置換]アイコンをクリックし、使用するデータバンク・ファイルから、テキスト・パラメータと置き換えるデータバンク・フィールドを選択し、「終了」をクリックします。

6. スクリプトにまだデータバンクを設定していない場合、「新規データバンクの追加」を選択して「次へ」をクリックします。

   1. 「参照」ボタンをクリックして、使用するデータバンク・ファイルを選択します。

   2. テキスト・パラメータと置換する列（フィールド名）を選択し、「終了」をクリックします。

   ツリー・ビューでは、データバンク変数が、記録済の値のかわりに{{db.databankFileName.field,recordedValue}}として表示されます。

   Javaコード・ビューでは、データバンク変数は`web.text(``objectId``).setText`メソッドに`{{db.``databankFileName``.``field``,``recordedValue``}}`として表示されます。

       web.text(1, "/web:window[@index='0']

          /web:document[@index='0']

          /web:form[@index='0']

          /web:input_text[@id='ticker'

            or @name='ticker'

            or @index='0']").setText("{{db.fmstocks_data.ticker,orcl}}")

### 5.4.15 Web機能テスト・モジュールAPIの使用

Web機能モジュールには、Web DOM機能テストに固有のスクリプトAPI（Application Program Interface）が含まれています。Web機能テスト・モジュール・レコーダにより、ツリー・ビューに対応するJavaコードが作成され、Javaコード・ビューにわかりやすい機能名を使用したWeb機能テストのコマンドが表示されます。Javaコード・ビューのコマンドはツリー・ビューに対応しており、どちらのビューでもスクリプトを編集できます。

Web機能テストAPIを使用して、記録済のスクリプトを追加のテスト機能で拡張できます。Web機能テスト・モジュール固有のコマンドはwebクラスに属しています。その他の機能テスト・メソッドはftクラスで入手可能です。また、その他の有効なクラス（サービス）の他のコマンドや汎用Javaコマンドも、スクリプトで利用できます。

Webテスト・モジュールAPIの例には、次のようなものがあります。

- 制御文の追加

- 思考時間の追加

- ブラウザの起動と終了

- URLへの移動

- Webオブジェクトに対するアクションの実行（クリック、ダブルクリックなど）

- テキスト・フィールドの設定

- ページの読込みの待機

Web機能テスト・モジュールのツリー・ビューを使用して、多数のAPIメソッドを追加できます。Javaコード・ビューを使用してさらにメソッドを追加することができます。使用できるプロシージャおよびサンプル・コード一覧のインテリジェンス・ウィンドウを開くには、[Ctrl]キーを押しながら[Space]キーを押します。その他のプログラミング情報の詳細は、OpenScriptヘルプのAPIリファレンスを参照してください。

## 5.5 オブジェクト・ライブラリの編集

オブジェクト・ライブラリを編集するには、次のようにします。

1. 「Web 機能テスト」スクリプト・プロジェクトを作成します。

2. スクリプトにオブジェクト・ライブラリを追加し、テスト用のWebアプリケーションを記録します。

3. スクリプト・ツリーでオブジェクト ライブラリ読込ノードを選択した後、右クリック・ショートカット・メニューから「オブジェクト ライブラリを開く」を選択します。

4. 必要に応じて、「オブジェクト ライブラリ」タブをクリックします。

5. 「オブジェクト」リストでオブジェクトを選択します。

6. 「詳細」セクションでオブジェクト属性を編集します。

   「オブジェクト」リストに対するオブジェクトの追加および削除ができます。オブジェクト文字列で、または「詳細」セクションのツリー階層で、オブジェクト属性を編集します。ツリー階層では属性の優先順位を上または下に移動できます。

   「libraryName.properties」タブをクリックして、オブジェクト・ライブラリ・ファイル・ソース内のオブジェクト/オブジェクト属性テキスト文字列を表示または編集できます。

7. 「ファイル」メニューで「保存」を選択するか、「保存」ツールバー・ボタンをクリックして、オブジェクト・ライブラリ・ファイルに対する変更を保存します。