La classe ParseResponse estrae una stringa dal proprio argomento di input. La classe ExtractToken estrae un determinato token (stringa) dal proprio argomento di
input. Entrambe le classi possono essere utili per gestire determinati tipi di correlazione di dati dinamici.
La classe ParseResponse estrae una stringa dal proprio argomento di input,
utilizzando un'espressione regolare per un modello corrispondente.
package customcode;
import com.ibm.rational.test.lt.kernel.services.ITestExecutionServices;
import java.util.regex.*;
/**
* La classe ParseResponse dimostra l'utilizzo del codice personalizzato per estrarre una
* stringa dal proprio argomento di input utilizzando un'espressione regolare per un modello
* corrispondente.
*
* In questo esempio, si suppone che la stringa di input args[0] sia la risposta
completa di una richiesta precedente. Questa risposta contiene le notizie
aggiornate in un formato come:
*
* <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> *
* Una volta fornita la risposta precedente, la stringa estratta deve essere:
* Cooler weather moving into eastern U.S.
*/
/**
* @author IBM Custom Code Samples
*/
public class ParseResponse implements
com.ibm.rational.test.lt.kernel.custom.ICustomCode2 {
/**
* Instances of this will be created using the no-arg constructor.
*/
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;
}
La classe ExtractToken estra una stringa particolare dal proprio argomento di input.
package customcode;
import com.ibm.rational.test.lt.kernel.services.ITestExecutionServices;
/**
* La classe ExtractToken dimostra l'utilizzo del codice personalizzato per estrarre un
* determinato token (stringa) dal proprio argomento di input. Può essere utile per gestire
* determinati tipi di correlazione dati dinamica.
*
* In questo esempio, si suppone che la stringa di input args[0] sia delimitata da virgole
* e il token di interesse sia quello aggiornato. Ad esempio, se
* args[0] è:
* javascript:parent.selectItem('1010','[Negative]1010','1010','','IBM',
* '30181','Rational','1','null','1','1','6fd8e261','RPT')
* la classe restituirà la stringa 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]; // Estrarre il token aggiornato
// Rimuovere ''
NextToLastStr = ArgStr.substring(1, ArgStr.length() - 1);
} else {
tes.getTestLogManager().reportMessage("Could not extract value");
NextToLastStr = null;
}
return NextToLastStr;
}
}