Os dados capturados por um gravador devem ser armazenados em um arquivo e consumidos por um gerador de teste para produzir um teste. Eles devem ser definidos para que possam ser armazenados pelo gravador e consumidos pelo gerador de teste.
Para definir um novo tipo de dado gravado, conclua estas tarefas:
- Declare um novo tipo de pacote de gravador no arquivo plugin.xml, usando o ponto de extensão com.ibm.rational.test.lt.recorder.core.recorderPacket.
- Defina uma ou mais classes de implementação, no mesmo plug-in, que implementem a interface: com.ibm.rational.test.lt.recorder.core.packet.IRecorderPacket.
Estes fatores se aplicam às implementações da classe IRecorderPacket:
- É possível definir quantos campos forem necessários para armazenar seus dados.
- Como essas classes são instanciadas por um gravador, elas devem expor uma forma de construção.
- Como um gerador de teste usa essas classes, elas devem expor formas de recuperar informações para o gerador de teste. Ou seja, elas devem expor os métodos getter.
- Você deve tornar as classes serializáveis. Leve isso em conta ao criá-las. Elas não devem ter nenhuma referência a dados que você não deseja incluir nas informações armazenadas.
Os campos que incluem referências para dados que você não deseja que sejam armazenados devem ser declarados usando a palavra-chave transient. Se você planeja ter evoluções com essas classes, certifique-se de que essas evoluções sejam compatíveis com versões anteriores.
Os pacotes de gravador têm estes recursos comuns:
- Eles possuem um tipo. Ele deve ser um ID de tipo declarado em uma extensão para o ponto de extensão com.ibm.rational.test.lt.recorder.core.recorderPacket. A classe de implementação deve estar no mesmo plug-in no qual o ID de tipo é declarado.
- Eles possuem um horário de início e um horário de encerramento. Isso é importante para a classificação de pacotes capturados, pois os gravadores geralmente não enviam os pacotes no horário exato no qual eles foram capturados. Muitos pacotes possuem o mesmo horário para eventos de início e término, pois são automaticamente capturados.
Os pacotes não precisam ter horários de início e término diferentes. Os horários de término dos pacotes devem, no entanto, ser maiores ou iguais ao horário de início. Todos os registros de data e hora devem ser expressos em unidades que a estrutura fornece.
As unidades devem ter a precisão mais alta que o sistema permite.
Para melhores resultados, siga estas práticas para implementar pacotes de gravadores:
- Se você tiver mais de um tipo de dado, defina uma interface que seja implementada por todas as classes de implementação.
- Defina uma interface para cada classe de implementação concreta, que expõe apenas recursos somente leitura da classe. O gerador de teste precisa acessar apenas as interfaces, enquanto o gravador precisa acessar as classes.
- Não defina campos redundantes ou computáveis. Como as classes são serializadas, um único campo adicional pode tornar a gravação muito maior se muitos pacotes forem armazenados. Declare um campo redundante ou computável usando a palavra-chave transient.