2008-10-18 21 views
9

Ya se hizo una pregunta similar ( Performing a Stress Test on Web Application?), pero me gustaría probar una aplicación web que evite los envíos dobles y tome algunas acciones XSRF contrarias y, por lo tanto, REQUIERE JavaScripts ser evaluado.Cómo poner a prueba una aplicación web que requiere Javascript

¿Alguien ha realizado pruebas de estrés con aplicaciones web que requieren (y usan) JS y alguna experiencia para compartir?

jMeter no funcionaría supongo ...

Gracias!

Respuesta

2

Watir?

Watir es una biblioteca de código abierto simple para automatizar navegadores web. Watir dirige los navegadores de la misma forma que las personas. Hace clic en enlaces, rellena formularios, presiona botones. Watir también verifica los resultados, como si el texto esperado aparece en la página.

Conduce Internet Explorer, pero también es funcional con Firefox (y Safari hasta cierto punto).

2

Los probadores con los que trabajo utilizan Bad Boy para pruebas de carga. Estoy bastante seguro de que puedes probar las interacciones que usan javascript, por lo que deberías poder probar cosas como los envíos dobles.

2

En lo que respecta a su back-end, no importa lo que desencadena una solicitud, ya sea desde JavaScript o una herramienta de prueba de carga, siempre que la solicitud sea válida.

Puede crear un montón de solicitudes falsas que hacen muchas cosas diferentes (es de esperar que sean representativas de los patrones de uso reales) y conecte su servidor web con una herramienta de prueba de carga.

Hay un montón por ahí:

  • jMeter
  • http_load
  • Grinder
  • httpperf
0

He intentado Badboy lo cual está bien. La herramienta grande, gruesa y pesada es SilkTest. Requiere mucha programación para comenzar a funcionar, ¡pero puede hacer algo muy sólido!

Si solo necesita una solicitud de prueba de esfuerzo, por ej. Los archivos de registro de IIS, tengo una herramienta de compilación personalizada. Lo publicaré en CodePlex muy pronto.

+1

Bueno, SilkTest es una herramienta especializada en pruebas funcionales; para la prueba de carga, querrá utilizar la prueba de carga impulsada por el navegador de SilkPerformer. – tehlexx

0

Selenium RC es otra alternativa.

+0

No creo que las pruebas de estrés con Selenium vayan a ser prácticas dado que cada cliente necesita ejecutar un navegador que genere problemas de escalabilidad. Sin embargo, probará Javascript bien –

+0

No hay problemas de escalabilidad si ejecuta la prueba en AWS ... – Hejazzman

3

El problema con Watir y selenio RC o cualquier otra solución completa del navegador es que necesitan un navegador completo: P

Los navegadores son muy caros de mantener, a menudo requieren 300 MB o más de memoria RAM. Multiplique esos requisitos por incluso 100 y necesita hardware masivo. Afortunadamente, hay una solución: recientemente fundé una empresa que hace exactamente lo que está buscando.

Consulte http://browsermob.com y puede realizar una prueba limitada (hasta 25 usuarios) para familiarizarse con la aplicación.No dude en contactarnos si tiene alguna pregunta.

+0

Patricky, su sitio tiene un problema con su implementación HTTPS – shanabus

+0

¿Podemos simplemente usar Lynx o algún otro navegador de poca memoria? –

0

También relacionado, echa un vistazo a mi artículo reciente sobre Ajaxian. Creo que hace un buen trabajo al explicar por qué los navegadores reales son importantes y por qué la ejecución de JavaScript es cada vez más importante para las pruebas de carga.

http://ajaxian.com/archives/why-load-testing-ajax-is-hard

3

Una solución que puede ser vale la pena seguir es correr selenio en Amazon EC2 para proporcionar la escalabilidad que necesita. Hay un tutorial en Selenium usando una muestra que se envía con rejilla Selenium. Las máquinas con Windows cuestan 12.5 centavos por hora para una máquina pequeña, lo que significa que una prueba de 500 máquinas costará $ 62.50 por hora.

PROS:

  • carreras de selenio en un navegador real lo que significa que su Javascript está ejecutando como lo haría en un cliente
  • Bajo costo - tratando de hacer esto en su propio hardware costaría mucho más

CONTRA:

  • Usted tendría que establecer la conectividad de red de Am Azon a su aplicación
+0

El enlace está roto, por favor actualice? – shanabus

1

Debido JMeter no es un navegador, no va a interpretar el código JavaScript en la página que conseguir:

JMeter no procesa Javascript o applets incrustados en páginas HTML. [JMeter Wiki]

Entonces, ¿qué puedes hacer? Puede add WebDriver to JMeter test y con esto, evaluar las páginas web.

Web Driver Sampler automatiza la ejecución y la recopilación de Métricas de rendimiento en el navegador (del lado del cliente). Una gran parte de las pruebas de rendimiento , hasta este punto, ha estado en el lado del servidor de cosas. Sin embargo, con el avance de las mejoras tecnológicas, HTML5, JS y CSS , cada vez más lógica y comportamiento se han reducido al cliente . Esto se suma al rendimiento general percibido del sitio web/webapp , pero esta métrica no está disponible en JMeter. cosas que se suman al tiempo total de ejecución del navegador pueden incluir:

  1. -lado del cliente la ejecución de Javascript - por ejemplo. Plantillas AJAX, JS
  2. Transformaciones CSS, p. Ej. Transformaciones de matriz 3D, animaciones
  3. Complementos de terceros, p. Ej. Facebook como, anuncios de doble clic, análisis de sitios, etc

Todas estas cosas agregan a la hora de ejecución global del navegador, y este proyecto tiene como objetivo medir el tiempo que tarda en completar y prestarán toda la este contenido.

guía oficial: https://jmeter-plugins.org/wiki/WebDriverTutorial/

0

Hay una nueva herramienta en esta área called k6

que tiene una forma de acceder al DOM, y tengo la intención de probarlo en a project.

fondo historia:

Puede visitar this y this blog.

tal vez ayude.

Cuestiones relacionadas