ParseResponse クラスの機能は、入力引数から文字列を抽出することです。 ExtractToken クラスの機能は、入力引数から特定の字句 (文字列) を抽出することです。 どちらのクラスも、特定のタイプの動的データ相関を処理する場合に役立ちます。
ParseResponse クラスの機能は、パターン・マッチングのために正規表現を使用して、入力引数から文字列を抽出することです。
package customcode;
import com.ibm.rational.test.lt.kernel.services.ITestExecutionServices;
import java.util.regex.*;
/**
* ParseResponse クラスでは、パターン・マッチングのために正規表現を使用して、
* 入力引数から文字列を抽出することを、カスタム・コードを使用して
* 実証します。
*
* このサンプルでは、args[0] という入力文字列が、直前の要求からの
全応答であることが前提になります。 この応答には、以下のような形式で
当日の見出しが記載されています。
*
* <a class=f href=r/d2>In the News</a><small class=m> <span id=nw>
* </span></small></h2>
* <div class=ct>
* • <a href=s/213231>涼しい気候が米国東部へ移動中</a>
* <br>• <a href=s/262502>デジタル・カメラの出荷額が上昇</a><br> *
* 応答が前述のとおりと仮定すると、抽出される文字列は次のようになります。
* 涼しい気候が米国東部へ移動中
*/
/**
* @作成者 IBM カスタム・コード・サンプル
*/
public class ParseResponse implements
com.ibm.rational.test.lt.kernel.custom.ICustomCode2 {
/**
* no-arg コンストラクターを使用してこのインスタンスを作成する。
*/
public ParseResponse() {}
public String exec(ITestExecutionServices tes, String[] args) {
String HeadlineStr = "No Headline Available";
String RegExpStr = ".*In the News[^;]*;[^;]*;[^;]*;<a
href=([^>]*)>([^<]*)<"; Pattern pattern =
Pattern.compile(RegExpStr, Pattern.DOTALL); Matcher matcher =
pattern.matcher(args[0]);
if (matcher.lookingAt())
HeadlineStr = matcher.group(2);
else
tes.getTestLogManager().reportMessage("Input does not match
pattern.");
return HeadlineStr;
}
ExtractToken クラスの機能は、入力引数から特定の文字列を抽出することです。
package customcode;
import com.ibm.rational.test.lt.kernel.services.ITestExecutionServices;
/**
* ExtractToken クラスでは、入力引数から特定の字句 (文字列) を抽出するために、
* カスタム・コードを使用して実証します。 これは、特定のタイプの動的データ相関を
* 処理する場合に役立ちます。
*
* このサンプルでは、args[0] という入力文字列がコンマで区切られていることと、
* 目的の字句は最後の直前の字句であることが前提になります。 例えば
* args[0] の内容が以下のとおりである場合を考えます。
* javascript:parent.selectItem('1010','[Negative]1010','1010','','IBM',
* '30181','Rational','1','null','1','1','6fd8e261','RPT')
* この場合は、このクラスによって 6fd8e261 という文字列が戻ります。
*/
/**
* @作成者 IBM カスタム・コード・サンプル
*/
public class ExtractToken implements
com.ibm.rational.test.lt.kernel.custom.ICustomCode2 {
public ExtractToken() {
}
public String exec(ITestExecutionServices tes, String[] args) {
String ArgStr;
String NextToLastStr;
String[] Tokens = args[0].split(",");
if (Tokens.length > 2) {
ArgStr = Tokens[Tokens.length - 2]; // 最後の直前の字句を抽出
// 囲み記号 '' を除去
NextToLastStr = ArgStr.substring(1, ArgStr.length() - 1);
} else {
tes.getTestLogManager().reportMessage("Could not extract value");
NextToLastStr = null;
}
return NextToLastStr;
}
}