Třída ParseResponse extrahuje řetězec ze svého vstupního argumentu. Třída ExtractToken extrahuje konkrétní token (řetězec) ze svého vstupního argumentu. Obě třídy jsou vhodné pro práci s určitými typy korelace dynamických dat.
Třída ParseResponse extrahuje řetězec ze svého vstupního argumentu pomocí regulárního výrazu pro shodu dle vzoru.
package customcode;
import com.ibm.rational.test.lt.kernel.services.ITestExecutionServices;
import java.util.regex.*;
/**
* Třída ParseResponse demonstruje použití vlastního kódu k extrahování
* řetězce ze svého vstupního argumentu pomocí regulárního výrazu pro
* shodu dle vzoru. *
* V tomto příkladu se předpokládá, že řetězec args[0] je úplnou odpovědí
z předchozího požadavku. Tato odpověď obsahuje denní
titulky ve formátu:
*
* <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>Cooler weather moving into eastern
U.S.</a> * <br>• <a href=s/262502>Digital camera shipments
up</a><br> *
* Na základě výše uvedené odpovědi by měl být extrahovaný řetězec:
* Cooler weather moving into eastern U.S. */
/**
* @author IBM Custom Code Samples
*/
public class ParseResponse implements
com.ibm.rational.test.lt.kernel.custom.ICustomCode2 {
/**
* Instance tohoto se vytvoří pomocí konstruktoru 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;
}
Třída ExtractToken extrahuje konkrétní řetězec ze svého vstupního argumentu.
package customcode;
import com.ibm.rational.test.lt.kernel.services.ITestExecutionServices;
/**
* Třída ExtractToken demonstruje použití vlastního kódu k extrahování konkrétního
* tokenu (řetězce) ze svého vstupního argumentu. To lze použít pro zpracování
* určitých typů korelace dynamických dat.
*
* V tomto příkladu se předpokládá, že vstupní řetězec args[0] je oddělen čárkami
* a token, o který jde, je předposlední token. Je-li např.
* args[0]:
* javascript:parent.selectItem('1010','[Negative]1010','1010','','IBM',
* '30181','Rational','1','null','1','1','6fd8e261','RPT')
* vrátí třída řetězec 6fd8e261.
*/
/**
* @author IBM Custom Code Samples
*/
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]; // Extrahovat předposlední token
// Odebrat zapouzdřující ''
NextToLastStr = ArgStr.substring(1, ArgStr.length() - 1);
} else {
tes.getTestLogManager().reportMessage("Could not extract value");
NextToLastStr = null;
}
return NextToLastStr;
}
}