Herramienta de prueba automatizada: explicación detallada de Selenium

prefacio

Selenium es una herramienta para probar aplicaciones web. Es una herramienta de prueba de automatización web de código abierto, desarrollada originalmente para pruebas de automatización de sitios web, el tipo es como los sprites de botón que usamos para jugar, puede operar automáticamente de acuerdo con el comando especificado, la diferencia es que Selenium puede ejecutarse directamente en el navegador, todos los principales navegadores son compatibles, incluidos IE (7, 8, 9, 10, 11), Mozilla Firefox, Safari, Google Chrome, Opera, etc.

Las pruebas de Selenium se ejecutan directamente en el navegador, al igual que los usuarios reales. De acuerdo con nuestras instrucciones, el navegador puede cargar automáticamente la página, obtener los datos requeridos, incluso tomar una captura de pantalla de la página o determinar si se han producido ciertas acciones en el sitio web.

Selenium en sí no tiene un navegador y no es compatible con las funciones del navegador. Debe combinarse con los navegadores de terceros mencionados anteriormente para poder utilizarlo. Pero a veces necesitamos que se ejecute incrustado en el código, por lo que podemos usar una herramienta llamada PhantomJS en lugar de un navegador real.

Varias características de Selenium

1. Software de fuente abierta: el código fuente abierto puede aumentar algunas funciones de la herramienta según las necesidades

2. Compatibilidad multiplataforma y multiplataforma: linux, windows, mac

3. Admite múltiples navegadores: Firefox, Internet Explorer, Safari, Opera, Chrome, Edge

4. Función principal: es posible realizar pruebas automatizadas en múltiples navegadores

5. Puede usarse con una variedad de lenguajes de programación: Java, Python, C#, JavaScript, Ruby, etc.

6. Maduro y estable: ha sido ampliamente utilizado por Google, Baidu, Tencent y otras empresas.

7. Admite la ejecución de casos de prueba distribuidos, que pueden distribuir casos de prueba a diferentes máquinas de prueba para su ejecución, lo que equivale a la función de una máquina de distribución.

8. Funciones potentes: puede realizar la mayoría de las funciones similares a las herramientas comerciales y, debido al código abierto, puede realizar funciones personalizadas

Las funciones principales de Selenium incluyen: Probar la compatibilidad con los navegadores: probar su aplicación para ver si puede funcionar bien en diferentes navegadores y sistemas operativos. Pruebe la funcionalidad del sistema: cree pruebas de regresión para verificar la funcionalidad del software y los requisitos del usuario. Admite la grabación automática de acciones y la generación automática de scripts de prueba en diferentes lenguajes como .Net, Java y Perl.

1. La capa inferior del marco utiliza JavaScript para simular usuarios reales que operan el navegador. Cuando se ejecuta el script de prueba, el navegador realiza automáticamente operaciones como hacer clic, ingresar, abrir y verificar de acuerdo con el código del script, tal como lo hacen los usuarios reales, y la aplicación se prueba desde la perspectiva del usuario final.

2. Es posible automatizar las pruebas de compatibilidad del navegador, aunque todavía existen diferencias sutiles en los diferentes navegadores.

3. Es fácil de usar y puede usar Java, Python y otros lenguajes para escribir scripts de casos de uso.

componentes de selenio

 

selenio RC

Selenium RC es la parte central de la familia Selenium. Selenium RC admite muchos lenguajes diferentes para escribir scripts de prueba automatizados y utiliza el servidor SeleniumRC como un servidor proxy para acceder a la aplicación, a fin de lograr el propósito de la prueba.

El proceso de RC es:

El caso de prueba establece una conexión con el servidor selenium-RC a través de una solicitud Http

Selenium RC Server controla un navegador, carga Selenium Core en la página del navegador y configura el proxy del navegador como Proxy Http de Selenium Server

El caso de uso de ejecución envía una solicitud Http a Selenium Server, Selenium Server analiza la solicitud y luego envía comandos JS a través de Http Proxy para notificar a Selenium Core para realizar operaciones en el navegador e inyectar código JS.

4. Selenium Core ejecuta las instrucciones recibidas y opera

Cuando el navegador recibe una nueva solicitud, envía una solicitud http

Después de que Selenium Server recibe la solicitud Http enviada por el navegador, reorganiza la solicitud Http y obtiene la página web correspondiente

Http Proxy en Selenium Server devuelve la página recibida al navegador

IDE de selenio

Selenium IDE es una herramienta de prueba de automatización web de código abierto bajo Selenium Suite. Esta herramienta es una herramienta principal para crear scripts. En realidad, es un complemento para FireFox y tiene una interfaz fácil de usar. Tiene una función de grabación, que puede registrar las acciones realizadas por el usuario y se puede exportar como un script reutilizable. No utiliza ninguna lógica de programación para escribir la base de prueba, solo necesita registrar la interacción con el navegador para crear los casos de prueba. Posteriormente, el caso de prueba se puede volver a ejecutar utilizando la opción de reproducción. Si no tiene experiencia en programación, puede familiarizarse rápidamente con los comandos de Selenium a través de Selenium IDE.

Rejilla de selenio

Selenium Grid es una herramienta de ayuda para las pruebas automatizadas que puede acelerar las pruebas funcionales de las aplicaciones web utilizando la infraestructura informática existente. Con Grid, es muy conveniente ejecutar varias pruebas en paralelo en varias máquinas y entornos heterogéneos al mismo tiempo. Sus características son:

1. Ejecución paralela.

2. Use un host para controlar casos de uso para ejecutar en diferentes entornos y diferentes navegadores.

3. Agregue máquinas de prueba flexibles.

selenio webdriver

selenio 2.0 = selenio 1.0 + WebDriver

 En Selenium 2.0, WebDriver es la promoción principal. WebDriver es un sustituto de Selenium RC. Debido a que Selenium es compatible con versiones anteriores, Selenium RC no se ha abandonado por completo. Si usa Selenium para desarrollar un nuevo proyecto de prueba automatizado, se recomienda enfáticamente utiliza WebDriver.

Entonces, ¿cuál es la principal diferencia entre Selenium RC y webdriver?

selenium RC ejecuta aplicaciones de JavaScript en el navegador y utiliza el traductor de JavaScript incorporado en el navegador para traducir y ejecutar comandos selenese (selenese es una colección de comandos selenium).

 WebDriver controla directamente los navegadores a través de soporte de navegador nativo o extensiones de navegador. Desarrollado para cada navegador, WebDriver reemplaza el JavaScript incrustado en la aplicación web bajo prueba. La estrecha integración con los navegadores permite la creación de pruebas más avanzadas que evitan las limitaciones impuestas por el modelo de seguridad de JavaScript. Además del soporte de los proveedores de navegadores, WebDriver también simula la entrada del usuario mediante llamadas a nivel del sistema operativo.

webDriver es el núcleo después de selenium 2.0, y Webdriver controla directamente el navegador a través de soporte de navegador nativo o extensiones de navegador. El controlador web se desarrolla para cada navegador y reemplaza el JavaScript incrustado en la aplicación web bajo prueba. La estrecha integración con los navegadores permite la creación de pruebas más avanzadas que evitan las limitaciones impuestas por el modelo seguro de JavaScript. Además del soporte de los proveedores de navegadores, webdriver también simula la entrada del usuario mediante llamadas a nivel del sistema operativo.

Para utilizar webdriver, debe instalar el controlador del navegador. El controlador del navegador Chrome es chromedriver, el controlador del navegador IE es IEDriver y el controlador del navegador Firefox es geckodriver. El navegador y el controlador tienen requisitos de versión correspondientes.

Selenium 2.0 o superior admite la escritura de scripts de prueba en varios idiomas, porque se usa webdriver, webdriver se basa en el protocolo JSON Wire Protocol, el protocolo JSON Wire se basa en el protocolo http, estandariza aún más la solicitud http y los datos de la parte del cuerpo correspondiente. Los datos del mensaje de solicitud y del mensaje de respuesta en WebDriver se almacenan y transmiten en forma de JSON, por lo que entre el Cliente y el Servidor, siempre que los datos se transmitan en función del Protocolo JSON Wire, no tienen nada que ver con el lenguaje de secuencias de comandos específico. por lo tanto, el controlador del mismo navegador puede procesar tanto scripts de lenguaje Java como scripts de lenguaje Python.

Por último, me gustaría agradecer a todos los que han leído detenidamente mi artículo. La reciprocidad siempre es necesaria. Aunque no es algo muy valioso, puedes quitártelo si lo necesitas:

Estos materiales deben ser el almacén de preparación más amplio y completo para los amigos [de pruebas de software]. Este almacén también ha acompañado a decenas de miles de ingenieros de pruebas a través del viaje más difícil, ¡y espero que pueda ayudarlos!

Supongo que te gusta

Origin blog.csdn.net/hlsxjh/article/details/130893614#comments_26741885
Recomendado
Clasificación