Skip to main content
Skip table of contents

schedule (JA)


ワークアイテム

内容

1.概要

スケジューリングはv4.0で提供された新機能です。これにより、単一のロボットプロセス内で実行される1つ以上のテストスクリプトのシーケンスを定義するワークアイテム(旧称「スケジュール」)を作成できます。主な機能:

  • スクリプトの順次および並列実行。順次実行されるスクリプトは、前のスクリプトの結果に制約される場合があります。たとえば、「スクリプト A が PASS 結果で終了した後にのみスクリプト B を実行する」 などです。

  • 実行スケジューリング。ワークアイテムは、即時開始、遅延開始、指定日開始、または繰り返し/定期的な実行(cron スケジューリング)を指定する開始時間制約を適用できます。

  • 高レベルのレポート作成。ワークアイテムは、ほとんどの Web ブラウザで表示可能なグラフィカルなレポートを生成します。

  • スクリプトのような簡単な管理。ワークアイテムは、ロボットのGUIから、-r CLIオプションを通じて、またはJava APIから、個々のテストスクリプトと同様の方法で開始および管理できます。

2.ワークアイテムの作成

ワークアイテム は、プロジェクトの schedules/ フォルダに XML ファイルとして物理的に保存されます。テストスクリプトは相対ファイルパスで参照されるため、プロジェクト全体を移動または名前変更しても機能します。

2.1 空のワークアイテムの作成

テストスイートは、ワークアイテムエディタツールを通じて簡単に作成および管理できます。ワークアイテムを作成するには、次のいずれかを実行します。

  • プロジェクトビューワークアイテム ノードを右クリックし、コンテキストメニューから 「作成」 ワークアイテム ..」 を選択します。

  • ワークアイテム ツールバーボタンをクリックします。

  • メインメニューで スクリプト->ワークアイテム を選択します。

image-20250512-153706.png

設定の開始」 とサブタイトルが付けられた青い長方形は、最上位のワークアイテムオブジェクトを表しています。下部のタブ付きペインからワークアイテム属性にアクセスできます:

プロパティタブには「レポート詳細」セクションが含まれ、ワークアイテムレポートの作成方法を設定します:

  •  「 レポート保存先」ドロップダウンは、デフォルトでプロジェクトレポート場所配下の固有フォルダにレポートを保存するよう設定されています。これは、レポートが結果ノードのプロジェクトビュー下に表示されるため、推奨される設定です。他のドロップダウンオプションでは、レポートファイルの保存先をカスタマイズできます。 

  •  「カスタムXSLを使用」 フィールドでは、レポートを外部XSLファイルにリンクできます。レポート自体は、拡張スタイルシート言語XSL)ファイルにリンクするXMLファイルであり、これによりXSLT対応のウェブブラウザで表示が可能になります。XSLファイルをカスタマイズしてレポートの外観を変更し、このオプションを通じてリンクさせることができます。

スケジューリングタブでは、「開始タイプ」 プロパティを設定できます。これは、ワークアイテムの起動方法を定義します(起動オプションについては、ワークアイテムの実行を参照してください)。:

  • 起動直後 - 遅延なく直ちに起動します。

  • 指定の遅延後 - 指定のタイムアウト後に開始します。

  • 定期スケジュール (cron) - 設定された間隔で繰り返し実行します。たとえば、「毎週月曜日の午後 10 時にスクリプトを実行する」 などのスケジュール設定に使用できます。このモードでは、タスクの実行後もワークアイテムは停止せず、停止されるか、ロボットプロセスが終了するまで実行を続けます。

  • 指定した日付で - 指定した日付と時刻に開始します。

レポートの詳細セクションでは、ワークアイテムレポートの作成方法を設定できます:

  • 要約レポートを作成する」フィールドでレポートの有効/無効を設定します。レポートはリンクされたXSLにより、XSLT対応のウェブブラウザで表示可能なXMLファイルです。オンラインの作業項目レポートの例はこちらです。 

  • 「 レポートを保存する場所」 ドロップダウンは、デフォルトではプロジェクトレポートの場所の下にある一意のフォルダにレポートを保存するように設定されています。これは、レポートが テスト結果 ノードのプロジェクトビューに表示されるため、推奨される設定です。  他のドロップダウンオプションでは、レポートファイルの保存先をカスタマイズできます。
    このフィールドは、バージョン 4.1.4 以降、複数のレポートに対応しています。オプションが「カスタムファイル」に設定されている場合、セミコロン(;)で区切られたフォルダまたはXMLファイルを受け入れる新しいフィールドが表示されます。フォルダが指定されている場合、ワークアイテムはレポートを <folder>/summary.xml に保存します。

  • 「 カスタム XSL を使用」 フィールドを使用すると、レポートを外部 XSL ファイルにリンクすることができます。レポート自体は、拡張スタイルシート言語 (XSL) ファイルにリンクする XML ファイルであり、XSLT 対応の Web ブラウザで表示することができます。XSLファイルをカスタマイズしてレポートの外観を変更し、このオプションを通じてリンクできます。

  • 「 実行 ワークアイテム" オプションは、ワークアイテムを実行する回数を指定します。デフォルト値は 1 (1 回実行) です。

入力パラメータタブでは、ワークアイテムの実行に必要なオプションのパラメータを定義します。これらは、変数の形でワークアイテムスクリプトに公開されます(基本事項については変数のドキュメント、およびVarそしてVargコマンドを参照してください)。

  • ワークアイテムが GUI から手動で起動された場合、パラメータの入力を求めるポップアップウィンドウが表示されます。

  • 無人自動化(-r/-runCLIオプションなど)の場合、-v/-variableそして-variable-sessionオプションを使用してパラメータを挿入することができます。

出力パラメータタブでは、オプションの出力パラメータ、つまりT-Plan RAP)などの外部プロセスに公開される、ワークアイテムスクリプトによって作成される変数)を定義します。

2.2 ワークアイテムにスクリプトを追加する

ワークアイテムに最初のスクリプトを追加するには、「 開始設定"最上位オブジェクト(長方形)を選択(クリック)し、次のいずれかを実行します:

  • オブジェクトを右クリックし、"スクリプトの追加"メニュー項目を選択します

  • ワークアイテムエディタツールバーの アイコンをクリック

  • プロジェクトビューをクリックし、スクリプトブランチからスクリプトをドラッグし、オブジェクトまたはワークアイテムビュー内の任意の場所にドロップします。

  • 開いたスクリプト エディタのドラッグ タブ。

スクリプトは、スクリプトファイル名をタイトルとする新しいボックスとしてビューに表示されます。オプションで表示名を指定することもできます。さらにスクリプトを追加するには:

  • 上記の手順を使用して、トップレベルオブジェクトに他のスクリプト呼び出しを追加します。そのようなスクリプトは 並行して 起動されます。

  • スクリプトに 依存する (後続し、完了を待つ) スクリプトを追加するには、スクリプトボックスをクリックし、上記で説明した 3 つのアクションのいずれかを実行します。

例えば、携帯電話アプリケーションの自動化を考えてみましょう。これを自動化するための 2 つのスクリプト、iOS 用 (iOS.tpr) と Android 用 (Android.tpr) があります。まずiOS 6デバイスで実行し、成功したらiOS 7でも再実行する計画です。Androidでの自動化は並行して開始されます。最初にSamsung S2デバイスで実行し、成功したらSamsung S3で再実行します。ワークアイテムは以下のようになります:

image-20250512-153752.png

最初のスクリプト("task")をワークアイテムに追加するには、" 開始設定"最上位オブジェクト(長方形)を選択(クリック)し、以下のいずれかを実行します:

  • オブジェクトを右クリックし、" スクリプトの追加」 メニュー項目を選択します

  • ワークアイテムエディタツールバーのアイコンをクリックします

  • テストスクリプトを、テストスクリプトブランチのプロジェクトビューからドラッグし、ワークアイテムオブジェクトまたはワークアイテムビュー内の任意の場所にドロップします。

タスクは、スクリプトファイル名をタイトルとする新しいボックスとしてビューに表示されます。任意で表示名を与えることもできます。さらにスクリプトを追加するには:

  • 上記の手順を使用して、最上位オブジェクトに他のタスクを追加します。そのようなタスクは並列で開始されます。並列実行には、ワークアイテムの実行の章で説明されている制限事項が適用されます。

  • 依存する タスク(後続し、完了を待つ)を追加するには、タスクボックスをクリックし、ツールバーボタンまたは右クリックポップアップメニューを使用します。

タスクのプロパティは下部のエディタで編集できます:

  • タスクの名前は表示名を割り当てます。名前が指定されない場合、スクリプトファイル名がデフォルトで使用されます。

  • CLIオプションによりタスク環境を変更できます:

    • c/-connectオプション(オプションのp/-passwordと併用可)により、スクリプトを実行するテスト環境(サーバーまたはデバイス)を指定できます。たとえば、以下のスクリーンショットは、Android Over ADB接続で接続されたシリアル番号 A123456 の Android デバイスでスクリプトを開始するよう Robot に指示しています。

    • v/-variableは、指定したスクリプト変数を固定値に設定します。これにより、実行固有の値をスクリプトに渡すことができます。このオプションは、複数の変数を設定するために複数回指定することができます。

    • その他のCLIオプションn/--nodisplayo/-optionなどのその他の適用可能な CLI オプションは、ロボットスタートコマンドのレベルでのみ受け付けられます。それらは、ワークアイテム内のすべてのスクリプトに適用されます。ワークアイテムの実行の詳細については、ワークアイテムの実行の章を参照してください。

  • 「開始依存関係タイプ」 ラジオボタンは、タスクが開始されるタイミングを制御します。4つのオプションがあります:

    1. 即時開始」オプションは、ワークアイテムが開始された直後にタスクを開始します。この依存関係タイプを持つタスクが2つ以上ある場合、ワークアイテムは以下のように実行します:

      • ロボットプロセスがn/-nodisplayオプション付きでCLIモードで実行され、かつユーザーライセンスが複数プロセスを許可している場合、タスクは並列で開始されます。接続競合に注意してください。つまり、2つのタスクが同一SUTに接続しないようにしてください。

      • ロボットプロセスがGUIモードで実行される場合、またはライセンス制限がある場合、タスクは自然な順序(上から下へ)で順次実行されます。ます。

    2. 「...スクリプト終了後に開始」 は、選択したタスクが終了した後、結果(成功または失敗)にかかわらず タスクを開始します。

    3. 「... スクリプトが成功した後に開始」 は、選択したタスクが 成功 結果で終了した場合にのみ、タスクを開始します (終了コード0を返す)。終了コードの詳細については、Exitコマンドを参照してください。

    4. 「...スクリプトが失敗した後に開始」 は、選択したタスクが 失敗 結果(終了コードが 0 以外)で終了した後にのみ、タスクを開始します。

例えば、携帯電話アプリケーションのテストを考えてみましょう。iOS (iOS.tpr) と Android (Android.tpr) でそれをテストするための 2 つのテストスクリプトがあります 。まずiOS 13端末で実行し、合格したらiOS 14でも再テストする計画です。Androidでのテストは並行して開始され、最初にAndroid 10端末で実施し、合格したらAndroid 11で再テストします。

3.ワークアイテムの実行

ワークアイテムは、一般的に個々のテストスクリプトと同じように扱われます。それらは 3 つの方法で開始することができます:

3.1 マニュアル実行

GUIモードでワークアイテムを開始するには、ツールバーの

実行ボタンを選択するか、ワークアイテムエディタツールでワークアイテムを開いた状態で、対応するスクリプト->実行メニュー項目を選択します。実行中は、

ストップそして

ポーズボタンで停止/一時停止できます。GUI 実行の詳細については、スクリプトエディタートピックを参照してください。

GUIでワークアイテムとテストスクリプトの両方が開かれている場合、実行ボタンは常にワークアイテムを優先します。テストスクリプトのみを実行するには、スクリプトエディタを右クリックし、コンテキストメニューからスクリプトの実行を選択してください。


GUI はテストスクリプトを並行して実行する機能がないため、常に順次(1 つずつ)実行します。

並列実行にはコマンドラインインタフェースまたはJava API実行モードはn/--ノードディスプレイオプションを組み合わせて使用してください。

3.2 CLIの実行

テストスクリプトと同様に、テストスイート XML ファイルも r/--run CLI オプションを通じて Robot に渡すことができます。これにより Robot が起動し、ワークアイテムを実行して終了します。2つのモードがあります:

  • GUIモード(デフォルト)はRobotのGUIを開き、ワークアイテムを読み込み、実行して終了します。並列スクリプトは順次実行されます。開始コマンド:

<Robot_start_command> -r <workitem_XML_file_path>。

  • CLIモードn/-nodisplayオプションで起動されます。本番環境でのデプロイメントに推奨されます。GUIを開かないため、メモリ要件が大幅に低く、高速です。telnetssh経由でリモートから開始される実行にも適しています。ワークアイテムに並列スクリプトが含まれる場合、それらは並列で起動されます。コマンド:

<Robot_start_command> -n -r <workitem_XML_file_path> 

プロセス終了コード

  • バージョン 4.4.2 までは、ワークアイテムは、タスクの失敗の有無にかかわらず、正常に完了した場合に 0 (PASS) の終了コードを基盤となる OS に返します。0 以外の終了コードは、予期しないエラーやクラッシュのために予約されています。

  • バージョン 4.4.3 以降、ワークアイテムは、すべてのタスクが合格した場合に 0 を、または 最初に失敗したタスクの終了コード を返します。これにより、継続的インテグレーションなどの外部フレームワークから結果を検出することが可能になります。

3.3 Java APIによる実行

ava API を使用すると、サードパーティ製 Java アプリケーションからワークアイテムを実行できます。この方法は、Robot 駆動の自動化をカスタムフレームワークと統合するのに適しています。ワークアイテムは、main()メソッドから実行されるJavaテストスクリプトと同様に扱われます。自動化実行可能オブジェクトは、createAutomatedRunnable(String, String[], PrintStream, boolean)メソッドを通じて作成できます。この際、ワークアイテムファイルのパスは引数内の -r/--run オプションを通じて渡されます:

public static void main(String args[]) {
ApplicationSupport robot = new ApplicationSupport();
AutomatedRunnable t = robot.createAutomatedRunnable("Example" , new String[] {"-r", "<path_to_workitem_XML>"}, System.out, true);
new Thread(t).start();
}

あるいは既存のワークアイテムインスタンス用の実行可能オブジェクトを作成するcreateAutomatedRunnable(スケジュール, 文字列, 文字列[], PrintStream, boolean)メソッドも利用できます。com.tplan.robot.scheduler.Schedule クラスはワークアイテムを表します。

public static void main(String args[]) throws ParserConfigurationException, SAXException, IOException {.
ApplicationSupport robot = new ApplicationSupport();
com.tplan.robot.scheduler.Schedule schedule = new com.tplan.robot.scheduler.Schedule();
schedule.read(newjava.io.File("<path_to_workitem_XML>"));
AutomatedRunnable t = robot.createAutomatedRunnable(schedule, "Example" , new String[] {}, System.out, true);
new Thread(t).start();
}

どちらのアプローチも、入力引数のリストに -n または --nodisplay を追加することで、CLI実行モードを強制的に適用できます: 

AutomatedRunnable t = robot.createAutomatedRunnable("Example" , new String[] {"-n", "-r", "<path_to_workitem_XML>"}, System.out, true);


JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.