Skip to main content
Skip table of contents

Timer

3.3.7 Timer

説明

Timer - タイマーとタイマーグループを管理します。タイマーを使用すると、コマンド、コマンドのブロック、またはスクリプトの経過時間を測定できます。

タイマーの典型的な用途は、自動化されたタスクやスクリプトコードの実行時間を測定することです。そのためには、タイマーを作成し、タスク開始前に開始し、タスク終了時に停止する必要があります。タイマーは通常、 時間データを含むテスト結果をXMLファイルに保存するレポート・コマンドと組み合わせて使用​​されます 。

JS
Report perftesting.xml

Timer t1 start desc="My task #1 duration"
<タスクコード>
Timer t1 stop

生成されたXMLファイルをWebブラウザで表示すると、スクリプトタイマーの概要が単純な表形式で表示されます。例えば、上記のスクリプトは次のようなものを作成します。:

Table of timers

番号

タイマー名

説明

価値

t1

私のタスク#1の所要時間

25.009秒 (25009ms)

XML結果ファイルは、参照データのソースとしても再利用できます。典型的なシナリオでは、上記のスクリプトを実行すると、最適化されていないアプリケーションに対して記録されたベースタイマーデータを含むXMLファイルが得られます。その後の自動実行でパフォーマンスの改善を確認するには、スクリプトを次のように変更します。:

JS
Report perftesting2.xml

Timer load="perftesting.xml"
Timer t1 start desc="My task #1 duration"
<タスクコード>
Timer t1 stop

Timer load "コマンドは、入力XMLファイルを解析し、スクリプトで定義されたタイマーの参照データを記録します(照合はタイマー名に基づいて行われます)。参照値は、refvalueパラメータを使用して定義することもできます。これにより、MS Excelシート(エクセルを参照)、プレーンテキストファイル、またはCSVファイル(ファイルを参照)など、別のソースから参照データを読み込むことができます。参照データが定義されると、生成されるXMLには、実際のタイマーと参照値の比較が次のように表示されます。

Table of timers

番号

タイマー名

説明

価値

参考値

変更

t1

私のタスク#1の所要時間

24.984秒 (24984ms)

25.009秒 (25009ms)

0.1%

タイマーとタイマーグループの重要な機能:

  • タイマーまたはタイマーグループを作成するための明示的な「create」コマンドはありません。各オブジェクトは、 最初に指定されたときに自動的に作成されます  。

  • タイマー名とタイマーグループ名はケースセンシティブ.例えば、"T1 "と "t1 "は異なる名前です。

  • このコマンドは、 単一のタイマー/グループ名 、または コンマ区切りの タイマー/グループのリストを受け入れます。したがって、オブジェクト名には コンマを含めることはできません

  • すべてのタイマーとタイマーグループも常にグローバルそして、作成された場所(本体、プロシージャ、別のスクリプト...)に関係なく、作成された瞬間からスクリプトの実行終了まで存在します。

  • タイマーは任意の順序で開始、停止、再開できます。タイマーを再開しても値はリセットされず、累積値として扱われます。タイマー値をリセットするには、コマンドに「value =0 」パラメータを指定して呼び出してください。

  •  スクリプトが終了すると、実行中のすべてのタイマーが 自動的に停止されます。

  • GUI モードでスクリプトを実行するとパフォーマンスのオーバーヘッドが追加されるため (通常、GUI コンポーネントのレンダリングに費やされる測定コマンドごとに数ミリ秒)、精度やタイマー データを向上させるためにライブ スクリプトをCLIモードで実行することをお勧めします 。

各タイマーは、ミリ秒単位の時間値を "TIMER<timerName>"変数の形式でスクリプトに公開します。上記の例では、TIMER_t1変数があり、スクリプトは 「{_TIMER_t1}」のような変数呼び出しを通じて現在のタイマー値 を取得できます。呼び出された変数が予約語「_TIMER」で始まり、その後に続く名前が既存のタイマー名と一致しない場合は、-1を返します。この値はタイマーの存在を確認するために使用できます。

タイマー変数は Var または Eval コマンドで変更できますが  、値は内部データ構造に保存されるため、タイマー自体には影響しません。変数は内部値の読み取り専用コピーに過ぎません。タイマーを特定の値に設定するには、  value パラメータを使用します。
実行中のタイマーの値を設定するとタイマーは停止し、指定した値から再開するには、コマンドに「start」アクションを含める必要があることに注意してください。

例えばt1タイマーはゼロからではなく、1秒(1000ミリ秒)から開始するには、次のようにします。:

JS
Timer t1 start desc="My task duration" value="1000"

別の例は、タイマーt1 の値に  1 秒を加えた新しいタイマー t2を作成する方法を示しています。

JS
Timer t2 value="{_TIMER_t1}+1000"

 パラメータはタイマー名も受け入れる ため 、 t1 タイマーの単純なコピーを作成するには、次のように呼び出すだけです。:

JS
Timer t2 value="t1"

タイマーコマンドは、単一のオブジェクト(タイマーまたはタイマーグループ)またはカンマ区切りのタイマー(グループ)リストを受け付けます。上記で定義した2つのタイマーを開始するには、以下のように使用できます::

JS
Timer t1,t2 start

タイマーはオプションでグループに関連付けることができます。グループ化することで、タイマーを論理的に整理し、一括操作を実行できます。グループとは、コンマ区切りのタイマーリストに相当する単純なタイマーリストです。グループにはステータスがなく、テスト結果の表示には影響しません。グループ化とグループ解除は、 グループを作成および更新するgroup および ungroup パラメータによって行われます。次の例では、2つのタイマー t1 と t2を作成し、それらを tgroup というグループに関連付け、グループ名を使用して両方のタイマーを開始/停止します。:

JS
Timer t1,t2 group=tgroup
Timer tgroup start
<タスクcode>
Timer tgroup stop

tgroup をtgroup2 という新しいグループに コピーするには、 次の コマンドを呼び出します。:

JS
Timer tgroup group=tgroup2

1つのタイマーは複数のグループに属することができます。タイマーはいつでも自由にグループ化したり、グループ解除したりできます。t1タイマーをtgroupとtgroup2の両方から削除するには、次の コマンドを 使用 します  。:

JS
Timer t1 ungroup=tgroup,tgroup2

あるいは、すべてのグループからタイマーを削除するには、  空の値を持つungroupパラメータを使用します。

JS
Timer t1 ungroup

グループをキャンセルし、グループからすべてのタイマーを削除するには、次のコマンドを使用します。これは、「グループ tgroupにリストされているすべてのタイマーを取得し、それらをtgroup から削除する 」という要求として理解される必要があります。

JS
Timer tgroup ungroup=tgroup

Timerコマンドの引数でグループ名を使用すると、タイマーのリストに展開され、コマンドで指定されたその他の操作(開始、停止、値/説明の設定など)が各タイマーに適用されます。以下の例では、2つのタイマーを作成してグループ化し、値を1秒(1000ms)に設定し、説明を「パフォーマンステスト」に設定して開始します。:

JS
Timer t1,t2 group=tgroup
Timer tgroup start value=1000 desc="Performance test"

ご存知のとおり、1つのコマンドで1つ以上の操作を指定できます。操作は以下の順序で実行されます。:

  1. 引数をタイマーのリストに解決し、まだ存在しないものを作成します。

  2. 値またはその他の属性(説明など)を設定します。

  3. グループ解除 パラメータが存在する場合はグループを解除します 。

  4. グループ パラメータが存在する場合はグループ化し 、

  5. ロード パラメータが存在する場合は参照データをロードします 。

  6. 開始 または 停止パラメータが存在する場合、最初のステップで識別されたタイマーを開始または停止します  。

この順序により、上記の例を1行のコードに収めることができます。処理順序の観点から見ると、このコマンドは「タイマー t1 と t2を作成し、それぞれの値と説明を設定し、それらをtgroupというグループにグループ化して起動する」といった要求として理解されます。:

JS
Timer t1,t2 start value=1000 desc="Performance test" group="tgroup"

SYNOPSIS

timer <name(s)> [start|stop]  [desc=<description>]  [value=<time_millis>]  [refvalue=<time_millis>]  [load=<XML_file>]  [group=<name(s)>]  [ungroup=<name(s)]
timer load=<XML_file>

  • 赤色は必須パラメータです

オプション

name(s)

-タイマー名、グループ名、またはコマンドを適用する名前のカンマ区切りリスト。グループとタイマーの混在も可能です。指定した名前のいずれかにスペースが含まれている場合は、リスト全体をダブルクォートで囲む必要があります。一意な名前(複数可)を指定すると、新しいタイマー(timer)が作成されます。その名前が、groupパラメータを指定して呼び出されたコマンドによって以前に作成されたグループに対応する場合、そのグループ内に現在存在するタイマーのリストに展開されます。

start|stop

-指定されたタイマーを開始または停止します(オプション)。すでに開始されているタイマーを開始したり、停止されているタイマーを停止したりしても効果はなく、エラーも報告されません。

desc=<説明>

-オプションのタイマーの説明。

value=<time_millis>

-ミリ秒単位のタイマー初期値(オプション)。値は既存のタイマーの名前を参照することができます。デフォルト値は0です。開始したタイマーの値を設定すると、そのタイマーは停止し、再起動する必要があります。

refvalue=<時間>

-ミリ秒単位の基準時間値。T-Plan Robot version 3.1.2以降、値は任意。時間的価値.このパラメータは、スクリプトの実行中には何の役割も果たさず、報告目的でのみ使用される。参照値が指定されると(報告書コマンドには、基準値と基準データからの相対的な差(パーセンテージ)が含まれます。この機能により、2つのアプリケーションバージョンのテストにわたってパフォーマンスの変化を追跡することができます。

load=<XML_ファイル>

-このパラメータはReportコマンド で以前に生成されたXMLファイルから参照データを読み込みます  。ファイルが相対パスの場合、Reportファイルと同じ方法(つまり_REPORT_DIR変数で指定された出力パス)で解決されます。XMLはタイマーデータについて解析され、タイマー名のいずれかが現在のスクリプトで作成されたタイマーと一致する場合、XMLタイマー値が現在のタイマーの参照時間として設定されます。参照時間と実際の測定値との差は、新しく生成されたXMLに書き込まれます。 上記のrefvalue パラメータも参照してください。XMLからの参照データの読み込みはrefvalueパラメータよりも優先され、refvalueパラメータの設定を上書きすることに注意してください 。

ロード操作がタイマーのセット上で操作されるタイマーコマンドから呼び出された場合(上記のシノプシスで指定された最初のコマンド形式)、指定されたセットだけに適用され、XMLからの他のデータはすべて破棄されます。すべてのタイマーの参照データを一度にロードするには、2番目のコマンド形式である "Timer load=<XML_file>"を使用します。このコマンドは内部的に参照データを保存し、既存のタイマーとこれから作成されるタイマーのすべてを更新するので、グローバルロード操作はスクリプトの任意の場所で呼び出すことができます(スクリプトの先頭でなくてもかまいません)。

group=<グループ>

-タイマーに関連付けるグループ、またはグループ名のカンマ区切りリスト。指定したグループ名のいずれかにスペースが含まれている場合は、リスト全体をダブルクォートで囲む必要があります。一意な名前(または複数の名前)は、新しいグループ(グループ)を作成します。グループ名はすでに存在するタイマーの名前と同じにすることはできません。

ungroup=<グループ>

-タイマーを削除するグループ、またはグループ名をカンマで区切ったリスト。指定されたグループ名のいずれかにスペースが含まれている場合、リスト全体をダブルクォートで囲む必要があります。指定されたタイマーが指定されたグループのメンバーであれば、そこから削除されます。

戻り値

コマンドがloadパラメータを使用してXMLファイルから参照データを読み取る場合、XMLが有効で、少なくとも1つのタイマー値が含まれている場合は0(ゼロ)を返します。XMLにタイマーデータが含まれていないが、形式が正しい場合は1(ワン)を返します。ファイルを読み取ることができない場合、または有効なXMLファイルでない場合は、2(ツー)を返します。

ロード パラメータのないタイマー コマンドは常に 0 (ゼロ) を返します。

使用例

例については上記のテキストを参照してください。

JavaScript errors detected

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

If this problem persists, please contact our support.