A ParseResponse osztály kibontja a karaktersorozatot annak bemeneti
argumentumából. Az ExtractToken osztály kibont egy adott jelsortt (karaktersorozatot)
annak bemeneti argumentumából. Mindkét osztály hasznos lehet adott típusú
dinamikus adatösszevetések kezelésében.
A ParseResponse osztály kibont egy karaktersorozatot annak bemeneti argumentumából,
a mintaillesztéshez reguláris kifejezést használva.
package customcode;
import com.ibm.rational.test.lt.kernel.services.ITestExecutionServices;
import java.util.regex.*;
/**
* A ParseResponse osztály egyéni kód használatát mutatja be karaktersorozat
* kibontásához annak bemeneti argumentumából, a mintaillesztéshez
* reguláris kifejezést használva.
*
* Ebben a példában azt tételezzük fel, hogy az args[0] bemeneti karaktersorozat
* a teljes válasz egy előző kérésre. Ez a válasz a nap címsorát tartalmazza
* a következő formátumban:
*
* <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>Hűvöseb idő húzódik keletre
</a> * <br>• <a href=s/262502>Digital camera shipments
up</a><br> *
* A fenti példában a kibontott karaktersorozat a következő lesz:
* Hűvösebb idő húzódik keletre
*/
/**
* @author IBM Custom Code Samples
*/
public class ParseResponse implements
com.ibm.rational.test.lt.kernel.custom.ICustomCode2 {
/**
* Ennek példányai a no-arg konstruktor használatával kerülnek létrehozásra.
*/
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;
}
Az ExtractToken osztály kibont egy adott karaktersorozatot
annak bemeneti argumentumából.
package customcode;
import com.ibm.rational.test.lt.kernel.services.ITestExecutionServices;
/**
* Az ExtractToken osztály egyéni kód használatát mutatja be egy adott jelsor
* (karaktersorozat) kibontásához annak argumentumából. Ez hasznos lehet bizonyos
* dinamikus adatösszevetési típusok kezeléséhez.
*
* Ebben a példában feltételezzük, hogy az args[0] bemeneti karaktersorozat vesszővel tagolt,
* és a szóban forgó jelsor következő-az-utolsóig jelsor. Például ha az
* args[0] a következő:
* javascript:parent.selectItem('1010','[Negative]1010','1010','','IBM',
* '30181','Rational','1','null','1','1','6fd8e261','RPT')
* akkor az osztály a 6fd8e261 karaktersorozatot adja vissza.
*/
/**
* @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]; // Következő-az-utolsóig jelsor kibontása
// Határoló '' eltávolítása
NextToLastStr = ArgStr.substring(1, ArgStr.length() - 1);
} else {
tes.getTestLogManager().reportMessage("Could not extract value");
NextToLastStr = null;
}
return NextToLastStr;
}
}