L'esempio riportato di seguito mostra come creare un'emissione registro di testo da uno
script di test vuoto.
Implementare la classe secondaria che eredita la classe base LogExtensionAdapter per
implementare i seguenti metodi in modo da acquisire il risultato del registro desiderato. public void initLog()
public void writeLog(ILogMessage message)
public void closeLog()
È qui riportato un esempio di emissione registro di testo da uno script di test vuoto.
July 23, 2007 8:30:12 PM IST :Script Name Script1.java Result :INFO Event SCRIPT START headlind Script start [Script1]
Property Name =line_number Property Value =1
Property Name =script_name Property Value =Script1
Property Name =script_id Property Value =Script1.java
July 23, 2007 8:30:12 PM IST :Script Name Script1.java Result :PASS Event SCRIPT END headlind Script end [Script1]
Property Name =line_number Property Value =-1
Property Name =script_name Property Value =Script1
Property Name =script_id Property Value =Script1.java
L'esempio riportato di seguito mostra un'implementazione di un registro di testo per
acquisire l'emissione registro di testo mostrata nell'esempio riportato in precedenza:
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Vector;
import com.rational.test.ft.services.ILogMessage;
import com.rational.test.ft.services.LogException;
import com.rational.test.ft.services.LogExtensionAdapter;
import com.rational.test.ft.services.LogMessageProperty;
public class ExampleLog extends LogExtensionAdapter {
private String logName=null;
private String logDirectory=null;
private PrintWriter out=null;
public ExampleLog(String logName) {
super(logName);
this.logName=logName;
this.logDirectory=null;
}
public ExampleLog() {
super();
this.logName=null;
this.logDirectory=null;
}
/**
* Initialize the stream to write the log.
*/
public void initLog() throws LogException {
try{
this.logName=getLogName();
this.logDirectory=getLogDirectory();
File logFile=new File(logDirectory,logName+".txt");
FileOutputStream fos=new FileOutputStream(logFile);
out=new PrintWriter(fos);
}catch(IOException e)
{
}
}
/**
* Write log events/message to the file stream
*/
public void writeLog(ILogMessage message) {
Vector properties=message.getProperties();
String result=getResult(message);
String event_type=getEventType(message);
String headline=getHeadline(message);
String timestamp=getTimestamp();
String currentScriptName=getScriptName(message);
out.println(timestamp + " :Script Name " + currentScriptName + " Result :" + result + " Event " + event_type + " headlind " + headline );
for(int i=0,size=properties.size();i<size;i++) {
LogMessageProperty property =
(LogMessageProperty) properties.elementAt( i );
out.println("Property Name =" + property.getName().toString() + " Property Value =" +property.getValue().toString() );
}
out.println();
}
/**
* Close the stream to persist the logs.
*/
public void closeLog() {
try{
out.close();
}catch(Exception e) {
}
}
/**
* Return the result from the log message.
*/
private String getResult(ILogMessage message) {
String result=null;
switch (message.getResult())
{
case LOG_FAILURE : result="FAILURE";break;
case LOG_PASS : result="PASS";break;
case LOG_WARNING : result="WARNING";break;
default: result= "INFO";
}
return result;
}
/**
* Return string representation of event from the ILogMessage.
*/
private String getEventType(ILogMessage message) {
String eventType=null;
switch(message.getEvent())
{
case EVENT_SCRIPT_START : eventType="SCRIPT START";break;
case EVENT_SCRIPT_END : eventType="SCRIPT END";break;
case EVENT_VP : eventType="VERIFCATION POINT";break;
case EVENT_CALL_SCRIPT : eventType = "CALL_SCRIPT"; break;
case EVENT_APPLICATION_START : eventType="APPLICATION START";break;
case EVENT_APPLICATION_END : eventType="APPLICATION END";break;
case EVENT_TIMER_START : eventType="TIMER START";break;
case EVENT_TIMER_END : eventType= "TIMER END" ;break;
case EVENT_CONFIGURATION : eventType="CONFIGURATION"; break;
default : eventType="GENERAL";
}
return eventType;
}
/**
* Returns the headline from the ILogMessage.
*/
private String getHeadline(ILogMessage message) {
return message.getHeadline();
}
/**
* Return the script name from the ILogMessage.
*/
private String getScriptName(ILogMessage message) {
String scriptName=null;
Vector properties=message.getProperties();
for(int i=0,size=properties.size();i<size;i++) {
LogMessageProperty property =
(LogMessageProperty) properties.elementAt( i );
if(property.getName().equalsIgnoreCase(PROP_SCRIPT_ID))
{
scriptName=property.getValue().toString();
}
}
return scriptName;
}
}