Um gerador de teste usa pacotes de gravadores e produz elementos de modelos de teste que ele inclui no modelo de teste.
Antes de definir um gerador de teste, você deve identificar o tipo de dado que ele pode usar e o tipo de elemento de modelo que ele produz. Os dados de entrada para um gerador de teste podem ser dados brutos produzidos pelos gravadores ou dados que foram alterados durante o estágio de conversão. Os elementos de saída de um gerador de teste são digitados pelo recurso, que geralmente corresponde a um protocolo específico.
Para definir um novo gerador de teste:
- Declare um novo tipo de gerador de teste no arquivo plugin.xml usando o ponto de extensão com.ibm.rational.test.lt.testgen.core3.testGenerator.
- Designe ao gerador de teste um ID exclusivo e um nome.
- Declare quais tipos de pacotes o gerador de teste pode usar.
- Declare as propriedades necessárias do fluxo de pacotes enviado para o gerador de teste. A estrutura inclui os conversores necessários no estágio de conversão, portanto, essas propriedades são verificadas quando os pacotes chegam ao gerador de teste. Para obter informações sobre como definir propriedades usando conversores, consulte Definindo um Novo Conversor de Pacotes.
- Defina uma classe de implementação que implemente a interface com.ibm.rational.test.lt.testgen.core.testgen.ITestGenerator.
O produto inclui um conversor integrado que produz um fluxo ordenado de pacotes com base nos registros de data e hora de início dos pacotes.
Geralmente, os gravadores produzem pacotes classificados por seus registros de data e hora de término. A maioria dos geradores de teste exige que pacotes de entrada sejam ordenados por seus registros de data e hora de início, portanto, o fluxo de pacotes deve incluir a propriedade sorted nas propriedades requeridas.
Considere estes fatores sobre as implementações de ITestGenerator:
- Geralmente, você estende a classe com.ibm.rational.test.lt.testgen.core.testgen.BaseTestGenerator, que fornece uma implementação básica e requer apenas a substituição dos métodos necessários.
- O método initialize() é o local no qual qualquer opção de configuração do gerador de teste é lida usando o método getContext().getConfiguration().
- O método process() é o mais importante. A estrutura chama esse método para cada pacote de entrada. Esse método cria elementos de modelo e os inclui no teste de saída. Os elementos de modelo devem ser incluídos no teste usando métodos do objeto ITestStack retornados pelo método getContext().getStack().
- A estrutura chama o método complete() depois que todos os pacotes são enviados para o gerador de teste. O método complete() pode ser usado para executar qualquer operação de pós-processamento.
- Use o método getContext().logMessage() para relatar todas as mensagens do gerador de teste para o usuário, incluindo mensagens de erro. Se a mensagem pertencer a um erro irrecuperável, a estrutura parará o processo de geração de teste.
Nota: Um gerador de teste não deve atrasar a inclusão de elementos em um teste.
Os geradores de testes deverão incluir elementos no teste assim que eles forem criados. Um gerador de teste ainda poderá incluir dados em um elemento depois que esse elemento for incluído em um teste. Se houver atrasos na inclusão de elementos em um teste, os elementos gerados não poderão ser ordenados corretamente. Por exemplo, se outro gerador de teste também gerar elementos em um ambiente de protocolo combinado ou se a gravação contiver anotações, os elementos gerados poderão estar na ordem incorreta. Se você ainda precisar executar um processamento que atrasaria a inserção de um elemento no teste (por exemplo, acumular dados para criar um objeto de nível mais alto), grave um conversor que faça o processamento e insira-o antes que o gerador de teste seja iniciado.