2010-04-01 14 views
9

¿Cómo se prueba rigurosamente un sitio para seguridad y velocidad?¿Cómo probar rigurosamente un sitio?

¿Cuáles son las formas y herramientas para eso?

¿Podemos imitar a cientos de usuarios virtuales que visitan el sitio para ver su manejo de carga?

+1

Esto se conoce como prueba de estrés ... – Sarfraz

+0

Mira esto ... http://jakarta.apache.org/jmeter/ – ant

+0

* (related) * http://stackoverflow.com/questions/7492/ cómo hacer una prueba de estrés una aplicación web – Gordon

Respuesta

5

si esto es sólo supone que es una prueba de esfuerzo, tratar http://freshmeat.net/projects/siege/

asedio es una prueba de regresión y la utilidad de referencia. Puede poner a prueba una única URL con una cantidad definida por el usuario de usuarios simulados, o puede leer muchas URL en la memoria y enfatizarlas simultáneamente. El programa informa el número total de visitas registradas, los bytes transferidos, el tiempo de respuesta, la concurrencia y el estado de retorno. Siege admite los protocolos HTTP/1.0 y 1.1, las directivas GET y POST, las cookies, el registro de transacciones y la autenticación básica. Sus características son configurables por usuario.

o http://httpd.apache.org/docs/1.3/programs/ab.html

AB es una herramienta para la evaluación comparativa del rendimiento de su servidor (HTTP) Protocolo de Transferencia de Hipertexto Apache. Lo hace por , que le da una indicación de cuántas solicitudes por segundo puede realizar su instalación de Apache.

Para probar su código PHP, use PHPUnit. Para probar su interfaz, use Selenium.

Para las pruebas de seguridad, recomiendo comprar una auditoría y dejar eso a expertos dedicados. Hay demasiados posibles vectores de ataque que van más allá del código de su aplicación.

+0

@Gordon: +1, gracias es bueno saber acerca de tales herramientas, gracias – Sarfraz

+1

En lugar de Selenium, tiendo a preferir Celerity. Requiere que sepas cómo escribir Ruby, pero una vez que lo haces, es un gran marco de prueba de front-end. –

+0

nueva URL de asedio - https://www.joedog.org/siege-home/ –

1

Puede probar el Skipfish de Google. Es un escáner de seguridad pero de paso generará un gran número de solicitudes a su sitio.

1

conseguir en la primera página de slashdot

+0

¿podría explicar eso? – Sarfraz

+0

es algo que se llama efecto slashdot – ariefbayu

+0

Se sabe que los sitios que se cortan de forma radical se desmoronan bajo todo el tráfico debido a la gran cantidad de geeks derribando las puertas de los servidores, ansiosos por obtener el contenido. Sin embargo, tenga cuidado, puede marcar seriamente su proveedor de alojamiento con esto;) –

6

le sugiero que lea este post, es muy útil verifico mis sitios web dinámicos cada vez que voy a construir uno.

https://stackoverflow.com/questions/72394/what-should-a-developer-know-before-building-a-public-web-site#answer-305381

Editar:

http://jmeter.apache.org/

jmeter es un software de código abierto, una aplicación de escritorio Java puro 100% diseñado para cargar la conducta funcional de prueba y medir el rendimiento. It was originally designed for testing Web Applications but has since expanded to other test functions.

1

http://seleniumhq.org/ es la tecnología que debe buscar.

Citas de su sitio:

El selenio es un potente conjunto de herramientas que soporta rápido desarrollo de la prueba automatización para aplicaciones basadas en web. Selenium proporciona un amplio conjunto de funciones de prueba específicamente adaptadas a a las necesidades de prueba de una aplicación web .Estas operaciones son altamente flexibles, permitiendo muchas opciones para localizar elementos de la interfaz de usuario y comparar los resultados de las pruebas esperadas con el comportamiento real de la aplicación .

Una de las principales características de Selenium es el soporte para ejecutar las pruebas en plataformas de navegador múltiples.

La parte más importante es probablemente: Selenio-RC (control remoto)

Selenio-RC permite la automatización de pruebas desarrollador utilice un lenguaje de programación para una máxima flexibilidad y extensibilidad en el desarrollo de la prueba lógica. Por ejemplo, si la aplicación bajo prueba devuelve un conjunto resultado, y si el programa automatizado prueba necesita para ejecutar pruebas en cada elemento en el conjunto de resultados, iteración el apoyo de la lengua programación se puede utilizar para recorrer la conjunto de resultados, llamando a los comandos de Selenium para ejecutar pruebas en cada elemento.

Selenio-RC proporciona una API (Application Programming Interface) y una biblioteca para cada uno de sus idiomas soportados : HTML, Java, C#, Perl, PHP, Python y Ruby. Esta capacidad de usar Selenium-RC con un lenguaje de programación de alto nivel para desarrollar casos de prueba también permite que las pruebas automatizadas se integren con un entorno de compilación automatizado del proyecto .

2

puede usar WEBLOAD. Es una herramienta para la prueba de carga .. goto www.webload.com

3

Además, mencionaría Tsung.

Reding desde su introducción:

Tsung es una herramienta de prueba de carga de múltiples protocolos distribuido de código abierto

Se puede utilizar subrayar HTTP, WebDAV, SOAP, PostgreSQL, MySQL, LDAP y servidores Jabber/XMPP. Tsung (anteriormente conocido como IDX-Tsunami) es un software gratuito publicado bajo la licencia GPLv2 .

El propósito de Tsung es simular usuarios con el fin de probar la escalabilidad y el rendimiento de IP basada aplicaciones cliente/servidor. Puede utilizarlo para hacer pruebas de carga y estrés de sus servidores. Se han implementado y probado muchos protocolos con , y se puede ampliar fácilmente el . Recientemente se han agregado WebDAV, LDAP y soporte MySQL (experimental).

Se puede distribuir en varias máquinas cliente y es capaz de simular cientos de miles de usuarios virtuales simultáneamente (o incluso millones si tiene suficiente hardware ...).

Tsung se desarrolla en Erlang, un lenguaje de código abierto realizado por Ericsson para la construcción de aplicaciones distribuidas robustos tolerantes a fallos.

Tsung es apoyado por el Proceso-Uno

4

me gustaría simplemente ampliar en un par de sugerencias, ya lo hago mucho.

Siege es un gran comprobador de cordura y tiene una barrera de entrada muy baja. Es un paquete estándar en Ubuntu y otros y solo requiere la ejecución de parámetros de línea de comandos. Para que pueda golpear su sitio web tan duro como quiera (o atreverse) a ver dónde está el punto de ruptura. Mi experiencia es que pocos servidores web se degradan de forma lineal. A medida que aumenta la carga, se vuelven un poco más lentos, luego un poco más lentos, luego BAM el tiempo de carga salta a 20 segundos. Saber cuándo sucede eso te da una idea de cuánto preocuparte y si hay que hacer algo. Si no golpeas la pared hasta más de 500 usuarios simultáneos, entonces tienes un margen de maniobra.

Pero tenga en cuenta que asediar es más sobre probar su servidor web que su sitio web.

Como el mismo cartel mencionado anteriormente Selenium es una gran herramienta para eso, sin embargo, espera invertir algo de tiempo. En realidad, puede hacer estallar algunas pruebas solo con el Selenium IDE y ejecutarlas en su navegador bajo Selenium RC como un conjunto de aplicaciones HTTP sin tener que entrar en secuencias de comandos (aunque querrá hacer eso). Tanto el lado positivo como el negativo de este enfoque es que esto está impulsando un navegador real, por lo que ejecutar la prueba en una sola máquina no te dará resultados mundiales del mundo real porque tu máquina simplemente no puede mantener el ritmo. Debe ejecutar y configurar SRC y Selenium Grid puede ser una tarea desalentadora, pero merece la pena si esto es algo que hará una y otra vez, especialmente si tiene un poco de conocimiento de VM.

Los chicos que crearon Selenium ahora ofrecen un RC comercial basado en la nube que ejecuta todos los navegadores estándar y captura el video de la sesión (que puedes desactivar para una prueba de rendimiento). Está en http://saucelabs.com y para pruebas de carga, o pruebas rápidas sin cuidado en todos los navegadores, es genial. (Todavía realizo pruebas funcionales localmente). Nuevamente, cuesta, pero es razonable.

Lo deletreo más porque su primer punto es probar su sitio "enérgicamente", y supongo que eso significa probar toda la funcionalidad, no solo probarla con mucha energía.

No conozco ninguna bala mágica para esto, excepto para escribir pruebas exhaustivas (que es donde generalmente ingresas a las secuencias de comandos ya que muchas cosas se pueden reutilizar, por ejemplo, rellenando un formulario).

Lo último es que, antes de iniciarlo, si no tiene un programa de usabilidad instalado, permita que algunos no-programadores/personas de la web lo usen y miren y pídales que hagan varias "tareas" (firmar arriba, encuentre algo, no haga "clic en") Esto suena como una prueba de usabilidad pero es demasiado tarde para eso, pero se sorprenderá de la rapidez con la que las personas que no piensan como ustedes encuentran errores en su código. Esto debería abrir nuevos horizontes de áreas que no has probado.

No he encontrado una herramienta de "cobertura" para aplicaciones web. Si hay uno, pero me encantaría saberlo.

Cuestiones relacionadas