Un generador de pruebas utiliza paquetes de grabador y genera elementos de modelo de pruebas que añade al modelo de prueba.
Antes de definir un generador de pruebas, debe identificar el tipo de datos que puede utilizar y el tipo de elementos de modelo que genera. Los datos de entrada para un generador de pruebas pueden ser datos sin formato que los grabadores generan o bien datos que se han modificado durante la etapa de conversión. Los elementos de salida de un generador de pruebas se clasifican por característica,
que normalmente corresponde a un protocolo específico.
Para definir un nuevo generador de pruebas:
- Declare un nuevo tipo de generador de pruebas en el archivo plugin.xml, mediante el punto de ampliación com.ibm.rational.test.lt.testgen.core3.testGenerator.
- Asigne un ID exclusivo y un nombre al generador de pruebas.
- Declare qué tipos de paquetes puede utilizar el generador de pruebas.
- Declare las propiedades necesarias de la secuencia de paquetes enviados al generador de pruebas. La infraestructura incluye los convertidores necesarios en la etapa de conversión, de manera que las propiedades se verifican cuando los paquetes alcanzan el generador de pruebas. Para obtener información sobre cómo definir propiedades mediante convertidores, consulte Definición de un nuevo convertidor de paquetes.
- Defina una clase de implementación que implemente la interfaz com.ibm.rational.test.lt.testgen.core.testgen.ITestGenerator.
El producto incluye un convertidor incorporado que genera una secuencia ordenada de paquetes basados en sus indicaciones de fecha y hora de inicio de los paquetes.
Normalmente, los grabadores generan paquetes que se ordenan según sus indicaciones de fecha y hora. La mayoría de los generadores de pruebas requieren que los paquetes de entrada estén ordenados según sus indicaciones de fecha y hora de inicio, por lo que la secuencia de paquetes debe incluir la propiedad sorted en las propiedades necesarias.
Tenga en cuenta los hechos acerca de las implementaciones ITestGenerator:
- Normalmente, amplia la clase com.ibm.rational.test.lt.testgen.core.testgen.BaseTestGenerator, que proporciona la implementación básica y sólo implica la sustitución de los métodos necesarios.
- El método initialize()es donde se lee cualquier opción de la configuración del generador de pruebas mediante el método getContext().getConfiguration().
- El método process() es el más importante. La infraestructura llama al método para cada paquete de entrada. Este método crea elementos de modelo y los añade a la prueba de salida. Los elementos de modelo se deben añadir a la prueba mediante métodos del objeto ITestStack devuelto por el método getContext().getStack().
- La infraestructura invoca al método complete() una vez que todos los paquetes se han enviado al generador de pruebas. El método complete() puede utilizarse para realizar cualquier operación posterior al proceso.
- Utilice el método getContext().logMessage() para notificar mensajes del generador de pruebas al usuario, incluso los mensajes de error. Si el mensaje hace referencia a un error irrecuperable, la infraestructura detendrá el proceso de generación de pruebas.
Nota: Un generador de pruebas no debe retrasar la adición de elementos a una prueba.
Los generadores de pruebas deben añadir elementos a la prueba en cuanto se crean. Un generador de pruebas aún puede añadir datos a un elemento después de que el elemento se haya añadido a una prueba. Si se producen retrasos en la adición de elementos a una prueba, es posible que los elementos generados no estén ordenados correctamente. Por
ejemplo, si otro generador de pruebas también genera elementos en un entorno de protocolo mezclado, o si la grabación contiene anotaciones, es posible que los elementos generados no estén ordenados correctamente. Si aún necesita realizar un proceso que retrasaría la inserción de un elemento en la prueba (por ejemplo, la acumulación de datos para construir un objeto de nivel superior), escriba un convertidor que realice el proceso e inserte dicho convertidor antes de que el generador de pruebas inicie.