¿Recuerdas tus primeras experiencias chateando con tus amigos en aplicaciones de redes sociales como Orkut (sí, ¿recuerdas esa?) y sintiéndote obsesionado con poder enviar y recibir mensajes en tiempo real. Avanzamos rápidamente hasta ahora, donde usamos aplicaciones como Gmail, Slack, WhatsApp, Shazam, Instagram e innumerables otras, sin hacer ningún ojo. Realmente hemos sido testigos del auge de la web en tiempo real en cuestión de años. Una de las mayores razones por las que esto ha sido posible se debe principalmente a la introducción del protocolo WebSocket. Tratemos de explicar y comprender qué son los WebSockets, sus características, beneficios y cómo probar el estrés de aplicaciones y sitios web que utilizan WebSockets para entender el rendimiento general bajo estrés, así como cómo eso afecta la experiencia del usuario.

 

¿Qué son los WebSockets?

Por definición, un WebSocket es un protocolo de comunicación informática bidireccional sobre un único TCP. WebSockets ayuda enormemente a manejar transferencias de datos a gran escala entre el cliente y el servidor. Los WebSockets son diferentes porque funcionan manteniendo abierta en todo momento la conexión entre el cliente y el servidor. Con este método, el servidor tiene la facultad de enviar información en cualquier momento, incluso cuando no fue iniciada por el cliente. Los clientes todavía pueden realizar solicitudes HTTP habituales al servidor, mientras que WebSockets abre un medio entre el cliente y el servidor para comunicarse. Los servidores web, como Nginx, Apache y Windows Server, admiten el protocolo WebSockets, al igual que todos los navegadores populares, como Chrome, Edge, Internet Explorer, Firefox y Safari.

 

¿Dónde se utilizan los WebSockets?

WebSockets son buenos para situaciones en las que necesita comunicaciones casi en tiempo real, como los siguientes escenarios y aplicaciones:

  • Juegos multijugador online
  • Aplicaciones de chat
  • Internet de las cosas
  • Aplicaciones en tiempo real
  • Resultados deportivos/tickers

 

Ventajas y beneficios de WebSockets

  • Conexión continua entre cliente y servidor. Hace factible enviar información al cliente en cualquier momento, incluso sin que el cliente la solicite.
  • Comunicación dúplex completa. La comunicación se puede iniciar de cualquier manera en cualquier momento que el cliente y el servidor estén conectados.
  • Baja latencia. Como hay una sobrecarga muy limitada de encabezados HTTP, cookies, etc., hace que la velocidad a la que las transferencias de datos sean fluidas y rápidas.
  • Sondeo HTTP. Esto puede ayudar a los clientes a seguir sondeando el servidor para obtener información más reciente. El sondeo es utilizado por un gran número de aplicaciones hoy en día y la mayoría de las veces se utiliza para las prácticas RESTful.

 

Desventajas de WebSockets

  • Los WebSockets son más complejos de usar que HTTP. Podemos establecer una conexión HTTP con telnet, pero no podemos hacer lo mismo con WebSockets.
  • El equilibrio de carga y la configuración de proxy con WebSockets no es posible.
  • Si está entre caídas de conexión, el control de conexión no está presente en WebSockets.

 

Aplicaciones de pruebas de rendimiento que utilizan WebSockets

Como hemos visto, WebSockets se puede utilizar para admitir una aplicación de chat o una fuente de noticias que ofrece contenido en tiempo real en un sitio web, por ejemplo, pero puede tener problemas de rendimiento que pueden afectar la experiencia general del usuario si se implementa correctamente. Para salvaguardar esto, sería prudente ejecutar pruebas de carga y estrés en nuestro sitio web o aplicación para encontrar cualquier problema de rendimiento, cuellos de botella o problemas de degradación. Cuando ponemos aplicaciones en contra de un alto número de usuarios simultáneos, podemos tener una mejor idea de lo que el usuario experimentará.

 

Pruebas de rendimiento con LoadView mediante EveryStep Web Recorder

EveryStep Web Recorder proporciona una opción de grabadora de pantalla mientras navega y le ayuda a simular las interacciones del lado cliente con sitios web y aplicaciones. Es compatible con más de 40 navegadores móviles y de escritorio, además de marcos y tecnologías que se utilizan para crear aplicaciones web dinámicas, como HTML5, Java, Ruby, React, Vue, Angular y Knockout, solo por nombrar algunas. Esencialmente, si se representa en un explorador, el Grabador Web EveryStep se puede utilizar para crear un script. Podemos grabar cada paso de nuestra transacción web simplemente navegando a través de nuestra aplicación como lo haría un usuario y luego reproducir esos scripts en navegadores reales. Por último, podemos tomar ese script y probar los pasos y escenarios que acabamos de grabar bajo carga para tener una mejor idea del rendimiento bajo varias cargas de trabajo.

Veamos los pasos y procesos utilizados para grabar scripts usando EveryStep Web Recorder y luego ejecutando una prueba de carga usando LoadView.

Abra la página de inicio de pruebas de LoadView. Verá varios tipos de opciones de prueba de carga que están disponibles como se muestra en la imagen siguiente. Para nuestro caso de uso, vamos a seleccionar la opción Aplicación Web para comenzar a registrar el viaje del usuario.

crear una nueva aplicación web de prueba de carga

 

Obtendríamos una opción para Grabar nuevo script. Introduzca la URL del sitio web, el tipo de navegador y el tipo de dispositivo de usuario para la aplicación que queremos que ejecute nuestra prueba de esfuerzo y registre nuestro caso de prueba. Por favor, haga clic en Grabar ahora botón después de agregar detalles.

 

Websocket EveryStep

 

Al hacer clic en el botón Grabar ahora le permitirá interactuar con el sitio web bajo los pasos de prueba y registro que queremos simular. Tendríamos la opción de detener la grabación una vez que se haya completado el flujo de usuario.

 

Navegador de registros de Websocket

 

Después de grabar con éxito nuestro script, podemos revisar nuestro escenario de prueba usando. Seleccione el botón Reproducir ahora o podemos avanzar para probarlo haciendo clic en el botón Continuar.

 

Grabación EveryStep detenida

 

Al hacer clic en Continuar nos redirigiría a la ventana Crear prueba con el script de acciones simuladas listo. Podemos nombrar nuestra prueba en este video y más tarde tendríamos que hacer clic en el botón Crear dispositivo.

 

Ventana del escenario de prueba de Websocket

 

Una vez que hayamos creado correctamente un dispositivo, veríamos la pantalla Escenario de prueba, donde podemos establecer el tipo de curva de carga,que puede diferir en función de los objetivos de la prueba de carga. La siguiente imagen muestra las curvas de prueba de carga que LoadView pone a disposición de los desarrolladores y evaluadores de rendimiento.

Escenario de prueba de Websocket

 

Una vez que haya seleccionado la curva de carga, puede comenzar la ejecución de la prueba con el número de usuarios simultáneos y la duración de la prueba. También puede elegir entre más de 20 ubicaciones geográficas para ejecutar pruebas, lo que garantiza que está midiendo y probando el rendimiento desde donde se encuentran los usuarios.

Una vez completada la prueba, puede ver los resultados de la prueba, junto con las métricas asociadas. Un ejemplo de esto se muestra en las siguientes imágenes.

Tiempo medio de respuesta de Websockets

 

Promedio de tiempo medio de respuesta de los usuarios

Paralelo Número promedio de usuarios con gráfico de tiempo de respuesta promedio.

 

Websockets número de usuarios virtuales

Resumen: Pruebas de carga de aplicaciones basadas en WebSocket

Como hemos visto a través de este artículo con tecnologías innovadoras como WebSockets, y los nuevos desafíos que aborda, hay muchos problemas operativos que los desarrolladores pueden enfrentar al usar WebSockets como su solución en tiempo real. Las pruebas de carga en estas aplicaciones son imprescindibles y nos ayudan a estimar el comportamiento de nuestra aplicación en tiempo real bajo carga. También pasamos paso a paso sobre cómo probar una aplicación basada en WebSocket mediante LoadView, junto con EveryStep Web Recorder, que puede ser extremadamente útil para descubrir problemas importantes inherentes a la arquitectura De WebSocket.

Pruebe EveryStep Web Recorder ahora y vea lo fácil que es iniciar escenarios de usuario complejos de scripting. Regístrese para obtener la prueba gratuita de LoadView y comience a ejecutar pruebas de carga para sus aplicaciones basadas en WebSocket. Obtendrá hasta 5 pruebas de carga gratuitas. O programe su propia demostración con uno de nuestros ingenieros de rendimiento.