O seguinte exemplo mostra como criar uma saída de log de texto de um script de teste vazio.
Procedimento
Implemente a subclasse que herda a classe base LogExtensionAdapter para implementar os seguintes métodos para obter o resultado de log que deseja. public void initLog()
public void writeLog(ILogMessage message)
public void closeLog()
Aqui está um exemplo de saída de log de texto de um script de teste vazio.
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
Exemplo
O seguinte exemplo mostra uma implementação de um log de texto para obter a saída de log de texto que é mostrada no exemplo anterior:
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;
}
/**
* Inicializar o fluxo para gravar o 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)
{
}
}
/**
* Gravar mensagem/eventos de log para o fluxo de arquivo
*/
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();
}
/**
* Fechar o fluxo para persistir os logs.
*/
public void closeLog() {
try{
out.close();
}catch(Exception e) {
}
}
/**
* Retornar o resultado da mensagem de log.
*/
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;
}
/**
* Retornar a representação de cadeia do evento de 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;
}
/**
* Retornar o título de ILogMessage.
*/
private String getHeadline(ILogMessage message) {
return message.getHeadline();
}
/**
* Retornar o nome de script de 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;
}
}