![Page 1: Generación de pruebas de performance a partir de pruebas funcionales para sistemas web](https://reader033.vdocuments.net/reader033/viewer/2022060117/5584b0a8d8b42a9c768b45f5/html5/thumbnails/1.jpg)
Generación de Pruebas de Rendimiento a Partir de Pruebas Funcionales para
Sistemas WebFederico Toledo ([email protected])Matías Reina
Fabián Baptista
Macario Polo Usaola
Beatriz Pérez Lamancha
![Page 2: Generación de pruebas de performance a partir de pruebas funcionales para sistemas web](https://reader033.vdocuments.net/reader033/viewer/2022060117/5584b0a8d8b42a9c768b45f5/html5/thumbnails/2.jpg)
![Page 3: Generación de pruebas de performance a partir de pruebas funcionales para sistemas web](https://reader033.vdocuments.net/reader033/viewer/2022060117/5584b0a8d8b42a9c768b45f5/html5/thumbnails/3.jpg)
Agenda
• Introducción y background– Functional Testing Automation– Performance Testing Automation– Motivación
• Propuesta
• Trabajo Relacionado• Conclusiones y trabajo futuro
![Page 4: Generación de pruebas de performance a partir de pruebas funcionales para sistemas web](https://reader033.vdocuments.net/reader033/viewer/2022060117/5584b0a8d8b42a9c768b45f5/html5/thumbnails/4.jpg)
Funcional Testing Automation
• Record and Playback
• User interface level automation
• Selenium
![Page 5: Generación de pruebas de performance a partir de pruebas funcionales para sistemas web](https://reader033.vdocuments.net/reader033/viewer/2022060117/5584b0a8d8b42a9c768b45f5/html5/thumbnails/5.jpg)
Intro a Selenium
Tester / User
SUT: System Under Test
Manual Test Case Execution
![Page 6: Generación de pruebas de performance a partir de pruebas funcionales para sistemas web](https://reader033.vdocuments.net/reader033/viewer/2022060117/5584b0a8d8b42a9c768b45f5/html5/thumbnails/6.jpg)
Intro a Selenium
Functional Test Scripts
Selenium captura las Interactiones del usuario
Tester / User
Ejecución y reporte
SUT: System Under Test
Manual Test Case Execution
This is record and playback!
![Page 7: Generación de pruebas de performance a partir de pruebas funcionales para sistemas web](https://reader033.vdocuments.net/reader033/viewer/2022060117/5584b0a8d8b42a9c768b45f5/html5/thumbnails/7.jpg)
Performance Testing Automation
• Record and playback, pero a nivel de Protocolo
• Load generator ( )– Simulación de múltiples Virtual
Users concurrentes desde pocas máquinas de prueba
– No pueden ser simulados con navegadores reales
– Entonces, la herramienta ejecuta procesos que simulan el tráfico HTTP
![Page 8: Generación de pruebas de performance a partir de pruebas funcionales para sistemas web](https://reader033.vdocuments.net/reader033/viewer/2022060117/5584b0a8d8b42a9c768b45f5/html5/thumbnails/8.jpg)
¿Cómo capturar el tráfico?
PerformanceTest Scripts captura el
trafico HTTP
Tester / User
Ejecución y reportes
SUT: System Under TestHTTP traffic
Web Server
Manual Test Case Execution
![Page 9: Generación de pruebas de performance a partir de pruebas funcionales para sistemas web](https://reader033.vdocuments.net/reader033/viewer/2022060117/5584b0a8d8b42a9c768b45f5/html5/thumbnails/9.jpg)
Performance Test Script
Dependiendo del sistema,
1 linea en Selenium es equivalente a 200
lineas in OpenSTA
![Page 10: Generación de pruebas de performance a partir de pruebas funcionales para sistemas web](https://reader033.vdocuments.net/reader033/viewer/2022060117/5584b0a8d8b42a9c768b45f5/html5/thumbnails/10.jpg)
Performance Testing Methodology
• Vázquez, G., Reina, M., Toledo, F., de Uvarow, S., Greisin, E., López, H.: Metodología de Pruebas de Performance. Presented at the JCC (2008).
Test Design Automation
Execute
Analyze Fix Entre el 30% y 50% en tareas de automatización
![Page 11: Generación de pruebas de performance a partir de pruebas funcionales para sistemas web](https://reader033.vdocuments.net/reader033/viewer/2022060117/5584b0a8d8b42a9c768b45f5/html5/thumbnails/11.jpg)
Motivación
• Performance testing es muy caro• No hay flexibilidad– Si la aplicación cambia, es necesario reconstruir
los scripts
Objetivos para performance testing automation• Reducir costos• Mejorar la flexibilidad
![Page 12: Generación de pruebas de performance a partir de pruebas funcionales para sistemas web](https://reader033.vdocuments.net/reader033/viewer/2022060117/5584b0a8d8b42a9c768b45f5/html5/thumbnails/12.jpg)
Proposal Overview
Functional Test Scripts
System Under Test
HTTP traffic
Sniffer HTTP
Automatic Test Case Execution
HTTP session
System Under Test Interface
![Page 13: Generación de pruebas de performance a partir de pruebas funcionales para sistemas web](https://reader033.vdocuments.net/reader033/viewer/2022060117/5584b0a8d8b42a9c768b45f5/html5/thumbnails/13.jpg)
Proposal Overview
Functional Test Scripts
Http session
Http session model
Generate
Performance TestScripts
Generate
![Page 14: Generación de pruebas de performance a partir de pruebas funcionales para sistemas web](https://reader033.vdocuments.net/reader033/viewer/2022060117/5584b0a8d8b42a9c768b45f5/html5/thumbnails/14.jpg)
Artefactos del Proceso
![Page 15: Generación de pruebas de performance a partir de pruebas funcionales para sistemas web](https://reader033.vdocuments.net/reader033/viewer/2022060117/5584b0a8d8b42a9c768b45f5/html5/thumbnails/15.jpg)
Meta-model
Relacionado con el Protocolo
Relacionado con el script de prueba funcional
![Page 16: Generación de pruebas de performance a partir de pruebas funcionales para sistemas web](https://reader033.vdocuments.net/reader033/viewer/2022060117/5584b0a8d8b42a9c768b45f5/html5/thumbnails/16.jpg)
Test code generation
![Page 17: Generación de pruebas de performance a partir de pruebas funcionales para sistemas web](https://reader033.vdocuments.net/reader033/viewer/2022060117/5584b0a8d8b42a9c768b45f5/html5/thumbnails/17.jpg)
Generación Automatica
• Se insertan Timers• Se agregan las mismas Validaciones as que hay
en el Script Selenium • Se Modulariza como en el Script Selenium• Se Parametrizan los datos tal como estaba en el
Selenium Script (data-driven testing)
• Cualquiera de estas tareas lleva menor esfuerzo a nivel de UI que a nivel de protocolo
![Page 18: Generación de pruebas de performance a partir de pruebas funcionales para sistemas web](https://reader033.vdocuments.net/reader033/viewer/2022060117/5584b0a8d8b42a9c768b45f5/html5/thumbnails/18.jpg)
Empirical Validation: Industrial Use Proyecto SUT # Scripts # VU
Human Resources System
Base de datos AS400, Java Web sobre Websphere
14 317
Production Management System
Base de datos AS400, C# Web sobre Microsoft Internet Information Services
5 55
Courts Management System
Java Web sobre Tomcat con base de datos Oracle
5 144
Auction System Java Web sobre Tomcat con base de datos MySQL
1 2000
Logistics System Java Web sobre Weblogic con base de datos Oracle
9 117
![Page 19: Generación de pruebas de performance a partir de pruebas funcionales para sistemas web](https://reader033.vdocuments.net/reader033/viewer/2022060117/5584b0a8d8b42a9c768b45f5/html5/thumbnails/19.jpg)
Resultados
• El esfuerzo requerido sin nuestro framework se reduce más de 5 veces – Enfoque Tradicional : 6 a 10 horas por script– Nuestro enfoque: 1 a 5 horas por script
• Flexibilidad– Mantenimiento en enfoque tradicional:
reconstruir los script casi completamente– Nuestro enfoque: ajustar scripts Selenium,
regenerar
![Page 20: Generación de pruebas de performance a partir de pruebas funcionales para sistemas web](https://reader033.vdocuments.net/reader033/viewer/2022060117/5584b0a8d8b42a9c768b45f5/html5/thumbnails/20.jpg)
Related Work• Generation of performance tests (Web Services)
– García Domínguez et al.: Performance Test Case Generation for Java and WSDL-based Web Services from MARTE. Advances in Internet Technology. 2012.
• Generation of performance tests (Web Systems)– Use Selenium scripts for performance testing
• TestMaker (www.pushtotest.com)• Scaleborn (www.scaleborn.com)
• Generation of performance tests (Web Systems)– De Sousa: Reusing Functional Testing in order to Decrease Performance
and Stress Testing Costs. SEKE 2011.• Generate statically the Selenium scripts to JMeter scripts. They do not consider
the http traffic– Secondary requests, 302, …– Java scripts
![Page 21: Generación de pruebas de performance a partir de pruebas funcionales para sistemas web](https://reader033.vdocuments.net/reader033/viewer/2022060117/5584b0a8d8b42a9c768b45f5/html5/thumbnails/21.jpg)
Conclusions
• Objetivos buscados para performance testing– Mejorar flexibilidad – Reducir costos
• Trabajo Futuro– Generar para distintos Load Generators• JMeter (jmeter.apache.org)• Considerando diferentes protocolos o tecnologías
![Page 22: Generación de pruebas de performance a partir de pruebas funcionales para sistemas web](https://reader033.vdocuments.net/reader033/viewer/2022060117/5584b0a8d8b42a9c768b45f5/html5/thumbnails/22.jpg)
Acknowledgement:
Generación de Pruebas de Rendimiento a Partir de Pruebas Funcionales para Sistemas Web
MSc. Federico Toledo
Eng. Matías Reina
Eng. Fabián Baptista
PhD. Macario Polo Usaola
PhD. Beatriz Pérez Lamancha
Gracias¿Preguntas?