Pruebas de carga y rendimiento en un canal de entrega de DevOps
Por Serguéi Baranov
11 de Julio, 2017
6 min leer
Las pruebas de rendimiento se están convirtiendo cada vez más en parte de la canalización de entrega continua en la configuración de DevOps. Aquí, hablamos sobre las pruebas de rendimiento y las mejores formas de incluir pruebas de carga y rendimiento en la entrega de aplicaciones.
Saltar a la sección
En entornos DevOps, se está convirtiendo en un las mejores prácticas para ejecutar pruebas de rendimiento como parte de la canalización de entrega continua. Por lo tanto, las pruebas de rendimiento deben ser una parte integral de la entrega continua de aplicaciones.
¡Cada vez más equipos se dan cuenta de que una regresión en el rendimiento puede tener un impacto tan grande en la calidad de la aplicación como una regresión en la funcionalidad! Por lo tanto, nos enfocamos en las pruebas de rendimiento y cómo integrar mejor las pruebas de carga y rendimiento en la entrega de aplicaciones.
Integre las pruebas de rendimiento en la canalización de entrega continua
Puede comenzar a integrar las pruebas de rendimiento en la canalización de entrega continua agregando pruebas de rendimiento seleccionadas a Jenkins, o una herramienta de integración continua de su elección, y haciendo que se ejecuten con regularidad.
Según sus necesidades, puede ejecutar pruebas de rendimiento en uno o más de los siguientes puntos de la infraestructura de compilación / prueba:
- Después de cada construcción con un conjunto reducido de pruebas de rendimiento de "humo".
- Una vez al día con un conjunto más completo de pruebas de rendimiento.
- Una vez al fin de semana o según la disponibilidad de la infraestructura, con un conjunto de pruebas de larga duración para pruebas de resistencia o pruebas de carga de alto volumen para pruebas de estrés.
Sin embargo, esto por sí solo no es suficiente.
El análisis manual de los informes de pruebas de carga puede llevar mucho tiempo y puede requerir habilidades especiales que no todos los desarrolladores poseen. Sin la capacidad de automatizar el análisis del informe de la prueba de carga, la revisión de los resultados de la prueba de rendimiento se convierte en una tediosa pérdida de tiempo. También se puede pasar por alto información vital sobre el rendimiento. En tales escenarios, es posible que esté ejecutando pruebas de rendimiento de forma continua, pero el beneficio de ellas será limitado.
Cómo optimizar las pruebas de rendimiento con un enfoque de cambio a la izquierda
Automatice la recopilación y el análisis de los resultados de las pruebas de rendimiento
Para obtener el máximo beneficio de las pruebas de rendimiento continuas, debe configurar un mecanismo eficaz para analizar los resultados de las pruebas de rendimiento. Prueba de carga de Parasoft y su LoadTest Continuum (un módulo de Prueba SOA de Parasoft) le proporcionan herramientas que ayudan a automatizar la recopilación y el análisis de los resultados de las pruebas de rendimiento y le brindan información sobre el rendimiento de su aplicación.
Cómo configurar su entorno para la ejecución continua de pruebas de rendimiento
Los siguientes pasos lo ayudarán a configurar su entorno para la ejecución continua de pruebas de rendimiento con Parasoft LoadTest y LoadTest Continuum:
- Revise y configure las métricas de QoS del proyecto LoadTest para la automatización.
- Implemente y configure LoadTest Continuum para la recopilación de informes de prueba de carga.
- Configure los proyectos de LoadTest en lotes para su ejecución.
- Comience a ejecutar lotes de proyectos de LoadTest como parte de la integración continua y utilice LoadTest Continuum para revisar y analizar periódicamente los resultados de las pruebas de rendimiento.
Seguiré estos pasos individualmente con más detalle a continuación.
Paso 1: revisar y configurar las métricas de QoS para la automatización
Las métricas de calidad de servicio (QoS) de Parasoft LoadTest son una de las características clave para automatizar el análisis de los resultados de las pruebas de rendimiento. Las métricas de QoS reducen grandes cantidades de datos en un informe de prueba de carga a un conjunto de respuestas de éxito / fracaso sobre el rendimiento de su aplicación. Parasoft LoadTest ofrece un amplio conjunto de métricas de QoS que van desde métricas de umbral listas para usar hasta métricas con secuencias de comandos personalizadas que le permiten utilizar la API de LoadTest para el análisis avanzado de datos de pruebas de carga.
Para preparar sus pruebas de rendimiento para la automatización, debe revisar las métricas de QoS en sus proyectos de LoadTest. Ejecute un proyecto LoadTest y examine el informe: todos los criterios de éxito y fracaso que utilice para analizar manualmente un informe de prueba de carga deben representarse como métricas de QoS. Convierta tantas métricas como pueda en métricas "numéricas". Una métrica numérica de QoS no solo devuelve un resultado de éxito / fracaso, sino que también cuantifica un indicador clave de rendimiento para esa métrica. Por ejemplo, una métrica que valida un umbral de utilización de la CPU también proporcionaría el valor real de la utilización de la CPU como métrica numérica.
Las métricas numéricas se utilizan ampliamente en LoadTest Continuum para trazar el rendimiento de las métricas a lo largo del tiempo:
Fig. 1. Resultados de métricas numéricas trazados en un informe de LoadTest Continuum.
Una vez que haya configurado las métricas de QoS para sus proyectos LoadTest, es hora de configurar LoadTest Continuum para la recopilación y el análisis de datos de rendimiento.
Paso 2: implementar y configurar LoadTest Continuum
Implemente y configure el archivo de aplicación web LoadTest Continuum ltc.war (disponible en el directorio de instalación SOAtest / LoadTest a partir de la versión 9.10.2), como se describe en la sección “LoadTest Continuum” de la documentación de LoadTest.
Paso 3: configure los proyectos de prueba de carga en lotes para su ejecución
Combine sus proyectos LoadTest en scripts .cmd para la ejecución por lotes. Los scripts LoadTest .cmd son la forma de especificar grupos de proyectos que compondrán diferentes conjuntos de pruebas de rendimiento, como las pruebas de "humo", las pruebas diarias o las pruebas de fin de semana mencionadas anteriormente.
Configure los scripts .cmd para enviar datos de informes a LoadTest Continuum como se describe en la sección "Envío de informes a LoadTest Continuum" de la documentación de LoadTest. Configure su herramienta de integración continua para ejecutar scripts LoadTest .cmd como parte de un proceso de compilación o en intervalos regulares. Por ejemplo, en Jenkins puede ejecutar un script LoadTest .cmd usando el paso de compilación Ejecutar el comando por lotes de Windows de la siguiente manera:
% SOATEST_HOME% \ lt.exe ”-J-Xmx4096M -cmd -run“% WORKSPACE% \ ltcontinuum.cmd
Paso 4: configure un tablero en Parasoft DTP
DTP de Parasoft contiene paneles de informes y análisis que le permiten monitorear el estado y el progreso de su proyecto de software con una variedad de widgets e informes.
Un continuo de pruebas de carga de Parasoft Widget de DTP le permite agregar el resumen de resultados de LoadTest más reciente al tablero de su proyecto de DTP y ofrece una forma rápida de evaluar el estado de los resultados de la prueba de rendimiento en su rutina diaria de revisión del estado del proyecto.
El widget muestra el número de pruebas y métricas totales, aprobadas y fallidas de las ejecuciones de LoadTest más recientes. Para ver los resultados con más detalle, haga clic en el enlace del proyecto en el widget y la página LoadTest Continuum se abrirá en una nueva pestaña.
Fig. 2. LoadTest Continuum widgets en un tablero de DTP.
Para configurar un widget HTML personalizado LoadTest Continuum en DTP, simplemente siga estos pasos:
- En el Centro de informes de Parasoft DTP, cree un nuevo Panel de control o abra uno existente.
- Presione Agregar widget. En el cuadro de diálogo Agregar widget, seleccione Personalizado -> Widget HTML personalizado.
- Copie el contenido del siguiente archivo de la instalación de LoadTest Continuum en el área de texto HTML del cuadro de diálogo:% TOMCAT_HOME% \ webapps \ ltc \ dtp \ ltc_dtp_widget.html
- Modifique el HTML con su configuración personalizada:
- Busque la función getServerURL (). Modifique el valor de retorno con el host y el puerto de su instalación de LoadTest Continuum.
- Busque la función getProjectName (). Modifique el valor de retorno con el nombre del proyecto que le gustaría rastrear en el widget.
- Presione Crear.
Paso 5: revise y analice los resultados de las pruebas de rendimiento
Parasoft LoadTest Continuum sirve como punto de recopilación para sus informes de LoadTest y como herramienta de análisis que organiza los datos de las pruebas de carga de múltiples ejecuciones. LoadTest Continuum organiza los datos en una pirámide de información que le permite revisar los resultados de sus pruebas de rendimiento en varios niveles de detalle, desde resúmenes diarios de alto nivel en la parte superior, hasta resultados de métricas de QoS en el núcleo, hasta informes detallados de pruebas de carga en el fondo:
Higo. 3. La vista de resumen diario y métricas de prueba de LoadTest Continuum.
Considere el siguiente flujo de trabajo como un ejemplo de una revisión de prueba regular (diaria):
- Para pruebas fallidas, siga los siguientes pasos:
- Abra la vista Historial de pruebas, compruebe si la prueba ha fallado con regularidad o esporádicamente. El primer caso probablemente indicaría una regresión; el segundo caso una inestabilidad.
- Inspeccione las métricas fallidas de la prueba:
- Para una métrica numérica, abra la vista de gráfico de historial de métricas. Utilice el gráfico del historial de métricas para obtener información. Por ejemplo, si una prueba a la que pertenece la métrica es inestable, las pequeñas fluctuaciones del gráfico métrico suelen indicar que el umbral de la métrica necesita un ajuste. Las grandes fluctuaciones indican problemas en el código o la infraestructura.
- Abra el enlace Todos los gráficos de esta prueba. Verifique los gráficos de otras métricas numéricas para la misma prueba para ver si hay fluctuaciones que no cruzaron el umbral de la métrica.
- Si no ha configurado los widgets de LoadTest Continuum DTP, comience verificando los resúmenes de éxito / fracaso de las pruebas y métricas en la página principal del proyecto LTC.
- Para proyectos que tienen fallas, siga el enlace a la página del proyecto LTC para examinar los detalles.
- Comience verificando el estado de sus ejecuciones de prueba de carga más recientes en los widgets LoadTest Continuum DTP.
- Haga lo mismo con el enlace Todos los gráficos de esta métrica para comprobar si se vieron afectadas métricas similares de otras pruebas. En caso afirmativo, esto indica un problema sistémico con su aplicación o infraestructura que no se limita a una sola prueba (consulte la Fig. 4).
- Para un análisis más profundo, abra los informes HTML o binarios de prueba de carga de la prueba fallida.
Higo. 4. Continuo de prueba de carga Todos los gráficos de la misma vista de métrica muestran una mejora del rendimiento de la métrica de porcentaje de CPU en varias pruebas.
La integración de un proceso de prueba de rendimiento en la tubería de entrega continua es esencial para garantizar la calidad del software. Para aprovechar al máximo este proceso, debe configurar un mecanismo eficaz para la automatización del análisis de los resultados de las pruebas de rendimiento.
Sea continuo con Parasoft
Puede configurar Parasoft LoadTest y LoadTest Continuum dentro de Parasoft SOAtest, que proporciona todo lo que necesita para lograr todos sus elevados objetivos de automatización de análisis de resultados de pruebas. Con una automatización sofisticada dentro de las pruebas funcionales, puede obtener software de mayor calidad.
Aprenda Más
- Sea un probador de software más inteligente con estas 5 deliciosas combinaciones de tecnología
- ¿Qué es DTP y por qué es tan poderoso?
- Obtenga más información sobre Parasoft SOAtest y Parasoft LoadTest
- Obtenga una prueba gratis