La prueba de carga es el proceso de exigir un sistema de software y medir su respuesta.
Prueba de carga de software
El término prueba de carga se utiliza de diferentes formas en la comunidad de pruebas de software profesional . Las pruebas de carga generalmente se refieren a la práctica de modelar el uso esperado de un programa de software simulando que varios usuarios acceden al programa al mismo tiempo. [1] Como tal, esta prueba es más relevante para sistemas multiusuario; a menudo uno construido utilizando un modelo cliente / servidor, como servidores web. Sin embargo, también se pueden probar otros tipos de sistemas de software. Por ejemplo, un procesador de textos o un editor de gráficos puede verse obligado a leer un documento extremadamente grande; o se puede obligar a un paquete financiero a generar un informe basado en datos de varios años. Las pruebas de carga más precisas simulan el uso real, a diferencia de las pruebas que utilizan modelos teóricos o analíticos.
Las pruebas de carga le permiten medir el rendimiento de la calidad de servicio (QOS) de su sitio web en función del comportamiento real del cliente. Casi todas las herramientas y marcos de prueba de carga siguen el paradigma clásico de prueba de carga: cuando los clientes visitan su sitio web, una grabadora de scripts registra la comunicación y luego crea scripts de interacción relacionados. Un generador de carga intenta reproducir los scripts grabados, que posiblemente podrían modificarse con diferentes parámetros de prueba antes de reproducirlos. En el procedimiento de reproducción, el conductor monitoreará y recopilará las estadísticas de hardware y software, estas estadísticas incluyen la CPU, la memoria, la E / S de disco de los servidores físicos y el tiempo de respuesta, el rendimiento del sistema bajo prueba (SUT), etc. Y por fin se analizarán todas estas estadísticas y se generará un informe de pruebas de carga.
Las pruebas de carga y rendimiento analizan el software destinado a una audiencia de múltiples usuarios sometiendo el software a diferentes números de usuarios virtuales y en vivo mientras se monitorean las mediciones de rendimiento bajo estas diferentes cargas. Las pruebas de carga y rendimiento generalmente se llevan a cabo en un entorno de prueba idéntico al entorno de producción antes de que se permita que el sistema de software entre en funcionamiento.
Como ejemplo, se requiere un sitio web con capacidad de carrito de compras para admitir 100 usuarios simultáneos divididos en las siguientes actividades:
- 25 usuarios virtuales (VUsers) inician sesión, navegan por los elementos y luego cierran la sesión
- 25 VUsers inician sesión, agregan artículos a su carrito de compras, pagan y luego cierran la sesión
- 25 VUsers inician sesión, devuelven artículos comprados previamente y luego cierran sesión
- 25 VUsers simplemente inician sesión sin ninguna actividad posterior
Un analista de pruebas puede usar varias herramientas de prueba de carga para crear estos VUsers y sus actividades. Una vez que la prueba ha comenzado y alcanzado un estado estable, la aplicación se está probando a la carga de 100 VUser como se describe arriba. El rendimiento de la aplicación se puede monitorear y capturar.
Los detalles de un plan o script de prueba de carga generalmente variarán entre las organizaciones. Por ejemplo, en la lista con viñetas anterior, el primer elemento podría representar a 25 VUsers que buscan elementos únicos, elementos aleatorios o un conjunto seleccionado de elementos, según el plan de prueba o el script desarrollado. Sin embargo, todos los planes de prueba de carga intentan simular el rendimiento del sistema en una variedad de flujos de trabajo y volúmenes máximos anticipados. Los criterios para aprobar o reprobar una prueba de carga (criterios de aprobación / reprobación) también son generalmente diferentes entre las organizaciones. No existen estándares que especifiquen métricas de rendimiento de pruebas de carga aceptables.
Un error común es que el software de prueba de carga proporciona capacidades de grabación y reproducción como herramientas de prueba de regresión . Las herramientas de prueba de carga analizan toda la pila de protocolos OSI, mientras que la mayoría de las herramientas de prueba de regresión se centran en el rendimiento de la GUI . Por ejemplo, una herramienta de prueba de regresión grabará y reproducirá un clic del mouse en un botón en un navegador web, pero una herramienta de prueba de carga enviará hipertexto que el navegador web envía después de que el usuario haga clic en el botón. En un entorno de múltiples usuarios, las herramientas de prueba de carga pueden enviar hipertexto para múltiples usuarios y cada usuario tiene un ID de inicio de sesión, una contraseña, etc.
Las populares herramientas de prueba de carga disponibles también brindan información sobre las causas del rendimiento lento. Existen numerosas causas posibles para el rendimiento lento del sistema, que incluyen, entre otras, las siguientes:
- Servidor (s) de aplicación o software
- Servidor (s) de base de datos
- Red: latencia , congestión , etc.
- Procesamiento del lado del cliente
- Equilibrio de carga entre varios servidores
Las pruebas de carga son especialmente importantes si la aplicación, el sistema o el servicio estarán sujetos a un acuerdo de nivel de servicio o SLA.
Las pruebas de carga se realizan para determinar el comportamiento de un sistema en condiciones de carga máxima tanto normales como anticipadas. Ayuda a identificar la capacidad operativa máxima de una aplicación, así como los cuellos de botella y determinar qué elemento está causando la degradación. Cuando la carga colocada en el sistema se eleva más allá de los patrones de uso normales para probar la respuesta del sistema a cargas inusualmente altas o máximas, se conoce como prueba de esfuerzo . La carga suele ser tan grande que las condiciones de error son el resultado esperado, pero no hay un límite claro cuando una actividad deja de ser una prueba de carga y se convierte en una prueba de esfuerzo.
El término "prueba de carga" se utiliza a menudo como sinónimo con las pruebas de concurrencia , las pruebas de rendimiento de software , pruebas de fiabilidad , y las pruebas de volumen para escenarios específicos. Todos estos son tipos de pruebas no funcionales que no forman parte de las pruebas de funcionalidad utilizadas para validar la idoneidad para el uso de un software determinado.
Experiencia de usuario bajo prueba de carga
En el ejemplo anterior, mientras el dispositivo bajo prueba (DUT) está bajo carga de producción: 100 VUsers, ejecute la aplicación de destino. El rendimiento de la aplicación de destino aquí sería la experiencia del usuario bajo carga. Describe qué tan rápido o lento responde el DUT y qué tan satisfecho o cómo el usuario percibe realmente el rendimiento.
Usuarios a nivel de navegador frente a usuarios a nivel de protocolo
Históricamente, todas las pruebas de carga se realizaban con pruebas API automatizadas que simulaban el tráfico a través de interacciones concurrentes en la capa de protocolo (a menudo denominados usuarios de nivel de protocolo o PLU). Con el avance de los contenedores y la infraestructura en la nube, ahora existe la opción de probar con navegadores reales (a menudo llamados usuarios de nivel de navegador o BLU). [2] Cada enfoque tiene sus méritos para diferentes tipos de aplicaciones, pero en general, los usuarios a nivel de navegador serán más similares al tráfico real que experimentará un sitio web y proporcionarán un perfil de carga y una medición del tiempo de respuesta más realistas. [3] Los BLU son sin duda una forma más cara de ejecutar pruebas y no pueden funcionar con todo tipo de aplicaciones, específicamente aquellas a las que no se puede acceder a través de un navegador web como un cliente de escritorio o una aplicación basada en API. [4]
Herramientas de prueba de carga
Nombre de la herramienta | Nombre de empresa | Licencia | Tipo | Precios | Enfocar | Notas |
---|---|---|---|---|---|---|
Apache JMeter | Un proyecto de código abierto de Apache Jakarta | Licencia Apache 2.0 | Local | Libre | Aplicación de escritorio Java para pruebas de carga y medición del rendimiento. | |
BlazeMeter | BlazeMeter Ltd. | Propiedad | Basado en la nube | Plan gratuito disponible | Sitio web, aplicación web, móvil, base de datos y otros escenarios | Carga escalable hasta 200.000 usuarios simultáneos de navegadores simulados de ocho ubicaciones geográficas. También se puede utilizar para pruebas funcionales y de integración. |
Bombardeo aéreo | Comunicaciones Spirent | Propiedad | Basado en la nube | Prueba disponible | Sitios web, API móviles y REST | Permite simular hasta 50.000 usuarios virtuales simultáneos desde diferentes ubicaciones del mundo. |
Inundación | Tricentis Corp. | Propiedad | Basado en la nube | Nivel de uso gratuito, niveles de uso de pago | Pruebas de carga basadas en navegador, API y aplicaciones controladas por protocolo | Carga escalable hasta millones de usuarios simultáneos de todas las regiones geográficas disponibles en AWS y Azure, además de implementaciones locales. El precio se basa en las horas de usuario virtual consumidas cada mes. [5] [6] |
Gatling | Fuente abierta | Licencia Apache 2.0 | Local | Libre | Aplicaciones web Java | Informes HTML portátiles. |
Loader.io | SendGrid Labs | Propiedad | Basado en la nube | Plan gratuito disponible | Aplicaciones web y API | |
LoadRunner | Enfoque micro | Propiedad | Local | Prueba disponible | Se utiliza principalmente para ejecutar un gran número de pruebas (o un gran número de usuarios virtuales) al mismo tiempo. También se puede utilizar para pruebas unitarias y de integración. | |
Prueba de carga (incluida con SOAtest ) | Parasoft | Propiedad | Local | Demo disponible | Herramienta de prueba de rendimiento que verifica la funcionalidad y el rendimiento bajo carga. Admite pruebas SOAtest, JUnits, componentes ligeros basados en sockets. Detecta problemas de simultaneidad. | |
loadUI | Software SmartBear | EUPL | Local | Demo disponible | Herramienta de pruebas de carga multiplataforma, dirigida principalmente a servicios web. Se integra con soapUI . | |
Iniciar sesión VSI | Inicie sesión en VSI, Inc. | Propiedad | Local | Prueba disponible | Cargas de trabajo de escritorios virtuales de Windows | |
NeoLoad | Neotys | Propiedad | Local | Plan gratuito disponible | Web y móvil | La carga se puede generar desde agentes locales o desde la nube. |
OpenSTA | Arquitectura de prueba de sistema abierto | Licencia pública general GNU 2.0 | Local | Libre | Servidor web | Utiliza una arquitectura de software distribuida basada en CORBA. Binarios de OpenSTA disponibles para Windows. |
Probador de rendimiento racional | IBM | Propiedad | Local | Prueba disponible | Herramienta de prueba de rendimiento a gran escala basada en Eclipse que se utiliza principalmente para ejecutar pruebas de rendimiento de gran volumen para medir el tiempo de respuesta del sistema para aplicaciones basadas en servidor. | |
Cerco | Fuente abierta | GPLv3 de código abierto o posterior | Local | Libre | Servidores web | Admite autenticación básica, cookies, protocolos HTTP, HTTPS y FTP. |
Artista de seda | Borland | Propiedad | Local | Prueba disponible | Herramienta de rendimiento de aplicaciones con agentes virtuales locales y en la nube. Admite la mayoría de protocolos y aplicaciones. Con licencia. | |
Estudio de prueba | Telerik | Propiedad | Local | Prueba disponible | Evalúe el rendimiento del sitio web si lo visitan un gran número de usuarios al mismo tiempo. | |
Edición de Visual Studio Enterprise | Microsoft | Propiedad | Local | Prueba disponible | La edición Visual Studio Enterprise incluye una herramienta de prueba de carga que permite a un desarrollador ejecutar una variedad de pruebas (web, unidad, etc.) con una combinación de configuraciones para simular la carga real del usuario. [7] Microsoft anunció [ ¿cuándo? ] que su funcionalidad de prueba de carga y rendimiento web quedó obsoleta después de Visual Studio 2019. | |
WebLOAD | RadView | Propiedad | Basado en la nube o local | Plan gratuito disponible | API y aplicaciones web y móviles | Herramienta de prueba de carga para aplicaciones web y móviles, incluido Web Dashboard para análisis de pruebas de rendimiento. Se utiliza para cargas a gran escala que se pueden generar también desde la nube. Con licencia. |
Prueba de carga física
Muchos tipos de maquinaria, motores, [8] estructuras [9] y motores [10] se someten a pruebas de carga. La carga puede estar en una carga de trabajo segura designada (SWL), carga completa o en un nivel de carga agravado. El contrato que rige, la especificación técnica o el método de prueba contiene los detalles de la realización de la prueba. El propósito de una prueba de carga mecánica es verificar que todos los componentes de una estructura, incluidos los materiales, las fijaciones de la base, sean aptos para la tarea y la carga para la que está diseñada.
Se emplean varios tipos de pruebas de carga
- La prueba estática es cuando se aplica una carga constante designada durante un tiempo específico.
- La prueba dinámica es cuando se aplica una carga variable o en movimiento.
- Las pruebas cíclicas consisten en cargas y descargas repetidas para ciclos, duraciones y condiciones específicas.
El Reglamento de suministro de maquinaria (seguridad) de 1992 del Reino Unido establece que las pruebas de carga se realizan antes de que el equipo se ponga en servicio por primera vez. Las pruebas de rendimiento aplican una carga de trabajo segura (SWL), u otra carga especificada, durante un tiempo designado en un método de prueba, una especificación o un contrato que rigen. Bajo las Regulaciones de Operaciones de Elevación y Equipos de Elevación de 1998, se requieren pruebas de carga del Reino Unido después de la prueba inicial si se reemplaza un componente principal, si el artículo se traslada de un lugar a otro o según lo indique la persona competente.
Sistema de carga del coche
Se puede utilizar una prueba de carga para evaluar el estado de la batería de un automóvil . El probador consta de una gran resistencia que tiene una resistencia similar a la del motor de arranque de un automóvil y un medidor para leer el voltaje de salida de la batería tanto en estado descargado como cargado. Cuando se utiliza el probador, primero se comprueba el voltaje de circuito abierto de la batería. Si el voltaje del circuito abierto está por debajo de las especificaciones (12,6 voltios para una batería completamente cargada), la batería se carga primero. Después de leer el voltaje de circuito abierto de la batería, se aplica la carga. Cuando se aplica, consume aproximadamente la misma corriente que consumiría el motor de arranque del automóvil durante el arranque. Según los amperios de arranque en frío especificados de la batería, si el voltaje bajo carga cae por debajo de cierto punto, la batería está averiada. Las pruebas de carga también se utilizan en automóviles en marcha para verificar la salida del alternador del automóvil .
Ver también
- Prueba de remojo
- Pruebas de estrés
- Prueba del sistema
- Pruebas web
- Evaluación comparativa del servidor web
Referencias
- ^ Wescott, Bob (2013). The Every Computer Performance Book, Capítulo 6: Pruebas de carga . CreateSpace . ISBN 978-1482657753.
- ^ Platz, Wolfgang. "El futuro de las pruebas de carga es BLU" . InfoWorld . Consultado el 23 de noviembre de 2018 .
- ^ "Todos somos probadores de carga ahora (quizás) - DevOps.com" . DevOps.com . 2018-02-08 . Consultado el 23 de noviembre de 2018 .
- ^ "¿Cómo realizar pruebas de carga con navegadores reales utilizando Flood Element?" . geekflare.com . 2018-11-17 . Consultado el 23 de noviembre de 2018 .
- ^ Erinle, Bayo (2014). Libro de cocina de JMeter . Packt Publishing. ISBN 978-1783988280.
- ^ Erinle, Bayo (2015). Pruebas de rendimiento con JMeter . Packt Publishing. ISBN 978-1784394813.
- ^ "Carga de aplicaciones ASP.NET de prueba con Visual Studio 2010" . Eggheadcafe.com . Consultado el 13 de enero de 2013 .
- ^ Harper, David; Devin Martin, Harold Miller, Robert Grimley y Frédéric Greiner (2003), Design of the 6C Heavy-Duty Gas Turbine , ASME Turbo Expo 2003, junto con la International Joint Power Generation Conference 2003, Volumen 2: Turbo Expo 2003, Atlanta GA: ASME 1., págs. 833–841, ISBN 978-0-7918-3685-9, consultado el 14 de julio de 2013
|volume=
tiene texto extra ( ayuda )CS1 maint: varios nombres: lista de autores ( enlace ) - ^ Raines, Richard; Garnier, Jacques (2004), 23ª Conferencia Internacional sobre Mecánica Offshore e Ingeniería Ártica, Volumen 1, Partes ay B , 23ª Conferencia Internacional sobre Mecánica Offshore e Ingeniería Ártica, 1 , Vancouver, BC: ASME, págs. 621–631, doi : 10.1115 / OMAE2004-51343 , ISBN 978-0-7918-3743-6, consultado el 14 de julio de 2013
- ^ DETERMINACIÓN DE LA CARGA Y LA EFICIENCIA DEL MOTOR ELÉCTRICO (PDF) , DOE / GO-10097-517, Departamento de Energía de EE. UU., 2010, ISBN 978-0-9709500-6-2, consultado el 14 de julio de 2013
enlaces externos
- Modelado del mundo real para sitios web de pruebas de carga por Steven Splaine
- ¿Qué es la prueba de carga? por Tom Huston
- 4 tipos de pruebas de carga y cuándo debe utilizar cada una de ellas David Buch
- ¿Prueba de rendimiento, carga, estrés o resistencia? ¿Cuál quieres? por Chris Jones