ヘッダーをスキップ
Oracle® Functional Testing OpenScriptユーザーズ・ガイド
バージョン9.31
B62630-03
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

3 スクリプトの作成と変更

この章では、OpenScriptで基本的なスクリプトを作成および変更する手順について説明します。モジュールの各章では、各モジュールで提供される機能を使用したスクリプトの作成について詳細に説明します。

3.1 リポジトリとワークスペースの作成

リポジトリおよびワークスペースにはプロジェクト関連のスクリプト・ファイルと結果ログ・ファイルが格納されます。リポジトリおよびワークスペースを使用して、様々なテスト・プロジェクトを編成できます。OpenScriptでは、複数のワークスペースを生成できます。リポジトリを生成して、スクリプト・プロジェクトのストレージを編成できます。


注意:

Oracle Load Testingアプリケーションで実行予定のスクリプトはすべて、関連するアセットとともに、リポジトリ/ワークスペース内に保存する必要があります。

リポジトリは、ワークスペースを格納する直接の場所です。ワークスペースは、リポジトリのユーザーが指定したサブディレクトリです。OpenScriptでは9.10以降のバージョンから、ディレクトリ名の末尾に感嘆符を使用することでディレクトリをワークスペース・ディレクトリとして識別することはなくなります。指定したリポジトリの下にあるフォルダ(ディレクトリ)はワークスペース・フォルダとなることが可能です。

スクリプトを記録して保存すると、またはスクリプトを再生してログ・ファイルを保存すると、OpenScriptは指定されたワークスペースにスクリプトやログ・ファイルを格納します。

以前のインストール環境とは関係のないリポジトリが1つでもあれば、OpenScriptは新しいリポジトリを作成しません。現在のユーザーがこのマシンにOpenScriptをインストールしていない場合、OpenScriptは、<installDir>/OFTに、Defaultという名前のリポジトリを作成します。ユーザーはOpenScriptを使用して、独自のリポジトリやワークスペースを作成できます。

リポジトリは、スクリプトと関連アセット・ファイルを格納する場所を指定します。リポジトリを、OpenScriptとOracle Load Testingの間でファイルを共有する手段として利用することもできます。Oracle Load Testingでは、すべてのアセットが名前付きのリポジトリ内で有効でなければなりません。Oracle Load Testingはリポジトリ以外のローカル・ファイル・システムにあるアセットを検索できないためです。共有ディレクトリをリポジトリとして使用できます。Oracle Load Testing、Oracle Test Manager、OpenScript、およびチーム・メンバーの間で共有されるリポジトリはすべて同じリポジトリを共有できる必要があります。たとえば、チームのあるメンバーが共有リポジトリに「SharedRepo1」という名前を付け、別のメンバーが同じ共有リポジトリに「Shared_Repository_1」という名前を付けた場合には、チーム・メンバーがスクリプトを共有するとき、スクリプト・アセットの一部が見つからない可能性があります。

ローカル・リポジトリ名が競合する可能性を少なくするために、ユーザーにとって一意の名前、たとえば<machineName>.<windowsUserName>.MyRepositoryなどの名前で新規のローカル・リポジトリを作成することをお薦めします。チーム・メンバー間で共有する予定がないスクリプトはすべて、このフォルダに格納するようにします。

ベスト・プラクティス:

3.1.1 リポジトリの生成

リポジトリを生成するには、次のようにします。

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

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

  3. 「一般」ノードを開きます。

  4. 「リポジトリ」ノードを選択します。

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

    このダイアログ・ボックスでは、スクリプト・ファイルの格納に使用するリポジトリの名前および場所を指定できます。

  6. リポジトリ名を入力します。名前は必須です。

    名前: リポジトリを識別するための名前を入力します。


    注意:

    OpenScriptスクリプトをOracle Load Testingで使用する場合、指定するリポジトリ名は、Oracle Load Testingで指定されたリポジトリ名と一致させる(大/小文字の区別を含む)必要があります。

  7. ドライブおよびディレクトリの場所を入力するか、「参照」をクリックして、リポジトリに使用する場所を選択します。

    場所: リポジトリのドライブおよびディレクトリ・パスを入力するか、「参照」ボタンを使用して場所を選択します。場所は有効なドライブおよびディレクトリ・パスである必要があります。

  8. 「OK」をクリックして、リポジトリのリストに新規リポジトリを追加します。

  9. 「OK」をクリックして、詳細設定を閉じます。

新しいスクリプト・プロジェクトを生成する際には、プロジェクトの格納に使用するリポジトリを選択できます。

3.1.2 リポジトリの管理

リポジトリを追加、編集または削除するには、次のようにします。

  1. 「ツール」メニューから「リポジトリの管理」を選択します。

  2. ワークスペースを作成するリポジトリを選択します。

  3. 「追加」「編集」または「削除」ボタンをクリックして、リポジトリを管理します。

  4. 完了したら「閉じる」をクリックします。

3.1.3 フォルダ(ワークスペース)の管理

新しいテスト・プロジェクトを開始する際には、プロジェクト固有のワークスペース・フォルダを生成して関連ファイルを格納する必要があります。

ワークスペース・フォルダの生成、名称変更または削除を実行するには、次のようにします。

  1. 「ツール」メニューから「フォルダ管理」を選択します。リポジトリのワークスペース・フォルダを管理するダイアログ・ボックスが開きます。

  2. ツリーを開いて、管理するワークスペース・フォルダを選択します。

  3. 「新規」「名称変更」または「削除」ボタンをクリックして、ワークスペース・フォルダを管理します。

  4. 完了したら「閉じる」をクリックします。

3.1.4 スクリプトの管理

リポジトリの名前の変更または削除を行うには、次のようにします。

  1. 「ツール」メニューから「スクリプトの管理」を選択します。

  2. スクリプトを選択します。

  3. 「名称変更」または「削除」ボタンをクリックして、スクリプト・ファイルを管理します。

  4. 完了したら「閉じる」をクリックします。

3.2 スクリプト・プロジェクトの生成

カスタマイズ可能な基本構造を生成するには、スクリプト・プロジェクトを生成する必要があります。

スクリプト・プロジェクトを生成するには:

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

  2. グループ・ノードを開き、作成するアセットまたはスクリプトのタイプを選択します。

    機能テスト (ブラウザ/GUI 自動化): 機能テスト・グループには、次のスクリプト・タイプが含まれます。

    • Web: このオプションを使用すると、ブラウザ/GUIレベルでAdobe Flex Automation Frameworkを使用するWebアプリケーションの機能テストを自動で行うための新しいスクリプトを作成できます。結果のスクリプトには、Initialize、RunおよびFinishノードが含まれます。Runノードには、定義されたWeb機能テスト・ステップ・グループの詳細設定に基づいて記録されたWebナビゲーション、および記録中に実行されたWebナビゲーションとFlexアクションが含まれます。スクリプト・ツリーまたはJavaコードを編集して、スクリプトをカスタマイズできます。

    • Oracle EBS/Forms: このオプションを使用すると、Oracle E-Business Suite、およびブラウザ/GUIレベルでWebやOracle Formsコンポーネントを使用するその他のアプリケーションの機能テストを自動で行うための新しいスクリプトを作成できます。結果のスクリプトには、Initialize、RunおよびFinishノードが含まれます。Runノードには、定義されたステップ・グループの詳細設定に基づいて記録されたWebナビゲーション、および記録中に実行されたWebナビゲーションとFormsアクションが含まれます。スクリプト・ツリーまたはJavaコードを編集して、スクリプトをカスタマイズできます。

    • Oracle Fusion/ADF: このオプションを使用すると、Oracle Application Development Framework (ADF)ベースのアプリケーション、およびブラウザ/GUIレベルでWebおよびADFコンポーネントを使用するその他のアプリケーションの機能テストを自動で行うための新しいスクリプトを作成できます。結果のスクリプトには、Initialize、RunおよびFinishノードが含まれます。Runノードには、定義されたステップ・グループの詳細設定に基づいて記録されたWebナビゲーション、および記録中に実行されたWebナビゲーションとADFアクションが含まれます。スクリプト・ツリーまたはJavaコードを編集して、スクリプトをカスタマイズできます。

    • Siebel: このオプションを使用すると、ブラウザ/GUIレベルでSiebelの高い双方向性や標準の双方向性/Webコントロールを使用するSiebelアプリケーションの機能テストを自動で行うための新しいスクリプトを作成できます。結果のスクリプトには、Initialize、RunおよびFinishノードが含まれます。Runノードには、定義されたステップ・グループの詳細設定に基づいて記録されたWebナビゲーション、および記録中に実行されたWebナビゲーションが含まれます。スクリプト・ツリーまたはJavaコードを編集して、スクリプトをカスタマイズできます。

    • Web: このオプションを使用すると、ブラウザ/GUIレベルのWebアプリケーションの機能テストを自動で行うための新しいスクリプトを作成できます。結果のスクリプトには、Initialize、RunおよびFinishノードが含まれます。Runノードには、定義されたステップ・グループの詳細設定に基づいて記録されたWebナビゲーション、および記録中に実行されたWebナビゲーションが含まれます。スクリプト・ツリーまたはJavaコードを編集して、スクリプトをカスタマイズできます。

    一般: 一般グループには、次のスクリプト・タイプが含まれます。

    • データベース: このオプションを使用すると、SQL文を自動的にテストするためのデータベース・スクリプトの基本構造を作成して、Oracle Load Testingアプリケーションでデータベースをテストし、SQLを実行できます。基本的なスクリプトの構造には、Initialize、RunおよびFinishノードのみ含まれます。「ツール」メニューのデータベース・キャプチャ・ファイルのインポート・オプションを使用して、Oracle Database Replayキャプチャ・ワークロード・ファイル、通常のSQL文およびPL/SQL文、.SQLスクリプト・ファイル、またはSQLチューニング・セット(STS)に取得され格納されているSQL文をスクリプトにインポートできます。

    • Java コード スクリプト: このオプションを使用すると、OpenScript Eclipse IDEを介して独自のカスタムJavaコードを使用する新しい自動テスト・スクリプトを作成できます。基本的なスクリプトの構造には、Initialize、RunおよびFinishノードのみ含まれます。スクリプト・ツリーまたはJavaコードを編集して、独自のカスタム・スクリプトを開発できます。

    • テンプレートからスクリプト: このオプションを使用すると、テンプレート・スクリプトとして以前に保存したスクリプトに基づいて新しいスクリプトを作成できます。このオプションを選択した場合は、新しいスクリプトの名前を指定する前に、以前に保存したテンプレート・スクリプトの一覧からスクリプトを選択します。選択したスクリプトには、Initialize、RunおよびFinishの各ノードと、テンプレート・スクリプトに追加したカスタム・コードが含まれます。スクリプト・ツリーまたはJavaコードを編集して、スクリプトをカスタマイズできます。

    • Web サービス: このオプションを使用すると、SOAP/HTTPプロトコル・レベルのWebサービスを自動的にテストする、Webサービス・スクリプトの基本構造を作成できます。Webサービス・スクリプトの構造には、Initialize、RunおよびFinishノードのみが含まれます。WSDLファイルを追加するためのWSDLマネージャを使用し、スクリプト・ツリーまたはJavaコードを編集してスクリプトをカスタマイズできます。HTTP経由で通信するWebサービス・クライアント・アプリケーションがすでに作成されていて、そのアプリケーションがプロキシを介して通信する場合、OpenScript HTTPレコーダを使用してトラフィックを記録できます。

    負荷テスト (プロトコル自動化): 負荷テスト・グループには、次のスクリプト・タイプが含まれます。

    • Adobe Flex (AMF): このオプションを使用すると、プロトコル・レベルでHTTPプロトコルおよびAdobe Flex Action Message Format (AMF)プロトコルを使用するWebアプリケーションの負荷テスト用のスクリプトを新規作成できます。結果のスクリプトには、Initialize、RunおよびFinishノードが含まれます。Runノードには、ステップ・グループの詳細設定の定義内容と、記録中に実行されたアクションのナビゲーションのプロトコルに基づいて記録されたFlex AMFとHTTPのプロトコル・ナビゲーションが含まれます。スクリプト・ツリーまたはJavaコードを編集して、スクリプトをカスタマイズできます。

    • Oracle EBS/Forms: このオプションを使用すると、Oracle E-Business Suite、およびプロトコル・レベルでHTTPおよびOracle Forms (NCA)プロトコルを使用するその他のアプリケーションの負荷テストを行うための新しいスクリプトを作成できます。結果のスクリプトには、Initialize、RunおよびFinishノードが含まれます。Runノードには、定義されたステップ・グループの詳細設定に基づいて記録されたHTTPプロトコル・ナビゲーション、および記録中に実行されたアクションのナビゲーションとFormsプロトコルが含まれます。スクリプト・ツリーまたはJavaコードを編集して、スクリプトをカスタマイズできます。

    • Oracle Fusion/ADF: このオプションを使用すると、Oracle Application Development Framework (ADF)ベースのアプリケーション、およびプロトコル・レベルでHTTPおよびADFプロトコルを使用するその他のアプリケーションの負荷テストを行うための新しいスクリプトを作成できます。結果のスクリプトには、Initialize、RunおよびFinishノードが含まれます。Runノードには、定義されたステップ・グループの詳細設定に基づいて記録されたHTTPプロトコル・ナビゲーション、および記録中に実行されたアクションのナビゲーションとADFプロトコルが含まれます。スクリプト・ツリーまたはJavaコードを編集して、スクリプトをカスタマイズできます。

    • Siebel: このオプションを使用すると、新規OpenScriptスクリプト・プロジェクトのSiebelスクリプト構造を作成できます。Siebelスクリプトを使用すると、Siebelアプリケーションの負荷テストを行うためのブラウザを使用して、Siebel Webナビゲーションを記録できます。結果のスクリプトには、Initialize、RunおよびFinishノードが含まれます。Runノードには、定義されたステップ・グループの詳細設定に基づいて記録されたHTTPプロトコル・ナビゲーション、および記録中に実行されたWebナビゲーションとSiebelナビゲーションが含まれます。スクリプト・ツリーまたはJavaコードを編集して、スクリプトをカスタマイズできます。

    • Web/HTTP スクリプト: このオプションを使用すると、HTTPプロトコル・レベルのWebアプリケーションの負荷テストを行うための新しいスクリプトを作成できます。結果のスクリプトには、Initialize、RunおよびFinishノードが含まれます。Runノードには、定義されたステップ・グループの詳細設定に基づいて記録されたWebナビゲーション、および記録中に実行されたWebナビゲーションが含まれます。スクリプト・ツリーまたはJavaコードを編集して、スクリプトをカスタマイズできます。このスクリプト・タイプにはWebとHTTPの2つの記録モードがあります。記録モードは、HTTPモジュール記録の詳細設定で指定します。この設定は、新しいスクリプトを記録する前に設定する必要があります。記録モード設定の詳細は、2.5.2項「HTTPの詳細設定」を参照してください。

    スクリプト アセット: スクリプト・アセット・グループには、次のスクリプト・アセット・タイプが含まれます。

    • データバンク: このオプションを使用すると、新規のデータバンクを作成するか、既存のデータバンク・ファイルを開くことができます。新規アセット・ウィザードでは、既存のデータバンク・ファイルのファイルの場所へのナビゲートや、新規のデータバンク・ファイルの名前の入力ができます。ウィザードで「終了」をクリックすると、既存または新規のデータバンク・ファイルがテキスト・エディタ・ビューで開かれます。

    • オブジェクト ライブラリ: このオプションを使用すると、新規のオブジェクト・ライブラリを作成するか、既存のオブジェクト・ライブラリを開くことができます。新規アセット・ウィザードでは、既存のオブジェクト・ライブラリ・ファイルのファイルの場所へのナビゲートや、新規のオブジェクト・ライブラリ・ファイルの名前の入力ができます。ウィザードで「終了」をクリックすると、既存または新規のオブジェクト・ライブラリ・ファイルがオブジェクト・ライブラリ・エディタ・ビューで開かれます。

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

  4. スクリプト・プロジェクトの保存先を選択します。スクリプトはリポジトリとワークスペース内に格納できます。Oracle Load Testingで使用する目的で開発した負荷テスト・スクリプトは、リポジトリ/ワークスペースに保存する必要があります。

    • パス: 選択したリポジトリ/ワークスペースのファイル・パスが表示されます。

    • マイ リポジトリ: スクリプト・プロジェクトを保存するリポジトリを指定します。ツリーからリポジトリおよびワークスペースを選択します。リポジトリは「ツール」メニューの「リポジトリ管理」を使用して管理できます。

    • [ファイルの一覧]: 選択したリポジトリ/ワークスペースに存在する、ファイルまたはスクリプトの名称が一覧表示されます。

    • スクリプト: スクリプト・プロジェクトの名称を指定します。スクリプト名は必須であり、一意であることが必要です。

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

  6. 「終了」をクリックします。Javaコード・スクリプトの場合は、スクリプト・ビューに基本のスクリプト・ツリーが作成されます。Javaコードはコード・ビューで編集できます。モジュール・スクリプトの場合は、スクリプト・ビューにスクリプト・ツリーが作成されます。スクリプトを記録すると、スクリプト・タイプに応じて、ツリー・ビューにナビゲーションおよびアクションが含まれます。

3.2.1 既存のスクリプトのオープン

(スクリプト・プロパティ内の)スクリプト・アセットを導入するには、9.10より前のバージョンのスクリプトを現在の9.10以上のバージョンに移行する必要があります。この項では、OpenScriptスクリプトの下位互換性とアップグレードについて説明します。

旧バージョンのOpenScriptで作成されたスクリプトは、コマンドライン、Oracle Load TestingおよびOracle Test Managerから変更を行わなくても、常に新しいバージョンの製品で実行されます。

旧バージョンのOpenScriptスクリプトは、まずアップグレードを行わないと、新バージョンのOpenScriptユーザー・インタフェースで開いたり再生することができません。

以前公開されたスクリプトAPI関数は最新のリリースでサポートされています。公開されたAPIには非推奨とマーク付けされているものもありますが、下位互換性を維持するため、新規のリリースでも同じように動作します。

3.2.1.1 旧バージョンのスクリプトのOpenScriptでのオープン

OpenScriptユーザー・インタフェースでスクリプトを開くためには、スクリプトを最新リリースにアップグレードする必要があります。OpenScriptユーザー・インタフェースでスクリプトを開かない場合は、スクリプトを新しいバージョンにアップグレードする必要はありません。旧バージョンのOpenScriptスクリプトは、コマンドライン、Oracle Load TestingおよびOracle Test Managerから変更を行わなくても実行できます。しかし、バージョン9.0xのスクリプトの場合、repositoryLocation/workspace!/scriptというリポジトリ/ワークスペースの構造を維持する必要があります。9.0xスクリプトをバージョン9.1以上のリポジトリに直接コピーすることはできません。


注意:

バージョン9.10以上のスクリプトは、前のバージョンのOpenScript、Oracle Load TestingおよびOracle Test Managerでは再生できません。9.10より前のバージョンのスクリプトを保持する場合は、そのスクリプトを9.10以上のバージョンで開いて保存する前にバックアップ・コピーを作成する必要があります。OpenScriptでは、9.10より前のバージョンのスクリプトがOpenScriptバージョン9.10以上で開かれて保存されると、そのスクリプトが自動的に移行されます。

旧バージョンのスクリプトをOpenScriptユーザー・インタフェースで開くと常に、スクリプトを現在のバージョンにアップグレードするように自動的に表示されます。旧バージョンのスクリプトを開く際は、スクリプトを開かないことも選択可能で、これを選択するとスクリプトはアップグレードされません。

スクリプトのアップグレードが求められたとき、そのスクリプトが子スクリプトまたは関数ライブラリに依存している場合は、子スクリプトまたは関数ライブラリも新バージョンにアップグレードするオプションが表示されます。

スクリプトが新バージョンにアップグレードされると、そのスクリプトを旧バージョンのOracle Application Testing Suite (OpenScript、Oracle Load TestingまたはOracle Test Manager)でオープンまたは実行することはできなくなります。

3.2.1.2 旧バージョンのスクリプトのOpenScriptでの移行

スクリプトをOpenScriptで個々に開かずにアップグレードする場合は、「ツール」メニューの「スクリプト移行」アップグレード・オプションを使用できます。「スクリプト移行」ツールでは、スクリプトを個々に開かなくても、9.10より前のバージョンのスクリプトを現在のバージョンに移行できます。

「スクリプト移行」ツールには、トップレベル・スクリプトを移行し、依存するすべての子スクリプトを特定するためのオプションがあります。「スクリプト移行」ツールでは、現在のバージョンに移行するスクリプトを選択し、同時に移行が必要な子スクリプトも検索することができます。

バージョン9.10から、Oracle Load Testingで実行されるスクリプトはリポジトリまたはスクリプト・アセットの絶対パスを指定しない場合があります。最新バージョンのOracle Load Testingでは、9.10よりも前のスクリプトで絶対パスを使用していても、スクリプトを変更せずにそのままの状態で実行できます。OpenScriptユーザー・インタフェースまたはスクリプト移行ツールを使用して9.10よりも前のスクリプトを最新バージョンにアップグレードした場合は、絶対パスを相対パスに変更しないかぎり、Oracle Load Testingでスクリプトを再生できません。スクリプト移行ツールを使用しても、絶対パスは相対パスにもリポジトリ・パスにも変更されません。スクリプトの絶対パスは、手動で変更する必要があります。

3.2.1.3 バージョンが混在するスクリプトの実行

親スクリプトが子スクリプトまたは関数ライブラリを呼び出す場合に、バージョンが混在するジョブ・スクリプトを実行することはお薦めできません。これは、9.0xの子スクリプトまたは関数ライブラリを実行する、9.1xの親スクリプトが存在するときなどに発生します。この構成はテスト済でサポートもされていますが、バージョンが混在するスクリプトの組合せは、予期しない結果やどのスクリプトが最新バージョンなのかという混乱を招く場合があります。さらに、バージョンが混在するジョブ・スクリプトは、新バージョン9.10の次のような改良点を利用できない可能性があります。

  • バージョン9.10は、子スクリプトを視覚的に検査して親スクリプトに追加するオプションを提供します。子スクリプトが9.10にアップグレードされていない場合、OpenScriptではユーザー・インタフェース・オプションに使用可能な関数が表示されません。

  • バージョン9.10のスクリプトでは、子スクリプトの全データバンクを親スクリプトのデータバンクとして追加することが不要になりました。子スクリプトが9.10にアップグレードされていない場合、以前と同様に、子スクリプトのデータバンクを親スクリプトのデータバンクとして保持する必要があります。

3.2.1.4 複数のユーザーによるスクリプトのオープン

既存のスクリプトについては、ファイルの同時実行が制御されるため、複数のユーザーが同じスクリプトを編集することはできません。他のユーザーが使用中のスクリプトを開こうとすると、スクリプト・コピー・ウィザードが開いて、スクリプトおよびその他のファイルのコピーを作成するかたずねられます。

3.2.2 スクリプトの移行

スクリプトを現在のバージョンに移行するには:

  1. 「ツール」メニューから「スクリプト移行」を選択します。

    このダイアログ・ボックスでは、9.10より前のバージョンのOpenScriptスクリプトを現在のバージョンに移行できます。ダイアログ・ボックスの最上部にある「プロンプト」は、選択したスクリプトが現在のバージョンか移行対象のバージョンかを示し、適切なアクションを指示します。スクリプト移行マネージャには次のオプションがあります。

    • パス: 選択したリポジトリ/ワークスペースのファイル・パスが表示されます。

    • マイ リポジトリ: 移行または検索するスクリプトを選択するためのリポジトリを指定します。ツリーからリポジトリおよびワークスペースを選択します。

    • [ファイルの一覧]: 選択したリポジトリ/ワークスペースに存在する、ファイルまたはスクリプトの名称が一覧表示されます。

    • スクリプト: 移行または検索するスクリプトの名前を指定します。

    • 移行: 有効になっている場合、選択したスクリプトは9.10より前のバージョンのスクリプトで、現在のバージョンに移行できます。無効になっている場合、スクリプトはすでにバージョン9.10以上のスクリプトで、移行は必要ありません。

    • 子スクリプトの検索: 有効になっている場合、選択したスクリプトは9.10より前のバージョンのスクリプトで、現在のバージョンに移行できます。無効になっている場合、スクリプトはすでにバージョン9.10以上のスクリプトで、移行は必要ありません。

  2. 「マイ リポジトリ」ツリーを開き、スクリプト・ファイルを含むワークスペース・フォルダに移動します。

  3. スクリプトを選択します。

    「移行」が有効になっている場合、スクリプトは9.10より前のバージョンのスクリプトで移行が可能です。「移行」が無効になっている場合、スクリプトはすでにバージョン9.10以上のスクリプトで、移行は必要ありません。

    子スクリプトの検索が有効になっている場合、スクリプトはすでにバージョン9.10以上のスクリプトで、子スクリプトの検索機能を使用することで、現在選択されているスクリプトのアセットである可能性が高い子スクリプトを検索できます。子スクリプトが見つかると、子スクリプトの移行オプションを使用して子スクリプトを移行するか、その他の子スクリプトをさらに検索できます。子スクリプトの検索が無効になっている場合、スクリプトは9.10より前のバージョンのスクリプトで、現在のバージョンに移行する必要があります。

  4. 「移行」または子スクリプトの検索を、選択したスクリプト・ファイルに応じてクリックします。

  5. 完了したら「閉じる」をクリックします。

3.2.3 テンプレートとしてスクリプトを保存する

既存のスクリプトをテンプレート・スクリプトとして保存できます。テンプレート・スクリプトは、スクリプトを新規作成するときの土台として使用できます。テンプレートに基づいて作成する新規スクリプトには、テンプレート・スクリプトと同じ構造とカスタム・コードが含まれます。

既存のスクリプトをテンプレートとして保存するには、次のようにします。

  1. テンプレートとして保存するスクリプトを開くか、新しくスクリプトを作成します。

  2. テンプレートに含めておく記録、オプションまたはカスタム・コードを設定して、スクリプトをカスタマイズします。

  3. 「ファイル」メニューから「テンプレートとして保存」を選択します。

  4. テンプレート用のファイル名を入力し、「OK」をクリックします。

テンプレートに名称を付けるときに、テンプレート名の一部に、スクリプトのタイプ(HTTP負荷、Web機能、Siebel負荷など)を指定するようにしてください。こうしておくと、テンプレートに基づいてスクリプトを新規作成する際に役に立ちます。

3.2.4 テンプレートに基づくスクリプトの新規作成

過去にテンプレート・スクリプトとして保存したスクリプトに基づいてスクリプトを新規作成できます。選択したスクリプトには、Initialize、RunおよびFinishの各ノードと、テンプレート・スクリプトに追加したカスタム・コードが含まれます。

テンプレートに基づいてスクリプトを新規作成するには、次のようにします。

  1. 「ファイル」メニューの「新規」を選択するか、ツールバー・ボタンをクリックします。

  2. 「一般」セクションを開き、「テンプレートからスクリプト」を選択します。

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


    注意:

    テンプレートに基づいてスクリプトを新規作成できるように、過去に保存したスクリプトがなければなりません。

  4. スクリプトの新規作成に使用するテンプレートを選択し、「次」をクリックします。

  5. 新規スクリプトの名称を入力し、「終了」をクリックします。

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

スクリプト・プロパティは、特定のスクリプトのプロパティ設定を指定します。スクリプト・プロパティは、スクリプトが開いているときはいつでも設定できます。スクリプト・プロパティには次の内容が含まれます。

  • データバンク、オブジェクト・ライブラリ、汎用JARファイル、および子スクリプトとして実行されるその他のスクリプトが含まれるスクリプト・アセット。

  • 負荷テスト (プロトコル自動化)タイプのスクリプト用の相関プロパティ。

  • スクリプトとともに含まれるモジュール・サービスを指定する、モジュール・プロパティ。

  • 記録中のステップ・グループの作成方法を指定するステップ・グループ・プロパティ。

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

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

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

  3. 左側のペインでプロパティ・タイプを選択します。

  4. 右側のペインのオプションを使用して、特定のプロパティを設定します。

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

スクリプト・プロパティ・ペインについては次の項で説明します。

3.2.5.1 相関および検証

このダイアログ・ボックスでは、負荷テスト (プロトコル自動化)タイプのスクリプト用の相関プロパティを指定できます。「相関」ペインには次のオプションがあります。

  • モジュール: スクリプトで相関ルールについて使用されるモジュール・タイプを指定します。

  • 選択したモジュールの設定: 現在のスクリプトの相関ライブラリおよびルール設定を表示します。ツリー・ビューを展開すると、選択したライブラリおよびルールが表示されます。

    • 編集: 指定したモジュール・タイプの相関プロパティ・ウィンドウを開きます。

3.2.5.2 モジュール

このダイアログ・ボックスでは、スクリプトとともに含まれるモジュール・サービスを指定できます。「モジュール」ペインには次のオプションがあります。

  • モジュール: 現在のスクリプトとともに含まれるモジュール・サービスを表示します。基本モジュールおよびユーティリティ・モジュールはすべてのスクリプト・タイプに共通です。共有データ・モジュールもすべてのスクリプト・タイプとともに使用できます。HTTPモジュールはすべての負荷テスト (プロトコル自動化)タイプのスクリプトに共通です。機能テスト・モジュールおよびWeb機能テスト・モジュールは機能テスト・タイプ・スクリプトに共通です。その他のモジュールは各スクリプト・タイプに固有です。

3.2.5.3 スクリプト・アセット

このダイアログ・ボックスでは、アセットをスクリプトに指定できます。「スクリプト・アセット」ペインには次のオプションがあります。

  • アセット: スクリプトに追加されたアセットをツリー・ビューでタイプ別に一覧表示します。スクリプト・アセットはデータバンク、オブジェクト・ライブラリ、汎用JARファイルまたはその他のスクリプトである場合があります。

  • ファイル: 現在のスクリプトにアセットとして追加されたファイルを示します。ファイルを表示するには「アセット」列でツリー・ビューを開きます。

  • 追加: アセットとして追加するファイルを選択するためのファイル選択ダイアログ・ボックスを開きます。「マイ リポジトリ」ツリーを開き、ファイルを含むワークスペース・フォルダに移動します。


    注意:

    Oracle Load Testingアプリケーションで実行予定のスクリプトはすべて、関連するアセットとともに、Oracle Load Testing Controllerによるアクセスが可能なリポジトリ/ワークスペース内に保存する必要があります。OpenScriptでリポジトリを新規作成する場合は、新規のリポジトリをOracle Load Testingで追加する必要もあります。

  • 編集: アセットとして追加するファイルを変更するためのファイル選択ダイアログ・ボックスを開きます。

  • 開く: 選択したアセット・ファイルを適切なエディタで開きます。

  • 削除: 選択したアセット・ファイルを「アセット」ツリーから削除します。このファイルはリポジトリ/ワークスペースにはまだ存在しています。

3.2.5.4 ステップ・グループ

このダイアログ・ボックスでは、現在のスクリプト用のステップ・グループ・プロパティを指定できます。「ステップ・グループ」ペインには次のオプションがあります。

  • モジュール: スクリプトでステップ・グループ・ルールについて使用されるモジュール・タイプを指定します。

  • 選択したモジュールの設定: 現在のスクリプトのステップ・グループ設定を表示します。設定は各スクリプト・タイプに固有です。

    • 編集: 指定したモジュール・タイプのステップ・グループ・プロパティ・ウィンドウを開きます。

3.2.6 データベース・キャプチャ・ファイルのインポート

データベース・リプレイ・キャプチャ・ファイル、通常のSQL文およびPL/SQL文、.SQLスクリプト・ファイル、またはSQLチューニング・セット(STS)に取得され格納されているSQL文をインポートして、データベースに接続し、SQL文を実行するOpenScript負荷テスト・スクリプトを生成できます。

データベース詳細設定を設定するには:

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

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

  3. 「一般」ノードを選択します。

  4. 「日付フォーマット」を選択します。詳細は第2章の「一般の詳細設定」を参照してください。

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

データベース・キャプチャ・ファイルに基づいてスクリプトを作成するには:

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

  2. 「一般」グループを開き、「データベース」スクリプト・タイプを選択します。

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

  4. スクリプトを格納するリポジトリおよびワークスペースを選択します。

  5. スクリプト名を入力して「終了」をクリックします。新規のベースとなるスクリプト・プロジェクトがスクリプト・ツリー内に作成されます。

  6. 「ツール」メニューのデータベース・キャプチャ・ファイルのインポートを選択します。データベース・キャプチャ・ファイルのインポート・ウィザードは、インポート対象のデータベース・キャプチャ・ファイルまたはSQL文ファイルのファイル・フォーマットのタイプ、ソース・ファイル、およびSQL文パラメータ化を指定するために開かれます。

  7. インポートするデータベース・ファイル・フォーマットを選択します。

    • データベース・リプレイ キャプチャ ファイル: 選択すると、Oracle DBReplayキャプチャ・ワークロード・ファイルをインポートできます。

    • SQL および PL/SQL 構文スクリプト: 選択すると、通常のSQL文およびPL/SQL文を含む.SQLスクリプト・ファイルをインポートできます。

    • Oracle Database 中の STS: 選択すると、SQLチューニング・セット(STS)に取得および格納されているSQL文をインポートできます。

  8. インポートするアイテムの最大数を指定します。

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

  10. データベース・リプレイ・キャプチャ・ファイル(.recファイル拡張子)、SQL文およびPL/SQL文を含むスクリプト・ファイル(.sqlファイル拡張子)、またはSQLチューニング・セット(STS)のファイル・パスと名前を入力するか、「参照」をクリックしてファイルを選択します。

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

  12. 使用するデータベース接続の別名を選択するか、または「新規」をクリックして新しく接続を指定します。「新規」を選択した場合は、データベース・ドライバ、URL、ユーザー名、パスワードおよび別名の情報を入力します。別名は、スクリプト内で、データベース接続を参照するために使用する名称です。「テスト」をクリックして接続を検証したら、「OK」をクリックして、新しい接続を使用できるようにします。

  13. スクリプトに含める各SQL文を選択または選択解除し、SQL文のパラメータ化を設定します。

    • 編集: 特定のSQL問合せを編集するためのダイアログ・ボックスを開きます。SQL問合せを編集するか、問合せの特定の値をパラメータ化する編集オプションを使用します。

    • パラメータ化: 選択したSQL問合せのすべてのリテラル・パラメータに対するSQLバインドを作成します。これを使用すると、データベースのSQL文の解釈が効率的になります。たとえば、次の3つのデータベース問合せを作成するアプリケーションがあるとします。

      BEGIN DBMS_OUTPUT.GET_LINES(1, 100); END;
      BEGIN DBMS_OUTPUT.GET_LINES(5, 100); END;
      BEGIN DBMS_OUTPUT.GET_LINES(7, 100); END;
      

      前述の文では、データベースが問合せ全体を3回、解釈する必要がありますが、問合せの構造自体は変わっていません。データベースが解釈する際に、パラメータの引数を問合せに渡す方が効率的です。次に例を示します。

      BEGIN DBMS_OUTPUT.GET_LINES(?, ?); END;
      BEGIN DBMS_OUTPUT.GET_LINES(?, ?); END;
      BEGIN DBMS_OUTPUT.GET_LINES(?, ?); END;
      

      前述のSQL文を実行するときに、アプリケーションは、データベースに入力するリテラル・パラメータ値(1、100、5、100、7、100)を個別に指定します。

      「編集」を使用して新規のSQL問合せを手動で挿入する場合は、「パラメータ化」ボタンを使用すると、すべてのリテラルと指定したパラメータがパラメータ化されます。たとえば、次の文を挿入したとすると、

      BEGIN DBMS_OUTPUT.GET_LINES(5, :NUMLINES); END;
      

      次のようにパラメータ化されます。

      BEGIN DBMS_OUTPUT.GET_LINES(?, ?); END;
      

      特定の状況では、「パラメータ化」ボタンを使用したときに、不要なリテラルがパラメータ化されることがあります。たとえば、次のような文の場合です。

      SELECT 1 FROM EMPLOYEES
      

      次のようにパラメータ化されます。

      SELECT ? FROM EMPLOYEES
      

      前述の例で、1をパラメータ化したくない場合は、「元に戻す」を使用して、パラメータ化を手動で調整する必要があります。

      DBReplayファイル(.SQLファイル)をインポートする場合は、そのファイルの中ですでにパラメータ化されている文字列のみがパラメータ化されます。

    • 元に戻す: パラメータ化したSQL問合せを元のインポート対象の文に戻します。

    • すべて選択: インポート対象のすべてのSQL文を選択します。

    • すべての選択を解除: インポート対象のすべてのSQL文からチェック・マークを外します。

    • 自動的に行数カウント テストを追加する: 選択すると、行数カウント・テストが、スクリプトに追加した各SQL文に自動的に挿入されます。

    • 選択項目をパラメータ化: 選択したすべての文のリテラル・パラメータすべてに対してSQLバインドを作成します。

    • 選択項目を元に戻す: 選択したすべての文を、元のインポート対象のSQL文に戻します。

  14. 「終了」をクリックします。

データベース・キャプチャ・ファイルまたはSQLファイルのインポート・レコーダが、指定されている「パラメータ化」設定を使用してファイルを解釈し、OpenScriptスクリプトを生成します。スクリプトの生成にかかる時間は、キャプチャ・ファイルのサイズに応じて変ります。

生成されたスクリプトには、データベースとの接続、およびインポート・ウィザードで選択したSQL問合せの実行に必要なJavaコードが含まれます。このスクリプトでは、SQL文の実行に、OpenScriptのutilities.getSQLService()メソッドが使用されます。

3.2.7 Oracle Real User Experience Insight (RUEI)セッション・ログのインポート

RUEIが取得したユーザー・セッション・ログ・ファイルをインポートして、HTTPベースのOpenScript負荷テスト・スクリプトを生成できます。RUEIユーザー・セッション・ログは、バージョン6以上のRUEIを使用して生成する必要があります。

RUEIユーザー・セッション・ログからスクリプトを作成するには、次のようにします。

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

  2. 「負荷テスト (プロトコル自動化)」グループを開き、「Web/HTTP」のスクリプト・タイプを選択します。

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

  4. スクリプトを格納するリポジトリおよびワークスペースを選択します。

  5. スクリプト名を入力して「終了」をクリックします。新規のHTTPプロトコル・スクリプト・プロジェクトがスクリプト・ツリー内に作成されます。

  6. 「ツール」メニューから「Oracle Real User Experience Insight (RUEI) セッション ログのインポート」を選択します。

  7. RUEIユーザー・セッション・ログ(.tabファイル拡張子)のファイル・パスと名前を入力するか、「参照」をクリックしてファイルを選択します。

  8. 「スクリプトを相関する」および「ステップ グループを作成する」オプションを設定します。

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

RUEIセッション・ログのインポート・レコーダはログ・ファイルを解析し、指定された「スクリプトを相関する」および「ステップ グループを作成する」設定を使用してHTTPベースのOpenScriptスクリプトを生成します。スクリプト作成時間はログ・ファイルのサイズや、「スクリプトを相関する」および「ステップ グループを作成する」設定が設定されているかどうかによって異なります。一般的に、「スクリプトを相関する」および「ステップ グループを作成する」が設定されていると、スクリプト作成時間は増加します。

RUEIユーザー・セッション・ログには、次のファイルおよびフォルダがあります。

  • data.tabファイル: このファイルにはURL、ホストおよびポート、メソッド、ポストデータなどが含まれています。

  • version.txt: このファイルには、使用するOpenScript RUEIユーザー・セッション・ログ・インポータのバージョンを決定するエクスポート・バージョン番号が含まれています。

  • コンテンツ・フォルダ: このフォルダには、data.tabファイル内のエントリに対応するテキスト・コンテンツが含まれています。

RUEIからエクスポートされる必要なファイルを取得するには、URL接頭辞マスキングを"Complete logging"に設定する必要があります。Complete loggingはRUEIでデフォルトではオンになっていません。また、RUEIからエクスポートされたセッションは、コレクタのデータ保存ポリシー設定で指定されたFull Session Replay (FSR)設定よりも新しいセッションであることが必要です。そうでない場合、使用できるデータはごく一部かまったくない状態になります。URL接頭辞マスキングとコレクタのデータ保存ポリシー設定の詳細は、Oracle Real User Experience Insightユーザーズ・ガイドを参照してください。

3.2.8 スクリプト再生設定のエクスポート

プロパティ・ファイルにスクリプト再生設定をエクスポートできます。再生設定プロパティ・ファイルには、スクリプトに指定されているオプションと設定がすべて格納されます。-propertiesPath設定を使用すれば、プロパティ・ファイルを使用してスクリプトをコマンド・ラインから実行できます。-propertiesPath設定の使用の詳細は、付録A「コマンドライン・リファレンス」を参照してください。

スクリプト再生設定をエクスポートするには、次のようにします。

  1. OpenScriptでスクリプトを開きます。

  2. 「ツール」メニューの「再生設定のエクスポート」を選択します。

  3. ディレクトリの場所を選択し、ファイル名を指定します。

  4. 「保存」をクリックします。ファイル名はfilename.propertiesの値です。

3.3 スクリプトの変更

スクリプト・プロジェクトを作成したら、使用可能なメニュー・オプションを使用して、あるいはJavaコード・ビューで各自のコードを編集して、スクリプトをテスト目的に応じてカスタマイズできます。

3.3.1 スクリプトへのステップ・グループの追加

ステップ・グループは、複数の手順を単一のレポート・ステップにグループ化する手段を提供します。

スクリプトにステップ・グループを手動で追加するには、次のようにします。

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

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

  3. 「追加」サブ・メニューから「スクリプト」メニューを選択し、「ステップ・グループ」を選択します。

    このダイアログ・ボックスでは、スクリプト・ツリー内のステップ・グループ・ノードを指定または変更できます。

  4. ステップ・グループの名前を入力します。

    タイトル: ステップ・グループのタイトル・テキストを指定します。タイトル・テキストはスクリプト・ツリーに表示されます。

  5. ステップ・グループを追加する遅延時間を入力します。

    思考時間: ステップ・グループの思考時間遅延として使用する時間(単位: ミリ秒)を指定します。

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

詳細設定に基づいてスクリプトにステップ・グループを追加するには、次のようにします。

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

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

  3. 「OpenScript」ノードを開きます。

  4. 「記録」ノードを開きます。

  5. 「ステップグループ」ノードを選択します。

  6. ステップ・グループの詳細設定を指定し、「OK」をクリックします。

  7. 「スクリプト」メニューから「ステップグループ生成...」を選択します。ステップ・グループがスクリプト・ツリーに自動的に追加されます。

  8. Javaコード・ビューにおいて、ステップ・グループにはbeginStepおよびendStepの間で実行されるコードが構成されます。

    beginStep("Step Group 1", 10);
    {
            /**
             * Add code to be executed for the step group.
             */
           info("Step Group 1");
    }
    endStep();
    

3.3.2 スクリプトへの遅延の追加

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

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

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

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

  4. 「一般」ノードを開いて、「思考時間」を選択します。

    このダイアログ・ボックスでは、遅延時間を秒単位で指定または変更できます。

  5. 遅延時間として使用する有効な整数を秒単位で入力します。

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

  7. Javaコード・ビューで、think(time;) (timeは秒単位)文がスクリプト・コードに追加されます。

    think(10.0);
    

3.3.3 ログ・メッセージのスクリプトへの追加

スクリプトにログ・メッセージを追加するには、次のようにします。

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

  2. ログ・メッセージを追加するスクリプト・ノードを選択します。

  3. 「スクリプト」メニューを選択した後、「追加」サブメニューから「メッセージ」を選択します。

    このダイアログ・ボックスでは、スクリプト・ツリー内のログ・メッセージを指定または変更できます。

  4. メッセージ・テキストを入力します。

    メッセージ: ログ・メッセージのテキストを指定します。テキストはスクリプト再生でコンソール・ビューに表示されます。

  5. 「OK」をクリックします。スクリプト・ツリーに「ログメッセージ」ノードが追加されます。

  6. Javaコード・ビューで、スクリプト・コードにtype("log message")メソッドが追加されます。

    info("Message");
    warn("Message");
    fail("Message");
    

スクリプトが再生されると、コンソール・ビューにログ・メッセージ・テキストが表示されます。

3.3.4 For構文のスクリプトへの追加

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

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

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

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

  4. 「制御文」ノードを開いて、「For」を選択します。

    このダイアログ・ボックスでは、For構文のループ回数を指定または変更できます。

  5. ループ回数として使用する有効な整数を入力します。

    ループ回数: For構文をループする回数を指定します。

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

  7. Javaコード・ビューで、スクリプト・コードにfor (int i=0; i < loop count; i++)文が追加されます。

    for (int i=0; i < 10; i++)
    

3.3.5 スクリプトへの関数の追加

スクリプトに独自のカスタム関数を追加して、関数に渡す引数を指定できます。カスタム関数は現在のスクリプトか、現在のスクリプトのスクリプト・アセット・プロパティに追加されている別のスクリプトに存在する場合があります。

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

  1. スクリプト・プロジェクトを作成します。

  2. 完全なスクリプトを記録します。

  3. スクリプト・ツリーの「Run」ノードを選択します。

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

  5. 「一般」ノードを開いて、「関数」を選択します。

    このダイアログ・ボックスでは、複数の引数を使用してカスタム関数名を指定できます。

    名前: カスタム関数の名前を指定します。引数の名前およびデータ型を定義するには、「追加」をクリックします。

    説明: カスタム関数のユーザー定義の説明を指定します。

    引数: カスタム関数に定義された関数の引数をリストします。

    タイプ: カスタム関数に定義された引数のデータ型をリストします。

    説明: カスタム関数に定義された引数のユーザー定義の説明をリストします。

    追加: カスタム関数の新規引数を定義するためのダイアログ・ボックスを開きます。

    編集: 選択した引数を編集するためのダイアログ・ボックスを開きます。

    削除: 選択した引数をリストから削除します。

    上へ: 選択した引数をリストの1つ上の位置に移動します。

    下へ: 選択した引数をリストの1つ下の位置に移動します。

  6. 関数名を入力します。

  7. 関数の説明を入力します。

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

    このダイアログ・ボックスでは、関数にデータを渡すために使用するカスタム関数の引数を指定できます。

    名前: カスタム関数の引数名を指定します。

    タイプ: 「String」、「Integer」、「Double」、「Long」または「Boolean」からデータ型を選択します。

    説明: 引数の説明を指定します(説明にデータ型を含めて「変数の置換」リストで識別できるようにすることが可能です)。

  9. 引数名を入力します。

  10. 引数のデータ型を選択します。

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

  12. 「追加」をクリックしてさらに引数を追加するか、「OK」をクリックしてスクリプトに関数を追加します。function nameノードがスクリプト・ツリーに追加されます。

  13. Javaコード・ビューで、データ型が指定された引数が続くpublic void function name文が、スクリプト・コードに追加されます。

    /**
     * My custom Function
     * @param argString Description of argString
     * @param argInt Description of argInt
     * @param argDouble Description of argDouble
     * @param argLong Description of argLong
     * @param argBool Description of argBool
    */
    public void MyFunction(@Arg("argString") String argString,
          @Arg("argInt") int argInt,
          @Arg("argDouble") double argDouble,
          @Arg("argLong") long argLong,
          @Arg("argBool") boolean argBool)
       throws Exception {
    
  14. 関数に項目を追加します。ツリー・ビューのドラッグ/ドロップまたは切取り/貼付け機能を使用して、ツリー・ビュー項目を関数に移動できます。関数に変数項目を追加するには、スクリプトの「追加」オプションを使用します。また、コード・ビューを使用して、関数にカスタム・コードを追加することもできます。

関数に引数を渡すには、次のようにします。

スクリプト内の関数コール文が記述される場所よりも前に、カスタム関数の引数に値を渡すために使用する変数を定義します。

  1. 変数を追加するスクリプト・ノードを選択します。

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

  3. 「変数」ノードを開いて、「変数を設定」を選択します。

    このダイアログ・ボックスでは、スクリプトの変数を定義できます。

  4. 変数の名前と値を入力します。

    • 名前: 変数の名前を指定します。

    • : 変数に割り当てる値を指定します。

  5. 値を入力するか、「変数の置換」アイコンをクリックして、変数に割り当てる変数値を選択します。

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

  7. Javaコード・ビューで、各変数の変数名と値が続くgetVariables().set()文が、スクリプト・コードに追加されます。

    getVariables().set("MyString", "String");
    getVariables().set("MyInt", "1");
    getVariables().set("MyDouble", "12.34");
    getVariables().set("MyLong", "1234560");
    getVariables().set("MyBool", "True");
    

    次に、データバンク値に設定された変数の例を示します。

    getVariables().set("MyString", "{{db.customer.FirstName,String}}");
    
  8. スクリプト内の関数ノード(カスタム関数名)を選択します。

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

  10. ツリーを開き、追加する項目を選択します。たとえば、「一般」ノードの下の「メッセージ」、または「変数」ノードの下の「変数を設定」などです。

  11. 「変数の置換」アイコンをクリックして、カスタム変数または関数の引数を選択します。「変数の選択」ツリーには、定義済のすべての引数とともに、カスタム関数がリストされます。

  12. カスタム関数の引数を選択します。

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

  14. Javaコード・ビューで、各変数の変数名および値が続くメッセージ文(infowarnまたはfail)か、getVariables().set()文がスクリプト・コードに追加されます。

    public void MyFunction(@Arg("argString") String argString,
          @Arg("argInt") int argInt,
          @Arg("argDouble") double argDouble,
          @Arg("argLong") long argLong,
          @Arg("argBool") boolean argBool)
       throws Exception {
          info("{{arg.argString}}");
          getVariables().set("MyArgString", "{{arg.argString}}");
          getVariables().set("MyArgInt", "{{arg.argInt}}");
          getVariables().set("MyArgDouble", "{{arg.argDouble}}");
          getVariables().set("MyArgLong", "{{arg.argLong}}");
          getVariables().set("MyArgBool", "{{arg.argBool}}");
    }
    

スクリプトでカスタム関数をコールするには、次のようにします。

  1. 関数をコールするスクリプト・ツリー内のノードを選択します。

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

  3. スクリプト関数コール・ノードとカスタム関数が存在するサブノードを開きます。カスタム関数はローカル(現在開いている)スクリプトか、スクリプト・アセット・プロパティに追加されている別のスクリプトに存在する場合があります(他のスクリプトをスクリプト・アセット・プロパティに追加するには「スクリプト」メニューから「スクリプト プロパティ」を選択します)。

  4. 呼び出す関数を選択し、「OK」をクリックします。

    このダイアログ・ボックスでは、コールするカスタム関数を指定し、引数の値を指定できます。

  5. カスタム関数に渡す引数データを入力するか、「変数の置換」アイコンをクリックして、カスタム変数またはデータバンク変数を選択します。

    • 関数: カスタム関数の名前を選択します。このリストには、スクリプトに追加されたカスタム関数の名前が表示されます。

    • 引数: 選択した関数の各カスタム関数の引数用フィールドが表示されます。引数の値を入力するか、「変数の置換」アイコンをクリックして、カスタム変数またはデータバンク変数を選択します。

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

  7. Javaコード・ビューで、callFunction文またはgetScript().callFunction()文がスクリプト・コードに追加され、文字列データ型として関数名と引数が続きます。関数が同じスクリプト内にある場合はcallFunction文が追加されます。

    callFunction("MyFunction", "MyStringArg");
    

    文字列以外のデータ型を渡すには、{{VarName}}のように、定義済の変数名を二重中カッコで囲みます。

    callFunction("MyFunction", "{{MyString}}", "{{MyInt}}", "{{MyDouble}}", "{{MyLong}}", "{{MyBool}}");
    

    関数が子スクリプト(スクリプト・アセット・スクリプト)内にある場合は、getScript().callFunction()文が追加されます。

    getScript("myAlias").callFunction("MyFunction", "myString", "myInt", "myDouble", "myLong", "myBool"); 
    

3.3.6 スクリプト・アセットの追加

データバンク、汎用JARファイル、オブジェクト・ライブラリまたはその他のスクリプト(記録されたステップやカスタム関数を含む)などのアセットをスクリプトに追加できます。追加できるのはその時点で存在するアセットです。スクリプトを記録、またはデータバンクおよびオブジェクト・ライブラリを作成する場合は、「ファイル」メニューから「新規」を選択します。または「スクリプト プロパティ」の「追加」オプションを使用して、データバンクおよびオブジェクト・ライブラリを作成します。

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

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

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

  3. プロパティ・タイプ・リストでアセットを選択します。「アセット」ペインには次のオプションがあります。

    • アセット: スクリプトに追加されたアセットをツリー・ビューでタイプ別に一覧表示します。アセットはデータバンク、オブジェクト・ライブラリ、汎用JARファイルまたはその他のスクリプトである場合があります。

    • ファイル: 現在のスクリプトにアセットとして追加されたファイルを示します。ファイルを表示するには「アセット」列でツリー・ビューを開きます。

    • 追加: アセットとして追加するファイルを選択するためのファイル選択ダイアログ・ボックスを開きます。ファイルが含まれるフォルダをナビゲートするには、「マイ リポジトリ」ツリーを開きます。


      注意:

      Oracle Load Testingアプリケーションで実行予定のスクリプトはすべて、関連するアセットとともに、Oracle Load Testing Controllerによるアクセスが可能なリポジトリ/ワークスペース内に保存する必要があります。OpenScriptでリポジトリを新規作成する場合は、新規のリポジトリをOracle Load Testingで追加する必要もあります。

    • 編集: アセットとして追加するファイルを変更するためのファイル選択ダイアログ・ボックスを開きます。

    • 開く: 選択したアセット・ファイルを適切なエディタで開きます。

    • 削除: 選択したアセット・ファイルを「アセット」ツリーから削除します。このファイルはリポジトリ/ワークスペースにはまだ存在しています。

  4. 追加するアセットのタイプを選択して「追加」をクリックします。

  5. リポジトリから追加するアセットを選択します。

  6. 相対パス・オプションを設定します。「現在のスクリプトの相対パス」および「リポジトリの相対パス」オプションは、現在のスクリプトが指定のスクリプト・アセットを検索するときの方法を示します。アセットをリポジトリから選択した場合は、「リポジトリの相対パス」オプションを選択すると、[Repository: Default] Default!/WebTutorのようなリポジトリ・パスに基づいて、スクリプト・アセットが検索されます。「現在のスクリプトの相対パス」オプションを選択すると、../WebTutorのような相対パスに基づいてスクリプト・アセットが検索されます。スクリプトを移動または共有すると、スクリプト相対パスはリポジトリ相対パスよりも位置情報が崩れやすいため、「現在のスクリプトの相対パス」オプションを選択することはお薦めしません。

    スクリプト・アセットをチーム内または分散環境で使用する際は次のガイドラインに従ってください。

    • アセットを参照またはアセットを保存する際に絶対パスを使用しないでください。Oracle Load Testingでは絶対パスはサポートされていません。

    • OpenScript、Oracle Test Manager、Oracle Load Testingおよび全コマンドライン・エージェントではすべて、リポジトリの共有されている同じ名前およびパスを使用してください。

    • 別のリポジトリ内のアセットを相対パスで参照しないでください。

  7. 「OK」をクリックしてアセットをスクリプト・プロパティに追加します。

  8. スクリプト・アセットの追加が終了したら「OK」をクリックして、スクリプト・プロパティを閉じます。

スクリプト・アセット情報は、スクリプト・プロジェクト・ディレクトリにあるassets.xmlファイルに保存されます。

3.3.7 スクリプトから実行するスクリプトの追加

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

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

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

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

  4. 「一般」ノードを開いて、「スクリプト実行」を選択します。

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

    このダイアログ・ボックスでは、他のスクリプト内から実行するスクリプトを指定できます。

    スクリプト: 実行するOpenScriptスクリプトを指定します。

    新規: 実行するスクリプト・アセットを選択するためのスクリプト・プロパティを開きます。

    実行するスクリプトのセクション: 再生中に実行するスクリプト・セクションを指定します。

    • 初期化セクション: 選択すると、実行のため選択したスクリプトの初期化セクションのコードが、再生中に実行されます。選択を解除すると、初期化セクションのコードはスキップされます。

    • 実行セクション: 選択すると、実行のため選択したスクリプトの実行セクションのコードが、再生中に実行されます。選択を解除すると、実行セクションのコードはスキップされます。

    • 終了セクション: 選択すると、実行のため選択したスクリプトの終了セクションのコードが、再生中に実行されます。選択を解除すると、終了セクションのコードはスキップされます。

    反復: 実行するスクリプトの反復回数を指定します。

  6. 「スクリプト」フィールドの隣にある「新規」を使用してスクリプトを選択します。

  7. 次に実行するスクリプトを、スクリプト・プロパティの使用可能なスクリプト・アセットから選択します。「追加」ボタンを使用して、スクリプトをスクリプト・アセット・プロパティに追加します。

  8. 「実行するスクリプトのセクション」オプションを選択または選択解除します。

  9. 反復回数を設定します。

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

  11. Javaコード・ビューで、getScript().run();文がスクリプト・コードに次のように追加されます。

    getScript(alias=String).run(interation count = int, initialize = true|false, run = true|false, finish = true|false);
    

    getScript("Web1").run(1, true, true, true);
    

3.3.8 関数ライブラリの追加

関数ライブラリとして使用するスクリプトを作成できます。関数ライブラリには、別のスクリプトからのコールが可能なカスタム関数が収容されます。関数ライブラリを作成するときは、ライブラリ・スクリプトを汎用タイプのスクリプトとして作成するか、またはライブラリの関数をコールするスクリプトと同じタイプのスクリプト(Web、HTTP、Siebelなど)として作成する必要があります。

関数ライブラリを作成するには、次のようにします。

  1. スクリプト・プロジェクト(myScriptFunctionsなど)を新規作成します。

  2. カスタム関数に追加するスクリプト・ノード(Initialize、RunまたはFinish)を選択します。

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

  4. 「スクリプト関数」ノードと「ローカル スクリプト」ノードを開きます。

  5. [新規関数]を選択し、「OK」をクリックします。

  6. 関数の名称と説明を入力します。

  7. 引数を関数に追加するために、「追加」をクリックします。

    • 引数の名称を入力し、データ型を指定してから、説明を入力します。

    • 「OK」をクリックして、引数を追加します。

  8. 関数に追加する引数ごとにステップ7を繰り返します。

  9. 「OK」をクリックして、スクリプトに関数を追加します。

  10. カスタム・コードを関数に追加します。

    • スクリプト・レコーダを使用してステップを記録します。

    • Javaコード・ビューに切り替え、関数のコードを編集します。

  11. ステップ3からステップ10までを繰り返して、ライブラリ・スクリプトに他の関数を追加します。

  12. ライブラリ・スクリプトを保存します。

ライブラリ・スクリプトの関数をコールするには、次のようにします。

  1. スクリプト・プロジェクト(masterScriptなど)を新規作成します。

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

  3. 「スクリプト アセット」タイプ、「スクリプト」の順に選択します。

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

  5. カスタム関数のライブラリを選択し、「OK」をクリックします。

  6. 「OK」をクリックして、「スクリプト プロパティ」を閉じます。

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

  8. 「スクリプト関数」ノードと、「スクリプト」ノードの「scriptLibraryName」ノードを開きます。

  9. ライブラリ・スクリプトの関数名を選択し、「OK」をクリックします。

  10. 「関数コール」ダイアログ・ボックスが表示されたら、関数の引数を入力し、「OK」をクリックします。

    関数名が、スクリプト・ツリーに「scriptLibraryname.functionName(args, [...])」と表示されます。

    次に示すように、Javaコード・ビューで、文字列データ型として関数名と引数が続くcallFunction文が、スクリプト・コードに追加されます。

    getScript("scriptLibraryNmae").callFunction("functionName", "args", "[...]")
    
  11. マスター・スクリプトを保存し、再生してカスタム関数を実行します。関数に引数を渡す方法の詳細は、3.3.5項「スクリプトへの関数の追加」を参照してください。


注意:

マスター・スクリプトからコールされる最初の関数にLaunch Browserコマンドがない場合は、マスター・スクリプトの初期化セクションに追加するようにしてください。

3.3.9 スクリプトへの同期ポイントの追加

同期ポイントを使用すると、Oracle Load Testingで仮想ユーザーとして実行中の複数のスクリプトがアクションを同期し、テスト中のアプリケーションを操作できるようになります。現実の複数ユーザー環境が再現されるため、デッドロックのようなリソースの競合が発生することもあります。同期ポイントを指定した場合は、スクリプトを実行する複数の仮想ユーザーは、様々な要因(マシンの処理速度など)に応じた回数だけ同期ポイントに達します。

同期ポイントを使用する場合、各仮想ユーザーは、すべての仮想ユーザーが同期ポイントに達するまで待機します。各仮想ユーザーは同期ポイントに達すると、その旨をマスターに通知します。マスターは、すべての仮想ユーザーから通知を受けるまで待機し、それが終了すると、すべての仮想ユーザーにその同期ポイントの後の処理を継続するように指示を出します。

同期ポイントは、OpenScriptでスクリプト(親スクリプトまたは子スクリプト)を作成する際に、そのスクリプトに追加します。同期ポイントの実行パラメータは、Oracle Load Testingアプリケーションで定義します。

OpenScriptスクリプトに同期ポイントを追加するには、次のようにします。

  1. OpenScriptでスクリプトを作成するか、または開きます。

  2. 同期ポイントを追加するスクリプト・ノードを選択します。

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

  4. Synchronization Pointを選択し、「OK」をクリックします。

    このダイアログ・ボックスでは、同期ポイントに使用する名称を指定できます。

    名前: Oracle Load Testingアプリケーションの同期ポイントの参照に使用する名称を指定します。

  5. 同期ポイントの名称を入力し、「OK」をクリックします。

  6. Javaコード・ビューでは、syncPointWait("name");メソッドがスクリプト・コードに次のように追加されます。

    syncPointWait("MySyncPoint");
    
  7. OpenScriptのスクリプトを保存します。

  8. スクリプトをOracle Load Testingアプリケーションにロードし、負荷テストのシナリオに従って同期ポイントの実行パラメータを指定します。同期ポイントの実行パラメータの指定に関する詳細は、Oracle Load Testingのユーザーズ・ガイドを参照してください。

3.3.10 スクリプトへの設定変数の追加

変数の設定をスクリプトに追加するには、次のステップを実行します。

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

  2. 変数の設定を追加するスクリプト・ノードを選択します。

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

  4. 「変数」ノードを開いて、「変数を設定」を選択します。

    このダイアログ・ボックスでは、スクリプトの変数値を設定できます。

  5. 変数の名前と値を入力します。

    • 名前: 変数の名前を指定します。

    • : 変数に割り当てる値を指定します。

  6. 「OK」をクリックします。セット変数 = ノードがスクリプト・ツリーに追加されます。

  7. Javaコード・ビューでは、getVariables().set("variable name", "value");メソッドがスクリプト・コードに追加されます。

    getVariables().set("sVar_MyVar", "My_Value");
    

    Oracle変換変数の値({{}}構文で囲まれた変数値)で変数を設定する場合は、次のようにgetVariables().setとともにTransforms.transformメソッドを使用します(HTTPモジュールが必要)。

    http.solve("varTitle", "<TITLE>(.+)</TITLE>", "Page Title Error", false, Source.Html, 0);
    
    getVariables().set("sVar_MyVar", Transforms.transform("{{varTitle}}", getVariables()));
    

3.3.10.1 スコープ付き変数

Javaコードでvariablesメソッドを使用して、スコープ付きの変数の取得または設定を行うことができます。次に例を示します。

variables.set(String name, String Value, Variables.Scope.scope)
variables.get(String name, Variables.Scope.scope)

スクリプト変数は、個別のOracle Load Testing仮想ユーザーの範囲内にある、すべてのスクリプトおよび関数に対してグローバルです。

  • 仮想ユーザーごとに専用のスクリプト変数のマップを保有しています。

  • 仮想ユーザーは、別の仮想ユーザーのスクリプト変数に対する読込み/書込みができません。ただし、例外的に、子の仮想ユーザー(子スクリプトとしての仮想ユーザー)が、親の仮想ユーザー内にあるすべての変数にアクセスすることはできます。

  • 仮想ユーザーが実行するスクリプトおよび関数はどれも、その仮想ユーザーのすべての変数に対する読込み/書込みアクセスが可能です。

  • Functional Testingでは、スクリプトは通常、仮想ユーザーを1人だけ表します。スクリプト変数は通常、グローバル変数になります。

スコープには次の3つがあります。

  • Local: 現在のスクリプトが明示的にローカル変数として定義しているすべての変数。

  • Parent: 親(コール元)のスクリプトが自分自身のローカル変数として定義しているすべての変数。

  • Global: 明示的なスコープ内に定義されていないその他の変数。スコープの指定がないときには、これがデフォルトのスコープです。Globalスコープは最上位のVUserの親スコープ(最上位のスクリプト)に相当します。したがって、最上位のスクリプトは、まったく同じ2つのスコープ(GlobalとParent)を持っていることになります。

    スコープを使用して混乱を避けることができます。子スクリプトの作者がGlobalスコープまたはParentスコープ内の変数を変更する場合は、スクリプトの作者は明示的に変更する必要があります。子スクリプトの作者がローカル変数を変更する場合は、Localスコープを使用する必要があります。

    子スクリプトは、親スクリプトの変数全体を継承します。これは変数のコピーではなく、同一の変数(getParentVUSer().variables)を参照します。

次の例は、変数スコープの使用例です。

//local variable
variables.set("user", "rich", Variables.Scope.Local);

//global variable (same as set("myData", "globalData", Variables.Scope.Global);) 
variables.set("myData", "globalData"); 

//parent variable
variables.set("anotherData", "parentData", Variable.Scope.Parent);

getScript("Script2").run();

// "globalData" as parent and global scope for top-level script coincide.
variables.get("myData", Variables.Scope.Parent)

3.3.11 無変化変数の削除

変化しないスクリプト変数を選択して削除できます。無変化変数を削除すると、スクリプト再生時に無変化変数を評価する必要がないため、スクリプト再生のパフォーマンスを向上させることができます。スクリプトでは、記録時に取得された値が、変数ではなく固定値として使用されます。

スクリプトから無変化変数を削除するには:

  1. スクリプトを記録します。

  2. 記録時の値と再生時の値を比較するためにスクリプトを少なくとも1回再生し、どの変数が変化しないのかを特定します。

  3. 「スクリプト」から「無変化変数の削除」を選択します。

    このダイアログ・ボックスでは、スクリプトから削除する変数を指定できます。

    変数名: スクリプト変数名が表示されます。

    記録時の値: 記録中に設定された変数値が表示されます。

    再生時の値: 再生中に設定された変数値が表示されます。

    すべて選択: 表内のすべての変数を選択します。

    無変化変数を選択: 表内の無変化変数のみを選択します。

    すべて選択解除: 表内のすべての変数を選択解除します。

  4. 選択/選択解除のボタンを使用して、削除する変数を選択します。

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

3.3.12 URLのパラメータ化

スクリプト内のURLに使用する変数を作成できます。スクリプトのベースURLを変更する必要がある場合、URLをパラメータ化すると、新しいURLを使用するようにスクリプトを短時間で再ベースライン化できます。URLを変更する必要があるのは、1箇所のみです。

URLをパラメータ化するには、次のようにします。

  1. スクリプトを記録します。

  2. 「ツール」メニューから「URL パラメータ化」を選択します。

    このウィザードでは、スクリプトに含まれるURLに使用する変数名を作成できます。「URLの入力」パネルでは、パラメータ化するURLおよび変数名を指定できます。

    URL: パラメータ化するURLを指定します。ドロップダウン・セレクタを使用して、現在のスクリプトに記録されているURLから選択します。

    変数名: スクリプト変数として使用する名称を指定します。

  3. パラメータ化するURLを選択します。

  4. URLに使用する変数名を入力します。

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

    「変更の検証」パネルでは、スクリプト内の変更されるURLのインスタンスを検証し、選択できます。

    ツリー ビュー: URLが含まれるスクリプト・ノードが表示されます。

    すべて選択: ツリー内のすべてのURLノードを選択します。

    すべて選択解除: ツリー内のすべてのURLノードを選択解除します。

    オリジナル URL: スクリプト変数としてパラメータ化する前のURLの元の値が表示されます。

    新規URL: スクリプト変数としてパラメータ化した後のURLの値が表示されます。たとえば、URL http://myServer.comを変数名myServerVarとしてパラメータ化すると、新しいURLは、パラメータ化されたスクリプト変数{{myServerVar,http://myServer.com}}になります。

  6. ツリー・ビューでチェック・ボックスを選択または選択解除して、または選択/選択解除のボタンを使用して、スクリプト内のURLのインスタンスで変更するものを選択します。

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

  8. Javaコード・ビューで、getVariables().set("variable name", "value",scope);メソッドがinitialize()セクションのスクリプト・コードに追加されます。

    getVariables().set("myServerVar", "http://myServer.com", 
       Variables.Scope.GLOBAL);
    
  9. スクリプトの他のURLをパラメータ化するには、手順2~7を繰り返します。

3.3.13 スクリプト結果へのコメントの追加

スクリプト結果へコメントを追加するには、次のようにします。

  1. スクリプトを開くか、作成します。

  2. コード・ビュー・タブをクリックします。

  3. 次のコード例のいずれかを使用して、コメントまたは警告を追加します。

  • ステップ・グループを使用

  • beginStep("Any comment string", 0);
    {
    //The comment string appears in the Name column of the Results view.
    }
    endStep();
    
  • getStepResult().addCommentメソッドを使用

  • //The comment string appears in the Summary column of the Results view
    getStepResult().addComment("Any comment string");
    
  • getStepResult().addWarningメソッドを使用

  • //The warning string appears in the Summary column of the Results view. 
    //addWarning overides addcomment.
    getStepResult().addWarning("Any warning string");
    

3.3.14 スクリプトへのエラー・リカバリの追加

スクリプトにエラー・リカバリを追加するには:

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

  2. ログ・メッセージを追加するスクリプト・ノードを選択します。

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

  4. 「一般」ノードを開いて、「エラー・リカバリ・アクション」を選択します。

    例外: 例外エラーのタイプを選択します。リストはスクリプト・タイプによって異なります。

    アクション: エラー・リカバリのアクションを「失敗」、「警告」、「無視」、「エラー判定で継続」または「一時停止」から次のように選択します。

    • 失敗: エラーが失敗として報告され、スクリプトの実行が停止されます。

    • 警告: エラーが警告として報告され、スクリプトの実行が続行されます。

    • 無視: エラーが無視され、スクリプトの実行が続行されます。

    • エラー判定で継続: エラーが結果ログに報告され、スクリプトの実行が続行されます。

    • 一時停止: 再生を一時停止して、スクリプトの実行の続行か中断かユーザーの決定を待ちます。

  5. 「OK」をクリックします。スクリプト・ツリーに「ログメッセージ」ノードが追加されます。

  6. Javaコード・ビューで、setErrorRecovery(scriptType.constant, ErrorRecoveryAction.action);メソッドがスクリプト・コードに追加されます。

    setErrorRecovery(BasicErrorRecovery.ERR_VARIABLE_NOT_FOUND, ErrorRecoveryAction.Fail);
    

3.3.14.1 スクリプト・タイプ

次に、Javaコード文のscriptTypeに使用可能な値を示します。

BasicErrorRecovery (基本モジュール)

FormsErrorRecovery (EBS/Forms機能モジュール)

FTErrorRecovery (汎用機能モジュール)

HttpErrorRecovery (HTTPモジュール)

NcaErrorRecovery (EBS/Forms負荷モジュール)

UtilitiesErrorRecovery (汎用ユーティリティ)

WebErrorRecovery (Web機能モジュール)

3.3.14.2 定数

次に、Javaコード文のconstantに使用可能な値を示します。

BasicErrorRecovery (基本モジュール)

ERR_VARIABLE_NOT_FOUND
ERR_CREATE_VARIABLE_ERRORCODE
ERR_FILE_NOT_FOUND
ERR_SEGMENT_PARSER_ERROR
ERR_BINARY_DECODE
ERR_ENCRYPTION_SERVICE_NOT_INITIALIZED
ERR_GENERIC_ERROR_CODE

FormsErrorRecovery (EBS/Forms機能モジュール)

ERR_FORMS_FT_ERROR
STATUSBAR_TEST_ERROR

FTErrorRecovery (汎用機能モジュール)

ERR_FT_MATCH_ERROR
ERR_OBJECT_TEST_ERROR
ERR_TABLE_TEST_ERROR

HttpErrorRecovery (HTTPモジュール)

ERR_ZERO_LENGTH_DOWNLOAD
ERR_MATCH_ERROR
ERR_RESPONSE_TIME_ERROR
ERR_SOLVE_ERROR
ERR_HTML_PARSING_ERROR
ERR_INTERNET_INVALID_URL
ERR_INVALID_HTTP_RESPONSE_CODE
ERR_KEYSTORE_LOAD_ERROR

NcaErrorRecovery (EBS/Forms負荷モジュール)

CONNECT_ERROR
MESSAGE_IO_ERROR
CONTROL_INITIALIZE_ERROR

UtilitiesErrorRecovery (汎用ユーティリティ)

ERR_SQL_EXECUTE_ERROR
ERR_XML_PARSING_ERROR
ERR_CSV_LOADING_ERROR

WebErrorRecovery (Web機能モジュール)

ERR_RESPONSE_TIME_ERROR
ERR_WEBDOM_SOLVE_ERROR
ERR_WAIT_FOR_PAGE_TIMEOUT_ERROR

3.3.14.3 アクション

次に、Javaコード文のactionに使用可能な値を示します。

Fail
Ignore
Warn
ReportErrorAndContinue
Pause

3.3.15 スクリプト・アクションの検証

スクリプト・アクションを検証することで、スクリプト・アクションの結果を確認し、アクションの結果に基づいてスクリプトの動作を調整できます。

スクリプト・アクション検証を使用する基本プロセスは次のとおりです。

  1. 結果コードを検証するスクリプト・ノードの前にエラー・リカバリ・アクションを追加します。エラー・リカバリ・アクションはスクリプトの「追加」サブメニューから、またはJavaコード・ビューで追加できます。エラー・リカバリ・アクションを「警告」または「無視」に設定すると、エラー確認ブロックが必ず実行されます。これによって、スクリプト実行ではエラーが発生したコードが通過され、スクリプト・コード内の次の文まで続行されます。

  2. 結果コードを検証するスクリプト・ノードの後ろにエラー確認制御文を追加します。エラー確認制御文はスクリプトの「追加」サブメニューから、またはJavaコード・ビューで追加できます。if(hasLastError())ブロックは、結果コードを検証するスクリプト・ノードの後ろのスクリプト・コードに直接追加されます。

  3. Javaコード・ビューでカスタム・コードをif(hasLastError())ブロックに追加します。

  4. 結果値を返すための結果オブジェクト・メッセージを追加します。結果コード検証機能によって結果オブジェクトへアクセスできます。結果オブジェクトでは結果コード、サマリー、エラー・メッセージおよび所要時間情報が提供されます。

次の項で、手順について詳しく説明します。

3.3.15.1 エラー・リカバリ・アクションの追加

エラー・リカバリ・アクションを追加するには:

  1. 結果コードを検証するスクリプト・ノードの前にあるスクリプト・ノードを選択します。

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

  3. 「一般」ノードを開きます。

  4. 「エラー リカバリ アクション」を選択し、「OK」をクリックします。

  5. 例外タイプを選択します。詳細は、3.3.14項「スクリプトへのエラー・リカバリの追加」を参照してください。

  6. アクション・タイプを選択し、「OK」をクリックします。

  7. エラー確認条件をスクリプトに追加します。詳細は、3.3.15.2項「エラー確認制御文の追加」を参照してください。

3.3.15.2 エラー確認制御文の追加

エラー確認制御文は、ツリー・ビューを使用してスクリプトに追加できます。ただし、条件付きの動作はJavaコード・ビューで指定する必要があります。

エラー確認条件を追加するには:

  1. 結果コードを検証するスクリプト・ノードの後ろにあるスクリプト・ノードを選択します。

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

  3. 「制御文」ノードを開きます。

  4. 「エラー確認」を選択して「OK」をクリックします。if (hasLastError())ノードがスクリプト・ツリーに追加されます。

  5. 結果オブジェクトを追加するか、if (hasLastError())ブロックのカスタム・コードをJavaコード・ビューで追加します。詳細は、3.3.15.3項「結果オブジェクト・メッセージの追加」を参照してください。

3.3.15.3 結果オブジェクト・メッセージの追加

結果オブジェクトは結果値を返すために使用できます。

結果オブジェクト・メッセージを追加するには:

  1. スクリプト・ツリーでif (hasLastError())ノードを選択します。

  2. if (hasLastError())ノードを右クリックした後、「追加」サブメニューから「その他」を選択します。

  3. 「一般」ノードを開きます。

  4. メッセージを選択して「OK」をクリックします。

  5. 「メッセージ タイプ」として「情報」または「警告」を選択します。

  6. 「変数の置換」をクリックします。

  7. 「最後の結果」を開きます。

  8. 「すべてのアクション」または「アサーションと検証」を開きます。

  9. メッセージに追加する結果を選択し、「終了」をクリックします。

  10. 「OK」をクリックしてスクリプトにメッセージを追加します。

    Javaコード・ビューで、結果タイプが付加されたメッセージ・コードがif (hasLastError())ブロックに追加されます。

    info("{{result.summary}}");
    

    メッセージ文字列はJavaコード・ビューでカスタマイズできます。次に例を示します。

    info("Summary of last action: {{result.summary}}");
    
  11. 必要に応じて、メッセージがif (hasLastError())ブロックの子ノードとなるようにメッセージ・ノードをif (hasLastError())ノード内にドラッグします。次に例を示します。

    if (hasLastError()) {
        info("Summary of last action: {{result.summary}}");
    }
    

3.3.15.4 検証可能なアクション

結果を検証できる機能を持つのは特定のOpenScriptアクションのみです。一般的に、ツリー・ビューUIから追加できるアクションはすべて、検証とアサーションもすべて含めて、検証に対応しています。

通常、検証に対応していないのは次のタイプのアクションです。

  • コードのみで使用し、UIからは使用できないJavaメソッド

  • 非推奨メソッド

  • "Get"メソッド

  • Logger、VUDisplay、Settings、CountersなどのOpenScript内部コードと相互作用するメソッド

  • http.removeCookieなどの、例外をスローしないメソッド

3.3.16 複数のスクリプトの連鎖

単一のスクリプトから複数のスクリプトを実行し、スクリプトの再生を連鎖させることができます。

主な手順は次のとおりです。

  • ブラウザの詳細設定

  • スクリプトの記録

  • シェル・スクリプトの作成

3.3.16.1 ブラウザの詳細設定

ブラウザの詳細設定では、異なるスクリプトを記録する際に、新しいブラウザを起動するかどうかを指定します。複数のスクリプト間のナビゲーション順序が重要であるため、スクリプトが相互に連続している場合には、ブラウザの同じインスタンスがすべてのスクリプトを実行する必要があります。各スクリプトが自己完結型で、スクリプト間にナビゲーションがない場合には、それぞれのスクリプトに独自のブラウザを起動できるため、ブラウザの詳細設定をスキップできます。

  1. 「ビュー」メニューからプリファレンスを選択します。

  2. 「一般」カテゴリを開いて、「ブラウザ」を選択します。

  3. 「異なるスクリプトを記録する場合にいつも新しいブラウザを起動する」オプションの選択を解除します。

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

3.3.16.2 スクリプトの記録

チェーン再生のスクリプトを記録する際には、スクリプト間の開始ポイントと停止ポイントの計画が重要です。スクリプト間でセッション状態を維持する必要がある場合には特に重要です。すべてのスクリプトが同じタイプであることが必要です。

  1. Web機能テストのログイン・スクリプトなど、最初のスクリプトを作成して記録します。

  2. 記録を停止しますが、ブラウザは閉じません。

  3. スクリプトを保存します。

  4. 次のスクリプトを作成して記録します。このスクリプトのナビゲーションは、最初のスクリプトが停止したブラウザのポイントから開始する必要があります。

  5. 記録を停止してスクリプトを保存します。

  6. 連鎖する追加のスクリプトを作成して記録します。これらのスクリプトのナビゲーションは、前のスクリプトが停止したブラウザのポイントから開始する必要があります。

3.3.16.3 シェル・スクリプトの作成

前に記録されたスクリプトを順番に実行するには、シェル・スクリプトを使用します。

  1. シェル・スクリプトとして使用する新しいスクリプトを作成します。

  2. 最初のスクリプトを追加するスクリプト・ノードを選択します。InitializeまたはRunノードのいずれかになります。

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

  4. 「一般」ノードを開いて、「スクリプト実行」を選択します。

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

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

  7. 実行するスクリプトを、スクリプト・プロパティの使用可能なスクリプト・アセットから選択します。「追加」ボタンを使用して、スクリプトをスクリプト・アセット・プロパティに追加します。

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

  9. 実行するスクリプト・セクションと反復回数を選択またはクリアします。

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

  11. 次のスクリプトを追加するスクリプト・ノードを選択します。Initialize、RunまたはFinishノードのいずれかになります。

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

  13. 「一般」ノードを開いて、「スクリプト実行」を選択します。

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

  15. 「新規」をクリックします。

  16. 次に実行するスクリプトを、スクリプト・プロパティの使用可能なスクリプト・アセットから選択します。「追加」ボタンを使用して、スクリプトをスクリプト・アセット・プロパティに追加します。

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

  18. 実行するスクリプト・セクションと反復回数を選択またはクリアします。

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

  20. 実行する追加のスクリプトごとに、スクリプトの追加手順を繰り返します。

  21. シェル・スクリプトを保存して再生し、スクリプト・ナビゲーションが連動して正常に機能することを検証します。

  22. Javaコード・ビューでは、getScript().run()メソッドがスクリプト・コードに追加されます。

    getScript("Web1").run(1, true, true, true);
    getScript("Web2").run(1, true, true, true);
    

3.3.17 スクリプト内のノードの移動

スクリプト・ツリー・ビューのノードをクリックしてドラッグすると、スクリプト・ツリーの別の場所にノードを移動できます。たとえば、ステップ・グループ・ノードを実行セクションから初期化セクションに移動することや、ナビゲーション・ノードを移動することができます。

スクリプト・ツリーのスクリプト・ノードを移動するには、次のようにします。

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

  2. スクリプト・ビューの「ツリー・ビュー」タブで、移動するスクリプト・ノードを選択します。

  3. マウスをクリックしてドラッグし、スクリプト・ツリー内のノードを移動します。スクリプト・ツリーには、ノードの移動先であるスクリプト・ツリー内の場所を示すインジケータの線が表示されます。

  4. インジケータの線がスクリプト・ノードの移動先の場所に到達したら、マウス・ボタンを放します。

スクリプト・セクション間(「実行」と「初期化」間など)でステップ・グループを移動する場合は、ノードをセクション・ノードに移動する必要があります。

また、コード・ビューに切り替えて、手動でコード行を移動することもできます。

3.3.18 プログラムによるスクリプトの中断および再開

アプリケーション・プログラミング・インタフェース(API)には、プログラムでスクリプトを中断および再開するためのメソッドが組み込まれています。

abort()メソッドは、できるだけ早く仮想ユーザーを即時中断します。反復内の残りのアクションは、親スクリプトおよび関数を含め、完了しません。Finishセクションは実行されません。現在実行中のスクリプトは、仮想ユーザーが中断されたことを示す失敗結果を返します。

仮想ユーザーが中断された場合は、ユーザーの中断例外を捕捉してresume()を呼び出すとスクリプトを再開できます。

resume()メソッドを使用すると、呼出し元は、スクリプトの実行がその時点から正常に続行できるように、前に起動したabort()リクエストをリセットできます。呼出し元は、最初にabort()リクエストによってスローされるStopScriptRuntimeExceptionを捕捉し、次にresume()を呼び出す必要があります。

resume()メソッドは、abort()メソッドと連携して機能します。resume()を呼び出すと、前に呼び出されたabort()からのみリカバリされます。

次の例に、abort()メソッドとresume()メソッドの使用方法を示します。

//Example Use Case 1 - Abort a script at any point
info("Running a script...");
abort();
info("This line will not be run.");

//Example Use Case 2 - Abort a script and resume
try {
  info("Perform any steps inside a try-catch block...");
  abort();
  info("This line will not be run.");
}
catch (StopScriptRuntimeException e) {
   // optionally take any corrective action and optionally resume script
  resume();
}

//Example Use Case 3 - Abort Script after 5 Minutes and Execute the Finish Section
public void initialize() throws Exception {
  abortAfter(5*60); // Abort after 5 minutes
  try {
     // Insert script Initialize section here
     info("initializing resources");
  }
  catch (StopScriptRuntimeException e) {
     // ignore this and continue to run()
  }
}

public void run() throws Exception {
  try {
     // Insert script Run section here
     http.get(null, "http://myServer/longrunningtask?length=10min");
  }
  catch (StopScriptRuntimeException e) {
     // ignore the exception; OpenScript will run the finish()
  }
}

public void finish() throws Exception {
  resume();
  info("cleanup resources");
  // Insert real customer script Finish section here
}

//Example Use Case 4 - abort() after waiting for the specified amount of time
// Usage Example:
//abortAfter(5); to abort after 5 seconds
//abortAfter(5*60); to abort after 5 minutes
private void abortAfter(int seconds) {
  new Timer().schedule(new TimerTask() {
     public void run() {
       try {
          abort();
       }
       catch (StopScriptRuntimeException e) { /* ignore exception thrown */ }
     }
  }, seconds*1000);
}

3.4 テキスト・ファイルのエンコードの変更

国際文字が使用されているサイトを英語のOSに記録するには、デフォルトのキャラクタ・セットのエンコードを、必要なキャラクタ・セットがサポートされるキャラクタ・セットに変更する必要があります。

テキスト・ファイルのエンコードを変更するには、次のようにします。

  1. OpenScriptを起動し、「表示」メニューから「開発者パースペクティブ」を開きます。

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

  3. 「一般」ノードを開きます。

  4. 「ワークスペース」ノードを選択します。

  5. テキスト・ファイルのエンコード「その他」オプションを選択します。

  6. 必要なテキスト・ファイルのエンコード(日本語のWebサイトの場合はUTF-8など)を選択します。

  7. 完了したら「閉じる」をクリックします。

3.5 スクリプトのデバッグ

Eclipse IDEの機能を使用してスクリプトをデバッグします。デバッグ目的のため、スクリプトをデバッグするためのデバッグ・パースペクティブへの切替えは必ずしも必要ではありません。「ブレークポイント」、「デバッグ」および「式」などのビューを「テスター・パースペクティブ」に追加できます。ほとんどの場合、アウトライン、「変数」およびタスクの各ビューを使用する必要はありません。この項では基本的なスクリプトのデバッグ方法のヒントを説明します。

3.5.1 ビューのテスター・パースペクティブへの追加

デバッグ目的のためにビューをテスター・パースペクティブへ追加する場合があります。ビューの表示ウィンドウに移動するショートカット・キーを使用して、開くビューを選択します。

ビューの表示ウィンドウを開くには、次のようにします。

  1. [Shift]キーおよび[Alt]キーを押したまま、[Q]キーを押します([Shift]+[Alt]+[Q])。

  2. [Q]キーを再度押します。ビューの表示ウィンドウが開きます。

  3. 必要に応じて、デバッグ・ツリーを展開します。

  4. 開くビューを選択します。

    • 複数の隣接したビュー名を選択するには、[Shift]キーを押したままクリックします。

    • 複数の隣接していないビュー名を選択するには、[Ctrl]キーを押したままクリックします。

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

選択したビューがテスター・パースペクティブで開かれます。


注意:

開発者パースペクティブにいる場合は、「ウィンドウ」メニューからビューの表示を選択し、「その他」を選択することでビューを追加できます。

3.5.2 ブレークポイントのスクリプトへの追加

スクリプト・ツリー・ビューまたはJavaコード内にブレークポイントを追加することで、スクリプトの特定のコード行でスクリプト実行を停止できます。

スクリプト・ツリー・ビューへブレークポイントを追加するには、次のようにします。

  1. スクリプト・プロジェクトを作成します。

  2. スクリプトを記録します。

  3. スクリプト・ビューで「ツリー・ビュー」タブをクリックします。

  4. スクリプト・ツリーを展開し、ブレークポイントを追加するノードを選択します。

  5. 右クリックしてショートカット・メニューから「ブレークポイントの追加」を選択します。スクリプト・ノード・テキストの末尾に"[Breakpoint]"インジケータが表れます。

  6. スクリプトを再生します。

    スクリプトを再生すると、コード実行がブレークポイントで停止します。コード実行がブレークポイントに到達すると、「パースペクティブ切替えの確認」メッセージが表示されます。今後、スクリプト再生中にメッセージが表示されないようにする場合は、「決定を保存する」オプションを選択します。

  7. テスター・パースペクティブにとどまる場合は「いいえ」、デバッグ・パースペクティブに切り替える場合は「はい」をクリックします。次の「スクリプト」メニュー・オプションを使用してスクリプトをデバッグします。

    • ステップ: 現在選択されているノードを実行し、実行ポインタを次の兄弟ノードに移動します。選択されているノードに子ノードがある場合、実行ポインタは最初の子ノードに移動されます。このオプションはスクリプトの再生中のみアクティブになり、スクリプト・コードをステップスルーする間はスクリプトの実行は中断されます。

    • ステップ イン: 関数またはサブ・プロシージャにステップインします。このオプションはスクリプトの再生中のみアクティブになり、スクリプト・コードをステップスルーする間はスクリプトの実行は中断されます。実行ポインタは関数の先頭に移動されます。

    • 一時停止/再開: スクリプトの再生を一時停止および再開します。これらのオプションはスクリプトの再生中のみアクティブになります。

  8. 次の右クリック・ショートカット・メニュー・オプションを使用してスクリプトをデバッグします。

    • スキップ/スキップ解除: スキップまたはスキップ解除するコードを設定します。

    • ここまで再生: スクリプトの先頭から再生を開始して、スクリプト・ツリーの選択したノードで再生を停止します。

    • ここから再生: スクリプト・ツリーの選択したノードから再生を開始して、末尾または次のブレークポイントまで再生します。

    • ブレークポイントの追加/ブレークポイントの削除: スクリプト・ツリー・ビューでブレークポイントを追加または削除します。ブレークポイントが設定されたスクリプト・ツリー・ノードでは、スクリプト・ノード・テキストの末尾に"[Breakpoint]"インジケータが表れます。

    • 実行: スクリプト・ツリーの選択したノードに対してコードを実行します。このオプションはスクリプトの再生中のみアクティブで、スクリプトは一時停止します。「実行」ではエディタまたはツリー・ビューでハイライト表示されたコードがコンパイルされ、現在一時停止中のスレッドで実行されます。ただし、「実行」の使用時には、最初から実行中のプログラム・コードは変更されず、現在の実行ポインタも移動しません。「実行」を使用すると、デバッグ中にスクリプトへの変更をテストできます。変更を実際に適用する場合はスクリプトを保存します。保存すると、コードが再コンパイルされ、実行ポインタがrun()セクションの先頭に戻されます。

    • ステップ: 現在選択されているノードを実行し、実行ポインタを次の兄弟ノードに移動します。選択されているノードに子ノードがある場合、実行ポインタは最初の子ノードに移動されます。このオプションはスクリプトの再生中のみアクティブになり、スクリプト・コードをステップスルーする間はスクリプトの実行は中断されます。

    • ステップ イン: 関数またはサブ・プロシージャにステップインします。このオプションはスクリプトの再生中のみアクティブになり、スクリプト・コードをステップスルーする間はスクリプトの実行は中断されます。実行ポインタは関数の先頭に移動されます。

スクリプト・コードへブレークポイントを追加するには、次のようにします。

  1. スクリプト・プロジェクトを作成します。

  2. スクリプトを記録します。

  3. スクリプト・ビューで「Javaコード」タブをクリックします。

  4. ブレークポイントを追加するコード行の隣にある、コード・ビュー・フレームの一番右側の列をダブルクリックします。ブレークポイント・インジケータがフレーム内に丸印として表れます。ブレークポイントは必要な数だけ追加できます。

  5. スクリプトを再生します。

    スクリプトを再生すると、コード実行がブレークポイントで停止します。コード実行がブレークポイントに到達すると、「パースペクティブ切替えの確認」メッセージが表示されます。今後、スクリプト再生中にメッセージが表示されないようにする場合は、「決定を保存する」オプションを選択します。

  6. テスター・パースペクティブにとどまる場合は「いいえ」、デバッグ・パースペクティブに切り替える場合は「はい」をクリックします。次のキーボード・デバッグ機能を使用してデバッグ・モードでコードを実行します。

    • シングルステップ(F6): 次のコード行を実行します。

    • ステップ・イン(F5): メソッド/関数クラス・ファイルを開きます。


      注意:

      JREまたはEclipse IDEのソース・コードは製品に含まれていません。コードにステップインする際、ソース・コードが含まれないエディタが表示される可能性があります。この場合は、エディタを閉じてスクリプトの再生を再開します。ステップ・イン機能を使用して、スクリプトに追加している各自のカスタム関数にステップ・インできます。

    • 再開(F8): スクリプトの末尾または次のブレークポイントまでコード実行を再開します。

3.5.3 Java例外ブレークポイントの追加

Java例外ブレークポイントをブレークポイント・リストに追加することで、エラーが発生したときにスクリプトを一時停止できます。

Java例外ブレークポイントを追加するには、次のようにします。

  1. スクリプト・プロジェクトを作成します。

  2. スクリプトを記録します。

  3. ブレークポイント・ビューを開きます。

  4. ブレークポイント・ビュー・ツールバーでJava例外ブレークポイントの追加アイコンをクリックします。

  5. "AbstractScriptException"と入力して「OK」をクリックすると、この例外がブレークポイント・リストに追加されます。

  6. ブレークポイント・ビューでブレークポイントを右クリックして、ブレークポイント・プロパティを選択します。

  7. ブレークポイント・プロパティでこの例外のサブクラスで一時停止オプションを選択し、「OK」をクリックします。

スクリプト再生中に例外が発生した場合は、問題を修正してからスクリプト再生を続行できます。

3.5.4 デバッグ・モードでのスクリプト再生の一時停止および再開

ツリー・ビューまたはデバッグ・ビューを使用して、スクリプト再生を一時停止および再開できます。

ツリー・ビューで再生を一時停止および再開するには、次のようにします。

  1. スクリプト・プロジェクトを作成します。

  2. スクリプトを記録します。

  3. スクリプトを再生します。

  4. 再生を一時停止するには、「一時停止」ツールバー・ボタンをクリックします。

  5. 一時停止したスクリプトの再生を再開するには、「再開」ツールバー・ボタンをクリックします。

デバッグ・モードで再生を一時停止および再開するには、次のようにします。

  1. スクリプト・プロジェクトを作成します。

  2. スクリプトを記録します。

  3. スクリプト・ビューで「Javaコード」タブをクリックします。

  4. 必要に応じて、デバッグ・ビューをテスター・パースペクティブへ追加します。開発者パースペクティブが開かれている場合は、デバッグ・ビューもすでに開かれています。

  5. スクリプトを再生します。

  6. デバッグ・ビュー・ツリーで、Thread [Iterating Agent 1]スレッドを選択して「一時停止」ツールバー・ボタンをクリックします。Thread [Iterating Agent 1]スレッドは仮想ユーザーのスレッドです。その他は無視してください。

  7. デバッグ・ビュー・ツリーで、script.run()を選択して「再開」ツールバー・ボタンをクリックし、再生を開始します。

    スクリプトの特定のポイントから再開する場合は、現在の行の前のすべての行をコメント・アウトして、スクリプトを保存してから再開します。

また、行をコメント・アウトして再生を再開しなくても、スクリプトの一部を実行できます。

  1. run()セクションの先頭の行にブレークポイントを挿入します。

  2. スクリプトを再生します。再生がブレークポイントで一時停止したときは、どの行も実行または検査できます。

  3. 再生するコードの特定の行を選択し、「実行」を右クリックして選択します。スクリプトを保存しなくても、コードを変更して再実行できます。

  4. コード選択、右クリック、実行のプロセスを、スクリプトが目的どおりに動作するまで繰り返します。

  5. 再生を停止、またはデバッグ・ビューで「再開」ボタンを選択して、ブレークポイントから再生します。

3.5.5 スクリプト変数値の検査および変更

スクリプト変数値を検査または監視することでスクリプトをデバッグできます。スクリプトは実行中か、ブレークポイントで停止しています。

Javaローカル変数とスクリプト変数には違いがあります。Javaローカル変数は、String xまたはint iなどのJava標準構文を使用して宣言されます。スクリプト変数は、getVariables().set("someVariable", "123"またはhttp.solve()などのOpenScript APIメソッドを使用して設定されます。

スクリプト変数の値を検査するには、次のようにします。

  1. スクリプト・プロジェクトを作成します。

  2. スクリプトを記録します。

  3. スクリプトへブレークポイントを追加します。

  4. スクリプトを再生します。

  5. ブレークポイントで変数が含まれているスクリプト・コードをハイライト表示するか、次のコードを入力してコードをハイライト表示します。

    getVariables().get("someVariable")
    
  6. 右クリックして検査または監視を選択します。

    • 検査では変数を表示するペインが開かれます([Shift]+[Alt]+[I]で変数が式ビューに追加されます)。

    • 監視では変数が式ビューにコピーされます。

  7. スクリプト変数の値を変更するには、次のコードを入力します。

    getVariables().set("someVariable", "newValue")
    
  8. コードをハイライト表示します。

  9. 右クリックして「実行」を選択します。


    注意:

    また、個々のWebアクションをテストするには、スクリプトを停止し、テストするアクションのコードを選択してから、右クリックして「実行」を選択します(または[Ctrl]+[U]を押します)。

3.6 デバッグ・ログの有効化

OpenScriptには、Jakarta Log4jを使用したデバッグ・ログ機能があります。

デバッグ・ログを有効化するには、次のようにします。

  1. OpenScriptを終了します。

  2. C:¥OracleATS¥OpenScriptにあるファイルlog4j.xmlを開きます。

  3. ファイルの最後にある次のセクションを探します。

  4. <!-- ======================= -->
      <!-- Setup the Root category -->
      <!-- ======================= -->
    
            <!-- For production  -->
      <root>
       <priority value="WARN"/>
       <appender-ref ref="AGENTFILE" />
      </root>
    
            <!-- For debugging
      <root>
       <priority value="DEBUG"/>
       <appender-ref ref="AGENTFILE" />
       <appender-ref ref="CONSOLE" />
      </root>
            -->
    
  5. 最後のコメントのカッコを移動します。

  6. <!-- For production  -->
      <root>
       <priority value="WARN"/>
       <appender-ref ref="AGENTFILE" />
      </root>
    
            <!-- For debugging
      <root>
       <priority value="DEBUG"/>
       <appender-ref ref="AGENTFILE" />
       <appender-ref ref="CONSOLE" />
      </root>
            -->
    

    これを次のように変更します。

    <!-- For production
      <root>
       <priority value="WARN"/>
       <appender-ref ref="AGENTFILE" />
      </root>
            -->
    
            <!-- For debugging -->
      <root>
       <priority value="DEBUG"/>
       <appender-ref ref="AGENTFILE" />
       <appender-ref ref="CONSOLE" />
      </root>
    
  7. ファイルlog4j.xmlを保存し、OpenScriptを再起動します。

  8. スクリプトを実行します。

デバッグ・メッセージは、<installdir>\OpenScriptのファイルOpenScript.logに格納されます。

デバッグを無効化するには、最後のコメントのカッコを元の場所に戻します。