インターポーズ機能とは

インターポーズ処理は、測定項目を実行する前後で、変数の値を参照・変更できる機能です。 インターポーズ処理は、インターポーズ・アルゴリズムで処理手順を指定し、 インターポーズ条件で処理条件を指定することで作成します。

ここでは概要を述べます。
詳細は こちらのドキュメント を参照してください。

以下にインターポーズ処理の例を挙げます。

インターポーズ処理インターポーズ・アルゴリズムインターポーズ条件
測定前に2秒待つWait Time before Measure ItemWait Time: 2秒
I/O1のピンの測定値を指定した変数に設定するStore Pin Result ValuePin: I/O1

基本的なインターポーズ・アルゴリズムは、CloudTesting Labに標準で用意されています。 また、Javaを使用して、お客様自身でインターポーズ・アルゴリズムの開発が可能です。

用意されているインターポーズ・アルゴリズムを利用する

CloudTesting Labでは、以下のインターポーズ・アルゴリズムが用意されています。

名前 処理 Pre Interpose Post Interpose
Set Variable 演算式の結果を指定した変数に設定する。 実行可 実行可
Wait Time before Measure Item 指定時間だけ待つ。 実行可 実行不可
Wait Time after Measure Item 指定時間だけ待つ。 実行不可 実行可
Store Pattern Result ファンクション試験の実行結果を指定した変数に設定する。 実行不可 実行可
Store Pin Measure Value 指定したピンの測定値を変数に設定します。 実行不可 実行可
Store Pin Result Value 指定したピンの測定結果を変数に設定します。 実行不可 実行可
Store Comment Measure Value 指定したコメントの測定値を変数に設定します。 実行不可 実行可
Store Comment Result Value 指定したコメントの測定結果を変数に設定します。 実行不可 実行可

測定結果はInterger型の変数に設定できます。 設定される値と結果の関係を下表に示します。

結果
0Pass
4Invalid
5LowFail
6HighFail
7L_H_Fail
8Overflow
9Timeout

お客様自身でインターポーズ・アルゴリズムを開発する

お客様自身でインターポーズ・アルゴリズムを開発するには、Javaを使用します。 インターポーズ・アルゴリズムは、以下の手順で開発します(コマンド プロンプトを使用)。

順序 作業 内容
1 JDK 8をインストールする javaの開発を行うために、AdoptOpenJDK 8 (HotSpot) のWindows x64版をインストールします。 コマンドラインでJDKのコマンドを使用するために、パスにJDKのbinフォルダを追加します。

set Path=%Path%;Path\to\JDK\bin

2 ソースコードを作成する ソースコード(.java)を作成します。実行する順序に応じて、次のいずれかのクラスを継承します。
AbstractInterposeForBeforeMeasureItem
測定アルゴリズムを使用した測定前にインターポーズ処理を行う場合に使用する基底クラスです。
AbstractInterposeForAfterMeasureItem
測定アルゴリズムを使用した測定後にインターポーズ処理を行う場合に使用する基底クラスです。
3 コンパイルする JDKに含まれるjavacコマンドで、ソースコード(.java)をコンパイルします。

javac -classpath "%ProgramFiles%\CloudTesting\interpose\release\CTLab_Interpose.jar" -d . -encoding utf-8 Example.java

コンパイルに成功すると、Javaクラスファイル(.class)が生成されます。
4 アーカイブする JDKに含まれるjarコマンドで、Javaクラスファイル(.class)をアーカイブします。

jar cvf Example.jar com\*

アーカイブに成功すると、Javaアーカイブファイル(.jar)が生成されます。
5 フォルダに配置する 生成したJavaアーカイブファイル(.jar)を、以下のパスに配置します。

%ProgramFiles%\CloudTesting\interpose\custom

6 CloudTesting Labで利用する CloudTesting LabをExpertモードで起動します。 追加したインターポーズ・アルゴリズムは、インターポーズ処理一覧で確認できます。

インターポーズ・アルゴリズムで変数を参照・操作する

インターポーズ・アルゴリズムから、変数を参照・操作するには、InterposeVariableクラスを利用します。

変数の読み出しメソッドは、以下の通りです。

戻り値 メソッド名 引数 説明
Integer getIntegerValue - Integer型の値を取得します。配列定義の変数では最初の要素の値が取得されます。
Long getLongValue - Long型の値を取得します。配列定義の変数では最初の要素の値が取得されます。
Double getDoubleValue - Double型の値を取得します。配列定義の変数では最初の要素の値が取得されます。
Boolean getBooleanValue - Boolean型の値を取得します。配列定義の変数では最初の要素の値が取得されます。
String getStringValue - String型の値を取得します。配列定義の変数では最初の要素の値が取得されます。
Integer getIntegerValue Integer... indexes(*1) Integer型の値を取得します。引数で指定した要素番号の値が取得されます。
Long getLongValue Integer... indexes(*1) Long型の値を取得します。引数で指定した要素番号の値が取得されます。
Double getDoubleValue Integer... indexes(*1) Double型の値を取得します。引数で指定した要素番号の値が取得されます。
Boolean getBooleanValue Integer... indexes(*1) Boolean型の値を取得します。引数で指定した要素番号の値が取得されます。
String getStringValue Integer... indexes(*1) String型の値を取得します。引数で指定した要素番号の値が取得されます。
List getIntegerValues - Integer型の値を取得します。 すべての要素をListで取得する事が出来ます
List getLongValues - Long型の値を取得します。 すべての要素をListで取得する事が出来ます
List getDoubleValues - Double型の値を取得します。 すべての要素をListで取得する事が出来ます
List getBooleanValues - Boolean型の値を取得します。 すべての要素をListで取得する事が出来ます
List getStringValues - String型の値を取得します。 すべての要素をListで取得する事が出来ます

1 配列変数の要素を指定します。多次元配列ではその次元数分の引数が必要です。

変数への書き込みメソッドは、以下の通りです。

戻り値 メソッド名 引数 説明
void setVariableExpression String value 引数で渡された表現値を評価した値を設定します。
void setIntegerValue Integer value 引数で渡されたInteger型の値を設定します。
void setLongValue Long value 引数で渡されたLong型の値を設定します。
void setDoubleValue Double value 引数で渡されたDouble型の値を設定します。
void setBooleanValue Boolean value 引数で渡されたBoolean型の値を設定します。
void setStringValue String value 引数で渡されたString型の値を設定します。
void setIntegerValue Integer value,Integer...indexes 引数で指定した要素番号へ引数で渡されたInteger型の値を設定します。
void setLongValue Long value,Integer...indexes 引数で指定した要素番号へ引数で渡されたLong型の値を設定します。
void setDoubleValue Double value,Integer...indexes 引数で指定した要素番号へ引数で渡されたDouble型の値を設定します。
void setBooleanValue Boolean value,Integer...indexes 引数で指定した要素番号へ引数で渡されたBoolean型の値を設定します。
void setStringValue String value,Integer...indexes 引数で指定した要素番号へ引数で渡されたString型の値を設定します。
void setIntegerValues List values 引数で渡されたInteger型の値を設定します。変数の要素数がListの要素数より小さい場合エラーになります。
void setLongValues List values 引数で渡されたLong型の値を設定します。変数の要素数がListの要素数より小さい場合エラーになります。
void setDoubleValues List values 引数で渡されたDouble型の値を設定します。変数の要素数がListの要素数より小さい場合エラーになります。
void setBooleanValues List values 引数で渡されたBoolean型の値を設定します。変数の要素数がListの要素数より小さい場合エラーになります。
void setStringValues List values 引数で渡されたString型の値を設定します。変数の要素数がListの要素数より小さい場合エラーになります。

インターポーズ・アルゴリズムのサンプルソースコード

インターポーズ・アルゴリズムの例として、サンプルソースコードを示します。 ソースコードは以下からダウンロードできます。

インターポーズ・アルゴリズムのサンプルプログラム

※ダウンロード時に会員認証が行われます。ユーザ登録がお済みでない方は、ご登録をお願いいたします。

このサンプルプログラムは、以下のソースコードを含んでいます。

内容ファイル名
文字列“Hello”を出力するHello.java
パラメータで与えられた文字列を出力するPrintMessage.java
測定後にダイアログ出してポーズPause.java
フォーマットを指定して数値を出力するDisplay.java
配列変数で指定した被乗数とパラメータで指定した乗数の積を配列変数に格納するMultiplier.java
配列変数で指定した母集団の平均値を変数に格納するMean.java
変数の値を配列変数へ格納するsetVariableToArrayPre(Post).java
更新日
2020年08月24日(月)