スクリプト実行速度の向上
Eggplant Functionalで長いSenseTalkスクリプトの作成や高度なスクリプティング技術を使用し始めると、テストの全体的な実行速度についてすぐに対処する必要があります。ランタイムをこことそこで数秒調整するだけでも、多数の複雑なスクリプトを実行するときには大きな違いを生むことができます。
SenseTalkには、スクリプト実行を高速化するための多くの方法が提供されています。ここで説明する方法はすべてスクリプトの実行を速くするのに役立つはずですが、どの方法が特定のテストシナリオに最も適しているかは自身で判断する必要があります。
SUTとのインタラクション時間の短縮
スクリプト実行時間を改善するために最も効果的なことの一つは、RemoteWorkInterval
グローバルプロパティを調整することです。このプロパティは、Eggplant Functionalが次のイベントをテスト対象システム(SUT)に送信するまでの間のイベント間の時間を制御します。RemoteWorkInterval
グローバルプロパティの値をスクリプトで下げることで、スクリプトはより早く実行されるはずです。
このグローバルプロパティのデフォルト値は0.7秒です。例えば、RemoteWorkIntervalを0.3秒に減らすには、次のSenseTalkコマンドをスクリプトに追加します:
set the remoteWorkInterval to .3
この調整により、SenseTalkスクリプトがイベントの間に一時停止する時間は0.3秒に短縮されます。
RemoteWorkIntervalグローバルプロパティの最適な値は、サーバーリソースやネットワーク速度などの環境要素に依存します。スクリプトをテストした後、環境に合わせてRemoteWorkIntervalの値をさらに調整する必要があるかも出てくるかもしれません。
スクリプト内でRemoteWorkIntervalグローバルプロパティを設定することで、ランタイム中にこのプロパティ値を増減させるのが容易になります。アクション間の遅延時間を異なるものにするスクリプトのセクションがある場合にこの方法を使用できます。さらに、タイミングの調整をスクリプト内に置くことで、スクリプトやスイートをチーム間で共有する場合にも調整が移植可能になります。
リモートワーク間隔の設定
ランタイムの調整がスクリプティングにとって重要でない場合は、Eggplant Functionalの設定からRemoteWorkIntervalグローバルプロパティを調整することができます:
- eggPlant > Preferencesを選択します。
- Runタブを選択し、次にSystemタブを選択します。
- Remote Work Intervalの好みの値を設定します。
設定でRemote Work Interval値を設定すると、それはローカルユーザー値のみとなり、他のユーザーと共有する可能性のあるスクリプトのタイミングには影響を与えません。ただし、すべての設定と同様に、この設定はこのユーザーアカウントのすべてのスクリプトとスイートに適用されます。
Remote Work Interval設定を変更した場合でも、スクリプト内でremoteWorkInterval
グローバルプロパティを調整することで、そのランタイムに影響を与えることができます。ランタイム中にグローバルプロパティを変更し ても、ユーザー設定値は変わりません。
画像検索時間の短縮
Eggplant Functionalは画像ベースのツールであることを意図していますが、画像の検索はスクリプトの実行時間の一部を占めることがあります。デフォルトでは、Eggplant Functionalは各画像を最大6回検索し、画像が見つからなかったと報告する前に全画面の更新とさらなる1回の検索を行います。このプロセスの各画像検索の間には、ImageSearchDelay
グローバルプロパティ値に等しい遅延があります。
ImageSearchDelay
の値を下げると、スキャンの頻度が上がり、スクリプトの実行が速くなります。このプロパティを調整するには、以下のSenseTalkコマンドをスクリプトに追加します:
Set the imageSearchDelay to 0.1
SenseTalkスクリプトはこの頻度でエリアを検索しようとしますが、エリアが大きいか、画像コレクション(複数の画像を検索するため時間がかかる可能性がある)を検索している場合は、各スキャンが完了するのを許すように頻度を自動的に調整します。
全体の検索時間は、ImageSearchCount
およびImageSearchTime
グローバルプロパティによっても影響を受けます。これらのプロパティが画像検索時間にどのように影響を与えるかについては、ImageSearchCount
、ImageSearchDelay
、およびImageSearchTime
を参照してください。
WaitForプロパティの使用
画像検索コマンドとWaitFor
プロパティ値を使用することで、スクリプトの実行を高速化できます。WaitFor
コマンドと同様に、WaitFor
プロパティは、Eggplant Functionalが特定の画像がSUTに表示されるのを待つ最大時間を設定します。以下の例に示すように、WaitFor
プロパティと短い時間値を使用することで、この待ち時間を短縮できます。
例:
Click (ImageName:"Done_button", waitFor: 2) // 画像がSUTに表示されるのを最大2秒間待つ
put "The test is complete."
画像が表示されるとすぐに、スクリプトは次のコマンドを実行します。WaitFor
の時間が経過するのを待つことなく実行を続行します
あなたのスクリプトの特定のポイントで、画像がすでに存在していること、または存在しないことを知っている場合、長い検索を待つ必要はありません。スクリプトの実行時間を短縮するために、WaitFor
時間をゼロ値に設定します。これは、Eggplant Functionalに画像を一度だけスキャンするように指示します(デフォルトは7回)。このテクニックは、以下の例に示すように、繰り返しループや他の繰り返し方法の中で特に役立ちます。
例:
repeat 1 minute
If imagefound (imageName:"Notification", waitFor: 0) then
Logwarning "警告はまだ存在します。"
wait 2
else
Log "警告は消えました。"
Exit Repeat
End If
end repeat