Eggplant Functionalスクリプトのデバッグ
あなたのEggplant Functionalスクリプトが文法的にも意味的にも正しいことは重要です。同様に、スクリプトがテスト対象システム(SUT)で必要なアクションを正確に駆動し、ユーザーストーリーを端から端まで自動化することが不可欠です。
Eggplant Functionalには、スクリプトのデバッグを支援するいくつかの機能が含まれています。ここでは、それらの機能と関連するデバッグ戦略について説明します。この記事はスクリプトコードのデバッグに焦点を当てています。画像デバッグに特化した情報はImage Update PanelとImage Capture Best Practicesで見つけることができます。
デバッグモード
スクリプトのデバッグに良いアプローチの一つは、各スクリプトステートメントがSUTにどのような影響を与えるかを分析することです。これは、スクリプトをデバッグモードで実行することで達成できます。デバッグモードでは、スクリプトは一つのステートメントを実行し、次のステートメントを実行するまで一時停止します。この方法により、特定のコード片がSUTに望ましい、または予期した効果を与えることを確認できます。
スクリプトをデバッグモードで実行するには、メインメニューからRun > Debug Script(またはRun > Debug Selection)を選択します:
注意:Debug Selectionは、Script Editorでコードの一部を選択している場合にのみ利用可能です。
また、Altキー(Windows)またはCommandキー(Mac OS X)を押しながらScript EditorツールバーのRun ScriptまたはRun Selectionをクリックすることで、スクリプトをデバッグモードで実行することもできます。Runウィンドウのオプションについての詳細情報はThe Run Windowで見つけることができます。
デバッグモードで実行する際は、Animate All設定(Run > Animation > Animate All)を使用することを推奨します。この設定は、スクリプトが一時停止している場合、実行中の行(または次に実行するコードの行)をRunウィンドウのScript Displayエリアで強調表示します。さらに、Tracing(Run > Tracing > Trace All)を使用すると、Eggplant Functionalがスクリプトが実行しようとしていることについての情報をRunウィンドウのLogエリアに"エコー"するようになります。これらの機能についての詳細はThe Run Windowで読むことができます。
アニメーションを有効にした状態でデバッグモードでスクリプトを開始すると、スクリプトの最初の行がRunウィンドウで強調表示され、まだ実行されていません:
アニメーションを使用すると、RunウィンドウのScript Displayで現在の行が強調表示されます。
スクリプトをステートメントごとに"ステップ"進めるには、強調表示されている行を実行したいたびにStep Intoボタンをクリックします。強調表示された行が実行され、次の行が強調表示され、スクリプトが再度一時停止します。
各ステップごとに、Viewerウィンドウ(またはテスト環境によっては実際のSUT)でSUTの効果を見ることができます。スクリプトの行を実行すると望ましくないまたは予期しない効果が生じた場合、バグを見つけたことになります!Edit ScriptボタンをクリックしてSuiteウィンドウに戻り、スクリプトを編集することができます。まだスクリプトを編集する準備ができていない場合は、エラーを観察したスクリプトのセクションに何が起こったかについてのコメントテキストを追加することを検討してください。
コードの行を実行すると失敗する場合(例えば、WaitFor
コマンドに時間パラメータを提供し なかった場合)、スクリプトの実行が停止し、Runウィンドウに失敗の理由が表示されます。この動作は、スクリプトを通常通り(つまり、デバッグモードではない)実行する場合と全く同じです。
スクリプトの最後の行が実行された後、Step Intoをもう一度クリックしてスクリプトの実行を完了します。
デバッグモードでスクリプトを実行中にRunウィンドウの他のボタンを使用する方法、例えばPause/Continue、Step Over、およびStep Outについては、The Run Window Toolbarを参照してください。
ダイナミックブレークポイント
Eggplant Functionalでは、スクリプトにダイナミックブレークポイントを設定できます。ブレークポイントが設定されると、その特定のポイントでスクリプトの実行が一時停止し、ユーザーが進むことを選択するまで待機します。
ダイナミックブレークポイントの使用は、スクリプトの一部がうまく機能しているが、より詳しく調査する必要があるトラブルスポットが残っている場合に特に有用です。そのような場合、適切に機能していると知っているセクションをデバッグモードで実行することは面倒に感じるかもしれません。したがって、まだ作業が必要だと特定したコードのセクションにダイナミックブレークポイントを設定することで、スクリプトの実行がそのポイントでのみ停止するようにすることができます。
大規模なスクリプト を扱い、モニタリングのためにSUTをスクリプトの途中状態にする必要がある場合も、ダイナミックブレークポイントの設定は有用です。スクリプトにブレークポイントを設定し、そのポイントで停止するまでスクリプトを実行します。これにより、SUTを調査し、期待される状態と一致するかどうかを確認することができます。
ダイナミックブレークポイントを設定するには、Runウィンドウのスクリプト表示エリアの左の列をクリックします。また、スクリプトエディタでスクリプトの左の列をクリックすることでブレークポイントを設定することもできます。ブレークポイントを示す黒い三角形が行の隣に表示されます。スクリプトが実行されると、設定されたブレークポイントの行を実行する前に一時停止します。
ダイナミックブレークポイントは、設定されたスクリプト行の左に黒い三角形として表示されます。
スクリプトには複数のブレークポイントを含めることができます。三角形をドラッグしてスクリプトの別の行にブレークポイントを移動させるか、または列からドラッグしてブレークポイントを削除することができます。ダイナミックブレークポイントはスクリプトを一時停止させるため、デバッグボタン(Step Into、Step Over、Step Out)を使用することができます。スクリプトをデバッグモードで実行を開 始した場合と同様です。
Ad Hoc Do BoxとVariable Watcher
Ad Hoc Do Box(AHDB)とVariable Watcherは、Runウィンドウのツールで、実行中のスクリプトとSUT環境の状態を確認したり、アクションを実行したりすることができます。AHDBはRunウィンドウの下部にあるテキストフィールドで、Variable Watcherはウィンドウの右側にあるパネルです:
Eggplant Functional Run ウィンドウには、Ad Hoc Doスクリプトのデバッグ用のボックス (AHDB) と変数ウォッチャー。
Variable Watcherを有効にするには、Run > Show Variables > Always