Un subsistema es una colección de clases en un componente distinto dentro del motor de pruebas de rendimiento que proporciona un servicio para muchas acciones. Por ejemplo, en la ejecución de pruebas, el subsistema KernelWait gestiona el tiempo de reflexión y suspensión para usuarios virtuales mientras se está ejecutando una prueba.
Acerca de esta tarea
En esta sección se presentan ejemplos adicionales de los servicios que proporcionan esos subsistemas:
- Seguimiento de las respuestas del servidor. Por ejemplo, tenga en cuenta las pruebas en las que se envía una solicitud de HTTP
a un servidor y tiene que saber cuándo vuelve la respuesta. En lugar de dejar una hebra esperando la respuesta, un subsistema puede hacerlo mientras el resto de las hebras realizan otras acciones. El subsistema puede proporcionar
una notificación o volver a emitir una acción cuando llegue la respuesta del servidor.
- Manejo de la comunicación asíncrona.
- Manejo de la acción de suspensión para los usuarios virtuales.
- Gestión del registro cronológico. Por ejemplo, la creación de un historial de ejecución personalizado puede tardar bastante. Puede asignar esta acción a un subsistema sin tener que dejar una hebra para este proceso. Puede configurar un subsistema para que se encargue de las acciones de registro cronológico especiales mientras se ejecuta el resto de las acciones.
Creación del ejemplo de un subsistema de motores de pruebas de rendimiento
Un subsistema de motores de pruebas de rendimiento proporciona servicios a una o más acciones. Una acción que utiliza un subsistema durante la ejecución de una prueba se conoce como acción recurrente. La mayoría de las acciones contiene finish() al final de execute(). Una acción recurrente solicita el servicio de un subsistema antes de que finalice execute(). Cuando el servicio se haya proporcionado, el subsistema que lo haya facilitado actualizará la información de estado en la acción y volverá a emitir la acción para que se ejecute. Según la información de estado, una hebra en funcionamiento del motor de pruebas de rendimiento tomará un curso distinto de ejecución durante la llamada recurrente a execute(), y finalmente, llamará a finish() para finalizar la acción.
En la lista siguiente se facilita una visión general de los pasos necesarios para utilizar este ejemplo:
- Creación del ejemplo de subsistema de motores de pruebas de rendimiento
- Información al motor de pruebas de rendimiento sobre la existencia del subsistema
- Creación de una prueba y planificación simples
- Adición de SampleAction y SampleSubsystem al proyecto
- Ejecución de la planificación en la que SampleAction utiliza SampleSubsystem