Preguntas de la entrevista sobre automatización de pruebas de software (con respuestas)

Tabla de contenido

1. ¿Cómo implementar y promover las pruebas automatizadas en la empresa?

2. ¿Cómo escribir casos de prueba automatizados?

3. ¿Las pruebas automatizadas encuentran muchos errores?

4. ¿Qué marco utilizó para las pruebas automatizadas en la empresa anterior?

5. ¿Qué es la integración continua? ¿Para qué es esto?

Automatización de la interfaz de usuario

1. ¿Cuáles son los tres tipos de espera en la automatización? ¿Cuáles son sus características?

2. El método de posicionamiento en selenio*

3. Tanto el posicionamiento xpath como css son relativamente poderosos, entonces, ¿cuál es la diferencia entre ellos?

4. ¿El script de prueba que escribe se puede ejecutar en diferentes navegadores?

5. ¿Encontró algún problema durante el proceso de automatización? Por ejemplo

6. ¿Qué es el modo PO y por qué deberíamos utilizarlo?

Automatización de interfaz

1. ¿Cómo se prueba la interfaz?

2. Cómo realizar pruebas de interfaz sin documentos de interfaz

3. ¿Cuáles son los puntos principales al escribir casos de prueba de interfaz?

4. Cómo lidiar con los parámetros de cifrado en la prueba de interfaz

5. Preguntas sobre la aplicación de la interfaz

5. La diferencia entre sincrónico y asincrónico

6. Cómo ensamblar el caso en pytest

7. Hable sobre la función de enlace en pytest.

er2

1. Cómo funciona el apio

1.1 appuim se basa en el principio de uiautomator2

1.2 Appium se basa en el principio de uiautomator1

1.3 Appium se basa en el principio de chromedriver, utilizado al probar H5

1.4 teléfono móvil IOS:

2. El formato de respuesta de la interfaz es json, ¿cómo analizarlo con código? si no

¿Cómo analizar usando una biblioteca de terceros?

3. ¿Cómo utilizar el oyente de Testng? Rentabilidad basada en datos de TestNg

¿Qué es?

4. Presente brevemente la estructura del marco general del proyecto de automatización.

5. ¿Cuáles son las similitudes y diferencias entre la espera explícita y la espera implícita en la automatización?

6. ¿Qué anotaciones hay en Testng?

7. ¿Cómo se asocia la herramienta Jmeter entre interfaces, una breve descripción?

8. ¿Qué proporción de automatización y trabajo manual representa el negocio de su empresa? usado respectivamente

¿Qué negocio haces?

9. Cómo garantizar la estabilidad de las pruebas automatizadas.

10.¿Cuál es la diferencia entre cookie y sesión?

11. Cómo construir los datos en los que se basan los casos de uso en las pruebas automatizadas

12. Cómo implementar pruebas en múltiples navegadores o múltiples teléfonos móviles

13. ¿Cómo probar si se encuentra una redirección de interfaz durante la prueba de interfaz?

14. La interfaz depende de una interfaz de terceros, pero hay un problema con la interfaz de terceros, ¿qué debo hacer?

¿administrar?

15.En la interfaz estándar de Restful, ¿cuáles son los métodos de solicitud? Representan respectivamente

Qué significa

16. ¿Qué escenarios de automatización web requieren un procesamiento especial?

17. ¿Qué hacer si no se puede ubicar el ícono de desbloqueo por gestos en la aplicación?

selenio

1. ¿Cómo determinar si existe un elemento en el selenio?     

2. ¿Qué son las pruebas automatizadas y cuáles son las ventajas de las pruebas automatizadas?     

3. ¿Qué tipo de proyectos son más adecuados para pruebas automatizadas y qué tipos de proyectos no son adecuados para pruebas automatizadas?     

4. ¿Cuáles son los principales procesos del trabajo de automatización de su empresa?     

5. ¿Qué puntos se deben considerar generalmente al formular un plan de prueba automatizado?     

6. ¿Cuáles son algunas especificaciones al escribir scripts de automatización?     

7. ¿Cuántos guiones de automatización puedes escribir en un día normal?     

8. ¿A qué indicadores debería prestar atención al realizar pruebas automatizadas?     

9. Algunos indicadores a los que prestar atención al realizar pruebas automatizadas     

10. ¿Pueden las pruebas automatizadas lograr una cobertura del 100%?     

11. ¿Qué problemas encuentra su empresa al realizar pruebas automatizadas?     

12. ¿Cuál es el protocolo utilizado por Selenium para controlar el navegador?     

13. ¿Qué componentes están incluidos en las herramientas de selenio?     

14. Hay varias formas de localizar elementos de una página web en Selenium.     

15. ¿Cómo se escribe la expresión xpath del elemento?     

16. Webdriver inicia declaraciones comunes del navegador     

17. Cómo determinar si un elemento se muestra en la página     

18. Cómo seleccionar la opción desplegable en la lista desplegable     

19. ¿Cómo maneja Selenium las ventanas emergentes?     

20. ¿Puede Selenium manejar ventanas emergentes?     

21. ¿Cuáles son los tiempos de espera comunes en el selenio?     

22. ¿Cuáles son los marcos de pruebas automatizados comunes?     

23. ¿Qué es el pompón?     

24. ¿Se pueden ubicar elementos ocultos o mostrados = ninguno en selenio?     

25. ¿Cómo garantizar la tasa de éxito de los elementos operativos en selenio? En otras palabras, ¿cómo garantizar que se pueda hacer clic en el elemento en el que hago clic?

26. Cómo mejorar la velocidad de ejecución de los scripts de Selenium     

27. Los casos de uso a menudo se vuelven inestables durante la operación, es decir, si pasa este tiempo, no pasará la próxima vez ¿Cómo mejorar la estabilidad de los casos de uso?

28. ¿Cuál es la estrategia de ejecución para sus casos de uso de automatización?     

29. ¿Qué es la integración continua?     

30. ¿Es necesario conectarse a la base de datos para verificar los datos durante las pruebas automatizadas?     

31. ¿Cuál de los atributos id, nombre, clase, xpath y selector css prefieres más y por qué?     

32. Cómo ubicar elementos cargados dinámicamente en la página     

33. Cómo localizar elementos cuyos atributos cambian dinámicamente     

34. Después de hacer clic en el enlace, ¿Selenium esperará automáticamente a que se cargue la página?     

35. ¿Qué protocolo de controlador web se utiliza al iniciar el navegador?     

36. ¿Cuál es el patrón de diseño de objetos de página?     

37. Cómo resaltar elementos después de posicionarlos (para fines de depuración)     

38. ¿Qué es una afirmación?     

39. Si estuviera seleccionando una solución de pruebas automatizadas, ¿qué idioma elegiría, java, js, python o ruby?     

40. En el modo de configuración de objetos de página, ¿es necesario agregar afirmaciones al método ubicado en la página?     

41. Cómo realizar un salto de página en el modo de diseño de objetos de página     

42. ¿De dónde provienen los casos de prueba automatizados?     

43. ¿Cuál crees que es el mayor defecto de las pruebas automatizadas?     

44. ¿Se puede utilizar webdriver para probar la interfaz?     

45. El sistema de prueba (arquitectura B/S) que se ha utilizado en la empresa se vuelve repentinamente inaccesible. Debe solucionar el problema y restaurarlo. Indíquenos su método de verificación.     


 

1. ¿Cómo implementar y promover las pruebas automatizadas en la empresa?

1. Elija proyectos a largo plazo con módulos estables
2. El equipo del proyecto investigó y seleccionó herramientas de automatización y celebró reuniones para demostrar casos de demostración. Demostramos principalmente el marco de selenio y robot.
amable.
3. Cree un marco de pruebas automatizado e implemente gradualmente la automatización en el proyecto.
4. Solidificar el proceso automatizado y el marco del proyecto en documentos.
5. Promocionar la aplicación entre otros equipos de proyecto de la empresa.

2. ¿Cómo escribir casos de prueba automatizados?

Las pruebas automatizadas se utilizan principalmente para pruebas de regresión, por lo que los casos de uso automatizados provienen de los casos de uso funcionales que escribimos, ya sean pruebas de interfaz o comerciales.
Casos de uso probados. Por lo tanto, filtraremos los casos de uso originales y seleccionaremos aquellos que deben probarse de forma automatizada, pero este proceso de implementación no
Es paso a paso. Los casos de uso automatizados deben diseñarse en función de los casos de uso originales. Por ejemplo, las funciones como la modificación de apodos deben implementarse en los casos de uso automatizados.
Ahora cada modificación es diferente a la última vez; de lo contrario, no se puede verificar si la modificación es correcta. Después de agregar dicho diseño, siga el guión.
Realizar el proceso de operación automática y realizar el juicio de resultados, es decir, afirmación.

3. ¿ Las pruebas automatizadas encuentran muchos errores ?

poco
Entonces, ¿cuál es el valor de las pruebas automatizadas ?, ¿cómo demostrar que no es un requisito falso ?
1. En comparación con la búsqueda de errores, las pruebas automatizadas son mejores para mantener funciones antiguas sin errores.
2. Después de introducir las pruebas automatizadas, puede reemplazar una gran cantidad de tedioso trabajo de pruebas de regresión, liberar a los evaluadores comerciales y, por lo tanto, permitir las pruebas comerciales.
La gente se centra en módulos complejos de funciones empresariales.
3. En términos generales, las funciones relativamente estables son más adecuadas para la automatización.
4. La automatización funcional utiliza interfaces tanto como sea posible y la automatización de aceptación utiliza de un extremo a otro.
5. Mejora de la eficiencia y frecuencia de las pruebas de regresión.
....

4. ¿ Qué marco se utilizó para las pruebas automatizadas en la empresa anterior ?

Puedes nombrar uno de los siguientes en los que eres bueno:
1.pytest+solicitudes+atractivo
2.python+selenio+pytest+encanto
3.robotframework+Selenium2Biblioteca

5. ¿Qué es la integración continua? ¿ Para qué se utiliza ?

La integración continua de CI se encuentra principalmente en el ámbito del desarrollo, que incluye: compilación > pruebas unitarias; está dirigida principalmente a los problemas causados ​​al integrar código nuevo.
(AKA: "Infierno de integración").
Principalmente relacionado con la tecnología git \ gestión de código
El objetivo del desarrollo de aplicaciones modernas es que varios desarrolladores trabajen simultáneamente en diferentes funciones de la misma aplicación. Sin embargo, si la empresa programa un día
Fusionar todo el código fuente de la sucursal en un día (llamado "día de fusión") puede terminar siendo una tarea manual, tediosa y que requiere mucho tiempo.
Finalizar. Esto se debe a que cuando un desarrollador que trabaja de forma independiente realiza cambios en la aplicación, es posible que otros desarrolladores estén realizando cambios al mismo tiempo.
cambios en el conflicto. ¿Qué pasaría si cada desarrollador personalizara su propio entorno de desarrollo integrado (IDE) local en lugar de dejar que el equipo
Un IDE basado en la nube empeorará el problema.
La integración continua (CI) ayuda a los desarrolladores a fusionar cambios de código con mayor frecuencia (a veces incluso a diario) en una rama compartida o "maestra".
Una vez que se combinan los cambios realizados por los desarrolladores en la aplicación, el sistema crea automáticamente la aplicación y ejecuta diferentes niveles de control automático.
Se utilizan pruebas automatizadas (normalmente pruebas unitarias y pruebas de integración) para verificar estos cambios y garantizar que no interrumpan la aplicación. este
Esto significa que el contenido de prueba cubre todo, desde clases y funciones hasta los diferentes módulos que componen toda la aplicación. Si las pruebas automatizadas descubren código nuevo y existente
Hay conflictos entre códigos y CI facilita la corrección rápida de esos errores.
La entrega continua de CD implica cooperación en desarrollo, pruebas y operación y mantenimiento, que incluye: construcción > implementación del entorno de prueba > pruebas (no implica un entorno de producción automático).
despliegue)
Después de completar el proceso automatizado de compilaciones y pruebas unitarias y de integración en CI, la entrega continua libera automáticamente el código verificado al repositorio.
Para lograr un proceso de entrega continua eficiente, es importante garantizar que la CI esté integrada en el proceso de desarrollo. El objetivo de la entrega continua es tener un
Implementar el código base en el entorno de producción.
En la entrega continua, cada fase (desde la combinación de cambios de código hasta la entrega de una compilación lista para producción) implica automatización de pruebas y generación de código.
Automatización de liberación de código. Al final del proceso, los equipos de operaciones pueden implementar rápida y fácilmente la aplicación en producción.
Esta etapa debe estar asociada con la prueba automatizada de la interfaz\ui

Automatización de la interfaz de usuario

1. ¿Cuáles son los tres tipos de espera en la automatización? ¿Cuáles son sus características?

1. Hilo en espera (espera forzada), como time.sleep (2): el hilo se ve obligado a dormir durante 2 segundos y, después de 2 segundos, se ejecuta el código posterior. Pocas sugerencias
usar.
2.imlicitlyWait (espera implícita) continuará buscando elementos dentro del rango de tiempo especificado hasta que se encuentre el elemento o se agote el tiempo de espera. Es un global
Configuración sexual, que se puede cambiar en cualquier momento y solo tiene efecto para el elemento de búsqueda.
3.WebDriverWait (espera explícita) suele ser un código de función que personalizamos y que se utiliza para esperar a que se cargue un elemento.
Éxito, luego continúe ejecutando el código posterior, que se puede implementar para cuadros emergentes js, iframes, nuevas ventanas, etc.

2. Método de posicionamiento en selenio*

id: obtiene elementos según la identificación y devuelve un solo elemento. El valor de la identificación es generalmente único;
nombre: posicionamiento basado en el atributo de nombre del elemento;
tagName: posicionamiento basado en el nombre de etiqueta del elemento;
className: posicionamiento basado en el valor de clase de estilo del elemento;
linkText: posicionamiento basado en el valor del texto del hipervínculo;
parcialLinkText: posicionamiento basado en el valor del texto parcial del hipervínculo;
cssSelector: posicionamiento del selector css;
xpath: ubicar por la ruta del elemento;
Prioridad más alta: identificación
Segunda prioridad: nombre
Priorizar de nuevo: selector CSS
Priorizar de nuevo: XPath

3. Tanto el posicionamiento xpath como css son relativamente poderosos , entonces, ¿cuál es la diferencia entre ellos ?

①El localizador CSS es más rápido que el localizador XPath porque css funciona junto con html y el principio que implementa es el principio de hacer coincidir objetos, mientras que
xpath funciona con xml y el principio que implementa es el principio de recorrido, por lo que en términos de diseño, css tiene mejor rendimiento
②Css puede coincidir directamente con parte de los atributos de clase, mientras que Xpath es consistente con los atributos ordinarios de la clase.
③xpath puede coincidir con elementos ancestrales, pero css no
④ Buscar elementos hermanos: CSS solo puede buscar elementos detrás del elemento (hermanos menores), pero no puede buscar hacia adelante (hermanos mayores).

4. ¿El script de prueba que escribe se puede ejecutar en diferentes navegadores?

Por supuesto, el caso de uso que escribí se puede ejecutar en los navegadores IE, Firefox y Google. La idea de implementación es encapsular un método, dividido en
No pases una cadena del navegador. Si pasas IE, usa IE. Si pasas Firefox, usa Firefox. Si pasas Chrome.
Simplemente use el navegador Chrome, y qué navegador usar se puede configurar en el archivo de configuración general ini. Cabe señalar que cada navegador
El controlador utilizado por el navegador es diferente.

5. ¿ Encontró algún problema durante el proceso de automatización? Por ejemplo

Esta pregunta se hará si se trata de automatización o de cualquier trabajo. Principalmente quiero saber cómo resolviste el problema, para inferir que preguntaste.
Habilidades de análisis y solución de problemas. Por supuesto, se han encontrado problemas y desafíos, principalmente los siguientes: Cambios frecuentes en la interfaz de usuario y modificaciones frecuentes de los objetos de la página.
El código dentro del caso de prueba informa y maneja errores, como que el elemento no es visible o no se puede encontrar. El script de prueba se reutiliza y se repite la mayor cantidad de código posible.
Problemas de posicionamiento con elementos de página generados por algunos marcos nuevos, como el editor ck, tablas dinámicas, etc.

6. ¿ Qué es el modo PO y por qué deberíamos utilizarlo?

PO es la abreviatura de patrón de objeto de página y es una idea de diseño que significa tratar una página como un objeto y los elementos de la página.
El método de operación entre elementos son los atributos y comportamientos de los objetos de la página. El modo PO generalmente utiliza una arquitectura de tres capas, que son: capa de encapsulación básica
BasePage, capa de objeto de página PO, capa de caso de prueba TestCase.
Para pruebas automatizadas simples de Selenium, todo lo que tenemos que hacer es encontrar elementos de la página y pasar valores a estos elementos. Pero si
Hay 10 scripts que llaman al mismo elemento de la página al mismo tiempo. Cuando este elemento cambia, necesitamos modificar 10 scripts. con el guion
A medida que aumenta el número de estudiantes de código, la complejidad temporal del trabajo también aumenta rápidamente. En este momento, podemos considerar diseñar una clase específicamente para buscar elementos de página.
Buscar, pasar valores y corregir. De esta manera, cuando cambia un elemento de la página, solo es necesario modificar una clase en lugar de 10 scripts al mismo tiempo.
Libro.
Page Object es un patrón de programación que transforma lo orientado a procesos en orientado a objetos ( objeto de página ) y convierte objetos de prueba (botones, entradas
Marco, título, etc.) y los pasos de prueba individuales se encapsulan en cada objeto de página y se administran en unidades de páginas.
De esta manera, en la página de prueba de Selenium, los elementos de la página se pueden obtener llamando a la clase de página, evitando así inteligentemente
Cuando la identificación o la ubicación cambian, es necesario cambiar el código de la página de prueba. Cuando la identificación del elemento de la página cambia, solo necesita cambiar la página en la clase de la página de prueba
propiedades. Puede reutilizar el código, reducir los costos de mantenimiento y mejorar la legibilidad y la eficiencia de la escritura del programa.
Problemas resueltos por POM :
Administre centralmente objetos y métodos de elementos página por página. Cuando los elementos o procesos de la página cambian, solo es necesario modificar los métodos de página relevantes
Sí, no es necesario modificar el script correspondiente.
Escribir guiones es fácil, simplemente siga la lógica empresarial y escriba los guiones. El modo de objeto de página utiliza cada paso de la lógica empresarial como punto de diferenciación.
El método de página representa una operación comercial de esta página y controla estrictamente el proceso posterior de esta operación.
Fácil de mantener más tarde
Antes de escribir una orden de compra, se recomienda dominar los siguientes puntos de conocimiento:
Uso básico de la biblioteca de selenio.
sintaxis xpath
pytest o prueba unitaria
Clases y herencia en orientación a objetos.
Como se mencionó anteriormente: el modo PO es una idea de diseño y hay varias formas de implementarlo en la codificación real. De hecho, también se recomienda
Cada uno codifica dinámicamente según la situación de sus propios proyectos. Específicamente, los modelos de órdenes de compra comunes incluyen:
1) Tres capas: capa de biblioteca de objetos + capa de caso + capa de página
2) Cuatro capas: capa de biblioteca de objetos + capa de caso + capa de página + clase pública

Automatización de interfaz

1. ¿Cómo se prueba la interfaz?

Puntos de prueba:
①.¿Tiene experiencia práctica en pruebas de interfaz?
②.¿Está familiarizado con el proceso de prueba de interfaz?
③.¿Está familiarizado con los pasos específicos de la prueba de interfaz?
④.¿Está familiarizado con el diseño de casos de prueba de interfaz?
Respuesta de referencia:
Primero comprenda las funciones comerciales de la interfaz, los parámetros de entrada y salida y el almacenamiento de datos correspondientes a la interfaz, y luego complete la prueba de la interfaz de acuerdo con el método de diseño del caso de prueba de la interfaz.
El diseño de pruebas, el diseño de casos de uso comienza con escenarios comerciales y luego el juicio de parámetros, como valores límite de parámetros, formatos, combinaciones, etc., y finalmente se basa en casos de prueba.
Los estudiantes de programación utilizan herramientas de prueba de interfaz para completar las pruebas de interfaz y verifican los registros y datos durante el proceso de prueba para garantizar la exactitud de los resultados de las pruebas de interfaz.

2. ¿Cómo realizar pruebas de interfaz sin documentación de interfaz?

Puntos de prueba:
Familiaridad con las pruebas de interfaz.
Pon a prueba las habilidades blandas
1. Si no hay un documento de interfaz, primero debe comunicarse con el desarrollo y luego organizar el documento de interfaz (escrito originalmente por el desarrollo, no hay forma de engañar a la audiencia)
Entrevistador, primero dígame que lo ha solucionado usted mismo)
2. No hay un documento de interfaz. Puede capturar paquetes para ver los parámetros de solicitud de la interfaz y luego comunicarse con el desarrollo si no los comprende.

3. ¿Cuáles son los puntos clave al escribir casos de prueba de interfaz?

Puntos de prueba:
Diseño de caso de prueba de interfaz
Respuesta de referencia:
1) Campos obligatorios: parámetros de solicitud obligatorios y opcionales
2) Legalidad: parámetros legales e ilegales de entrada y salida.
3) Límite: solicitar valor de límite del parámetro, etc.
4) Tolerancia a fallos: procesamiento de datos de gran capacidad, solicitudes frecuentes, solicitudes repetidas (como pedidos), redes anormales, etc.
5) Verificación de datos de respuesta: las afirmaciones y la extracción de datos se pasan a la interfaz del siguiente nivel...
6) Verificación lógica: si las dos interfaces solicitadas tienen una secuencia estricta, es necesario probar el orden inverso.
7) Rendimiento: simule pruebas simultáneas de interfaces, aumente gradualmente la presión y analice los puntos de cuello de botella.
8) Seguridad: cree solicitudes de caracteres maliciosos, como inyección SQL, XSS, información confidencial, lógica empresarial (como omitir ciertos pasos clave)
pasos; manipulación de datos sensibles sin verificación)

4. Cómo manejar los parámetros de cifrado en las pruebas de interfaz

Puntos de prueba:
①.¿Está familiarizado con los métodos de cifrado y descifrado?
② Si tiene la capacidad de procesar parámetros de cifrado
③ Si se ha aplicado realmente
Respuesta de referencia:
Primero, comprenda los métodos de cifrado y descifrado de los parámetros. Los más comunes incluyen md5, aes, rsa, etc. Si es aes, debe solicitarle al desarrollador la clave privada. Si es así
rsa necesita encontrar la clave pública y la clave privada del desarrollador, y luego citar el código de cifrado y descifrado en la herramienta de prueba de interfaz para implementar el proceso de cifrado y descifrado de parámetros, e implementar el proceso de cifrado y descifrado de parámetros.
Procesamiento de cifrado y descifrado digital; si la empresa tiene un algoritmo de cifrado personalizado, necesita desarrollar el código para implementar el cifrado y descifrado, y luego usarlo en la herramienta de prueba.
usar.

5. Preguntas sobre la aplicación de la interfaz

Pregunta 1: Al diseñar casos de prueba de interfaz, se involucra el sistema de comercio electrónico, que incluye muchas modificaciones, como productos, comerciantes, tiendas, etc.
La modificación de estos datos implicará muchos parámetros. Como el nombre del producto, el tamaño del producto, el color del producto, etc. Luego en el diseño
Al "modificar" la interfaz, ¿cómo puedo determinar qué parámetros pasar? ¿Necesito pasar solo los parámetros que quiero modificar o todos los parámetros?

5. La diferencia entre sincrónico y asincrónico

Puntos de prueba:
①.Examinar la comprensión del mecanismo de comunicación de interfaz en la empresa.
②.Examinar los principios de la comunicación sincrónica y la comunicación asincrónica.
Respuesta de referencia:
La sincronización y la asincronía son métodos de comunicación.
Sincronización: al realizar una operación, debe esperar a que se complete su procesamiento antes de continuar con la siguiente operación.
Asíncrono: al realizar una operación, no es necesario esperar un retorno antes de pasar a la siguiente operación. Generalmente se requiere middleware de mensajes.
Ejemplo:
En la interfaz de pedido, es necesario llamar a la interfaz de inventario para realizar un juicio de inventario, por lo que debe esperar a que la interfaz de inventario devuelva datos antes de continuar con el siguiente paso.
Es sincronización;
En la interfaz de pedido, debe llamar a la interfaz de notificación por correo electrónico después de que el pedido se haya realizado correctamente. No necesita esperar a que la interfaz vuelva a ser exitosa y puede continuar directamente con el siguiente paso.
Esto es asíncrono

6. Cómo ensamblar casos en pytest

Puntos de prueba:
Examinar la capacidad de usar pytest para organizar casos
Respuesta de referencia:
1. De forma predeterminada, verifique el nombre del archivo llamado test_.py o **test.py, busque el método o función que comience con test dentro del archivo y ejecútelo.
DE ACUERDO
2. Puede usar marcadores personalizados (etiquetas). Por ejemplo, cuando se ejecuta pytest, solo ejecutará casos de prueba con este marcador, como el siguiente
@pytest.marca.P0
3. En el archivo de configuración pytest.ini, puede manejar los casos en los que se ejecuta pytest. Por ejemplo, si desea ejecutar un caso de uso en un directorio determinado, ejecute
Un archivo de script, etc.

7. Hablemos de la función de enlace en pytest.

Puntos de prueba:
conceptos básicos de pytest
Respuesta de referencia:
Varios ganchos de uso común:
pytest_runtest_makereport (item, call): procesamiento de informes de prueba, como capturas de pantalla de fallas
pytest_collection_modifyitems(items): llamado después de la recopilación de casos, puede personalizar el orden de los elementos u otras funciones
pytest_addoption (parser): agrega parámetros personalizados a la línea de comando, como especificar el nombre del navegador
 

er2

 

1. Cómo funciona el apio

Esta pregunta examina el principio de funcionamiento del appium.
El principio de funcionamiento del appium debe explicarse en muchos aspectos.
Androide:

1.1 appuim se basa en el principio de uiautomator2

Una vez iniciado el servicio Appium, se crea un servicio http en el puerto 4723 de forma predeterminada y el script pasa la dirección del servicio http://xxxx:4723/wd/hub.
Comunicarse con apio
En el proceso de conexión del script de inicialización y appium, appium instalará la aplicación auxiliar uiautomator2.server.apk y
uiautomator2.server.test.apk, y realice el reenvío de puertos adb forward tcp 8200 tcp 6790, estará en el teléfono móvil después de la instalación
Inicie el servidor de uiautomator2. Una vez iniciado el servidor, se creará un servidor netty en el teléfono móvil y el puerto es 6790.
Appium se comunica con el puerto 6790 del servidor uiautomator2 en el teléfono móvil y pasa las instrucciones del script recibidas desde el puerto 4723 a través de
Reenviar el puerto 8200 al puerto 6790 del teléfono móvil

1.2 Appium se basa en el principio de uiautomator1

Una vez iniciado el servicio Appium, se crea un servicio http en el puerto 4723 de forma predeterminada y el script pasa la dirección del servicio http://xxxx:4723/wd/hub.
Comunicarse con apio
Durante el proceso de conexión del script de inicialización y appium, appium enviará AppiumBootstrap.jar al teléfono móvil y realizará el reenvío de puertos.
adb forward tcp 4724 tcp 4724. Después de la instalación, AppiumBootstrap.jar se iniciará en el teléfono móvil. Después del inicio, se creará AppiumBootstrap.jar en el teléfono móvil.
Cree un servicio de socket, el puerto es 4724, appium se comunica con el puerto 4724 del servicio de socket en el teléfono móvil, cambie el puerto de 4723 a
Las instrucciones del script recibidas se reenvían al puerto 4724 del teléfono móvil a través del puerto 4724.

1.3 Appium se basa en el principio de chromedriver y se utiliza al probar H5

Una vez iniciado el servicio Appium, se crea un servicio http en el puerto 4723 de forma predeterminada y el script pasa la dirección del servicio http://xxxx:4723/wd/hub.
Comunicarse con apio
Durante el proceso de conexión del script de inicialización y appium, se iniciará chromedriver para crear un servicio http, el puerto es 8000, appium
Comuníquese con el servicio chromedriver a través del puerto 8000, y el servicio chromedriver opera el teléfono móvil después de recibir el comando appium.
Una vez completada la operación, regresa a appium y appium regresa al script.

1.4 teléfono móvil IOS:

Una vez iniciado el servicio Appium, se crea un servicio http en el puerto 4723 de forma predeterminada y el script pasa la dirección del servicio http://xxxx:4723/wd/hub.
Comunicarse con apio
Durante el proceso de conexión del script de inicialización y appium, la aplicación webdriveragent se compilará e instalará en el teléfono móvil y se iniciará wda en el teléfono móvil.
Cree un servicio http basado en 8100. Appuim recibe las instrucciones pasadas por el script a través del puerto 4723. Luego, Appium pasa el servicio local
El puerto 8100 reenvía las instrucciones recibidas al servicio wda 8100 del teléfono móvil. El servicio wda recibe las instrucciones y luego opera la aplicación bajo prueba. Una vez completada la operación
Una vez completada, el resultado de la operación se devuelve a appium y appium devuelve el resultado al script.

2. El formato de respuesta de la interfaz es json , ¿cómo analizarlo usando código? Si no

¿Cómo analizar usando una biblioteca de terceros?

Code Classmate tiene muchos paquetes de terceros para analizar json en pruebas automatizadas de Java, como fastjson, gson, etc. Si no utiliza un tercero,
Es necesario utilizar el método de procesamiento de cadenas nativo de Java, por ejemplo, una cadena json es
{"name":"shamo","age":18,"job":"tester"} se puede desensamblar mediante segmentación de cadenas y reemplazo para obtener un carácter
El valor correspondiente al segmento.

3. ¿Cómo utilizar el oyente de Testng? Los rendimientos basados ​​en datos de TestNg

¿Qué es?

El uso de los oyentes de Testng en la automatización se centra principalmente en capturas de pantalla fallidas y reintentos fallidos.
El reintento fallido debe implementar dos interfaces IRetryAnalyzer e IAnnotationTransformer
Las capturas de pantalla fallidas deben implementar ITestListener
Después de la implementación, debe agregar una etiqueta de escucha al archivo de configuración testng.
El resultado de retorno basado en datos de Testng es una matriz bidimensional, por lo que cuando se realiza en función de datos, no importa si nuestros datos existen en Excel o XML.
O en medios de almacenamiento como bases de datos, eventualmente necesitamos convertirlos en matrices bidimensionales.

4. Presente brevemente la estructura del marco general del proyecto de automatización.

El marco de pruebas automatizadas cubre la encapsulación de métodos básicos, la encapsulación de excepciones personalizadas, la encapsulación de clases de herramientas, la encapsulación de gestión de elementos y la encapsulación de patrones de objetos de página.
Instalación, encapsulación de registros, encapsulación de gestión de datos, encapsulación de reintento de fallas, encapsulación de adaptación de navegador/teléfono móvil, encapsulación de operaciones de bases de datos, gestión de casos de prueba
Embalajes, informes de pruebas, etc.

5. ¿ Cuáles son las similitudes y diferencias entre la espera explícita y la espera implícita en la automatización?

1. Lo mismo ocurre con la espera inteligente, que busca continuamente elementos dentro de un determinado rango de tiempo, una vez encontrado, finaliza inmediatamente la búsqueda y continúa ejecutando el código.
Se encontrará hasta que se agote el tiempo.
2. La diferencia es que la espera implícita es una configuración global y se puede cambiar en cualquier momento. Después del cambio, tendrá efecto en los métodos findxxx posteriores.
No funciona para operaciones como hacer clic, escribir y deslizar;
La espera explícita solo tiene efecto para un único elemento o grupo, y no solo para la búsqueda, sino también para elementos especiales como viñetas o marcos.
Funciona en casos especiales y también puede realizar juicios personalizados para ciertos atributos de elementos.

6. ¿ Qué anotaciones hay en Testng?

Hay 9 anotaciones básicas en el marco de pruebas unitarias de Testng, BeforeSuit/AfterSuit, BeforeTest/AfterTest,
BeforeClass/AfterClass, BeforeMethod/AfterMethod, Test, las anotaciones más especiales son
BeforeMethod/AfterMethod, su significado es que se ejecutará antes y después de que se ejecute cada anotación @Test

7. ¿Cómo se asocia la herramienta Jmeter entre interfaces, una breve descripción?

La asociación de interfaz significa que una interfaz utiliza el valor de retorno de otra interfaz como parámetro, lo que se denomina asociación en jmeter.
Hay muchas formas de implementar asociaciones:
Utilice un extractor de expresiones regulares para obtener un determinado valor en el resultado de la respuesta de la solicitud anterior, guárdelo en una variable y luego utilice la siguiente interfaz
referencia usando variables
Utilice el extractor json para obtener un determinado valor en el resultado de la respuesta de la solicitud anterior, guárdelo en una variable y luego utilice la variable en la siguiente interfaz
hacer una referencia
Utilice el posprocesador Beanshell para analizar los resultados de la respuesta y almacenarlos en variables, y luego utilice las variables como referencia en la siguiente interfaz.
La asociación de grupos entre subprocesos requiere configurar el campo de asociación como un atributo global.

8. ¿ Qué proporción de automatización y trabajo manual representa el negocio de su empresa? usado respectivamente

¿Qué negocio haces?

En primer lugar, la proporción de automatización y trabajo manual en cada empresa depende de la inversión en pruebas automatizadas, para responder a esta pregunta se recomienda preparar buenos datos, por ejemplo, el nuestro.
Pruebas funcionales
Hay un total de 1000 casos de uso, se analizan 300 casos de uso de automatización a implementar y se determina la proporción de automatización. Entonces, ¿qué pruebas
El caso de uso será
Se utiliza para automatización, casos de uso de módulos estables y casos de uso con alta prioridad funcional. Las pruebas manuales se utilizan generalmente para la automatización y pruebas de nuevas funciones comerciales.
generalmente solía hacer
Se utilizan funciones antiguas para volver al negocio.

9. Cómo garantizar la estabilidad de las pruebas automatizadas.

La estabilidad de las pruebas automatizadas se refleja principalmente en dos aspectos: uno es el problema del posicionamiento de los elementos y el otro es el problema de dependencia entre casos de uso. Los elementos están determinados.
pequeña pregunta puede
Utilice la espera inteligente para evitar esto tanto como sea posible; las dependencias de los casos de uso pueden desacoplar la relación entre los casos de uso para que cada caso de uso comience desde una página común.
cara a cara
Bien, como la página de inicio, esto requiere un posprocesamiento en el marco de prueba para que cada caso de uso regrese a la página de inicio después de la ejecución.

10. ¿Cuál es la diferencia entre cookie y sesión ?

El seguimiento de sesiones es una tecnología comúnmente utilizada en programas web para rastrear toda la sesión del usuario.
La cookie determina la identidad del usuario registrando información en el lado del cliente y la sesión determina la identidad del usuario registrando información en el lado del servidor.
la diferencia:
1. Las ubicaciones de almacenamiento de datos son diferentes:
Los datos de las cookies se almacenan en el navegador del cliente y los datos de la sesión se almacenan en el servidor.
2. Diferentes niveles de seguridad:
Las cookies no son muy seguras. Otros pueden analizar las cookies almacenadas localmente y engañar a las cookies. Por razones de seguridad, deben usarse.
sesión.
3. Diferentes niveles de uso del rendimiento:
La sesión se guardará en el servidor durante un período de tiempo determinado. Cuando el acceso aumenta, consumirá más rendimiento de su servidor. Considere reducir la carga en el servidor.
Para fines de rendimiento, se deben utilizar cookies.
4. Los tamaños de almacenamiento de datos son diferentes:
Los datos guardados por una sola cookie no pueden exceder los 4K. Muchos navegadores limitan un sitio a guardar hasta 20 cookies, mientras se guarda la sesión.
Se almacena en el lado del servidor y el navegador no tiene restricciones.

11. Cómo construir los datos en los que se basan los casos de uso en las pruebas automatizadas

Ya sea que se trate de automatización de interfaz o automatización de UI, existirá el problema de cómo el caso de automatización depende de la estructura de datos, que se puede considerar desde tres aspectos.
Considere, el primero es
Use la interfaz para construir los datos requeridos antes de realizar la prueba; el segundo es usar SQL de inicialización para inicializar los datos, pero si la estructura de la tabla es compleja
palabras, editor sql
Escribir código también requiere una carga de trabajo relativamente grande; la tercera forma es preparar un conjunto de datos con anticipación y hacer una copia de seguridad de la base de datos correspondiente a los datos.
Cada vez después de eso
Antes de ejecutar la prueba, haga una copia de seguridad de los datos de la base de datos actual, luego importe los datos de la prueba anterior y luego ejecute la prueba. Después de ejecutar la prueba, restaure los datos originales.
de acuerdo a

12. Cómo implementar pruebas en múltiples navegadores o múltiples teléfonos móviles

La automatización del lado web generalmente usa el método de cuadrícula de Selenium para implementar pruebas de múltiples navegadores y también puede usar la configuración de subprocesos múltiples de Testng.
manera de lograr
Pruebas locales de diferentes navegadores, el propio appium también admite pruebas multidispositivo en el lado móvil. Cabe señalar que un dispositivo debe corresponder a uno
solicitud
Los servicios también se pueden probar usando el método grid o multidispositivo local; o todos ellos se implementan usando el método multinodo de jenkins.

13. ¿Cómo realizar la prueba cuando se encuentra la redirección de la interfaz durante la prueba de la interfaz?

En primer lugar, el método de procesamiento es diferente si el método de prueba de la interfaz es diferente. Si usa jmeter, no se requiere ningún procesamiento especial y jmeter manejará automáticamente el reinicio de forma predeterminada.
A la interfaz desde
Inicie el acceso a la dirección de la interfaz redirigida y devuelva el resultado; si se utiliza el marco del código, se requiere un procesamiento especial y el primero
respuesta de la interfaz
La dirección de interfaz correspondiente al campo de ubicación en el encabezado inicia una solicitud a esta dirección.

14. La interfaz depende de la interfaz de terceros, pero hay un problema con la interfaz de terceros.

¿administrar?

En este caso, usaremos simulacros para simular el regreso de la interfaz de terceros, pero tenga en cuenta que este tipo de simulacros generalmente requiere desarrollo y configuración.
Juntos, dirija la llamada de interfaz de su empresa al servicio de interfaz simulado.

15. En la interfaz estándar de Restful, ¿qué tipos de métodos de solicitud existen y representan?

Qué significa

En la interfaz estándar tranquila, una URL generalmente representa un recurso y la operación del recurso se implementa a través del método de solicitud http.
hay conseguir,
Hay cuatro métodos para publicar, colocar y eliminar: obtener significa obtener datos, publicar significa agregar nuevos datos, poner significa modificar datos y eliminar significa eliminar.
borrar datos

16. ¿Qué escenarios de automatización web requieren un procesamiento especial?

1. elemento iframe. Cuando el elemento a operar está en el iframe, debe cambiar el controlador al iframe antes de poder operarlo. El método de cambio es:
Se requieren cuatro tipos, a través de identificación, nombre, índice, objeto de elemento iframe y varias conversiones al cambiar entre múltiples iframes.
2. Se abre una nueva ventana. Cuando el elemento a operar está en una página con una nueva ventana abierta, primero debe cambiar el controlador a la nueva ventana.
Capaz de operar
3. Control de tiempo, generalmente el control de tiempo solo se puede seleccionar y no se puede ingresar, luego puede usar js para modificar la propiedad de solo lectura del control de tiempo y luego
Ingrese nuevamente o use js para modificar directamente el valor del control de tiempo.
4. Los elementos que no están en el campo de visión actual deben desplazarse para que aparezcan. Puede usar js para desplazarse, pero a veces hay varias barras de desplazamiento js en la interfaz.
no será válido, primero debe colocar el cursor en el área de la barra de desplazamiento y luego simular las teclas arriba, abajo, izquierda y derecha del teclado para operar

17. ¿Qué hacer si no se puede ubicar el ícono de desbloqueo por gestos en la aplicación?

En circunstancias normales, se puede ubicar el elemento grande desbloqueado por el teléfono móvil, luego se puede ubicar primero el elemento grande y luego obtener las coordenadas del punto de partida y la longitud del elemento.
y ancho, a través
Codifique las coordenadas de los compañeros de clase para calcular las coordenadas de los 9 puntos necesarios para el desbloqueo de gestos y luego llame al método press.moveTo.moveTo en TouchAction para implementarlo.
Desbloqueo por gestos
 

selenio

1. ¿Cómo determinar si existe un elemento en el selenio?     

esElementoPresente

2. ¿Qué son las pruebas automatizadas y cuáles son las ventajas de las pruebas automatizadas?     

Las pruebas que reemplazan el proceso de ejecución de pruebas manuales a través de herramientas o scripts se denominan pruebas automatizadas.Ventajas de las pruebas automatizadas: 1. Reducir los costos de las pruebas de regresión 2. Reducir los costos de las pruebas de compatibilidad 3. Mejorar la velocidad de retroalimentación de las pruebas 4. Mejorar la cobertura de las pruebas 5. Dejar que los ingenieros de pruebas Hacer pruebas más significativas

3. ¿Qué tipo de proyectos son más adecuados para pruebas automatizadas y qué tipos de proyectos no son adecuados para pruebas automatizadas?     

Proyectos adecuados: 1. El ciclo del proyecto es largo y relativamente estable 2. Requiere pruebas de humo frecuentes 3. Requiere pruebas de regresión frecuentes 4. Requiere pruebas basadas en datos con grandes cantidades de datos Proyectos no adecuados para: 1. Ciclo de proyecto Los casos de uso cortos no se puede ejecutar varias veces 2. El proyecto bajo prueba es inestable y cambia con demasiada frecuencia.

4. ¿Cuáles son los principales procesos del trabajo de automatización de su empresa?     

1. Seleccionar herramientas de prueba apropiadas 2. Definir el alcance de la cobertura de pruebas automatizadas 3. Desarrollar un plan de pruebas 4. Construir un entorno de pruebas automatizado 5. Desarrollo de scripts 6. Ejecución de pruebas 7. Mantenimiento de scripts de pruebas

5. ¿Qué puntos se deben considerar generalmente al formular un plan de prueba automatizado?     

1. Elija una herramienta de prueba adecuada o analice si la herramienta actual es adecuada para el nuevo proyecto 2. Elija un marco de prueba automatizado adecuado 3. Determine el alcance de las pruebas automatizadas y el alcance de las pruebas no automatizadas 4. Preparación y construcción del entorno de prueba 5. Desarrollar un cronograma aproximado de desarrollo de scripts 6. Desarrollar algunas estrategias para la ejecución de scripts, como la frecuencia de las pruebas de humo, el momento y la frecuencia de las pruebas de regresión, etc. 7. Definir el resultado de las pruebas automatizadas, como los scripts , datos de prueba y defectos descubiertos, informe de prueba, etc.

6. ¿Cuáles son algunas especificaciones al escribir scripts de automatización?     

1. Convenciones de nomenclatura unificadas, como nombres de casos de uso, nombres de métodos, etc. 2. Buenos comentarios de script 3. Seguir las especificaciones del código y utilizar la sangría adecuada 4. Manejar excepciones

7. ¿Cuántos guiones de automatización puedes escribir en un día normal?     

Esto depende de la complejidad del escenario del caso de prueba. Generalmente, puede escribir entre 2 y 5 casos de prueba por día. Si es complejo, solo puede escribir uno por día.

8. ¿A qué indicadores debería prestar atención al realizar pruebas automatizadas?     

1. Cobertura de casos de prueba automatizados = número de casos de prueba automatizados/número total de casos de uso utilizados. Cuanto mayor sea la proporción, más rápida será la retroalimentación de la prueba y mayor será el ahorro de costos. 2. Ahorro de tiempo = tiempo dedicado a pruebas manuales - tiempo invertido en pruebas automatizadas Tiempo 3. Inversión en pruebas automatizadas = inversión en desarrollo de scripts + inversión en mantenimiento de scripts + precio de la herramienta 4. Número de defectos descubiertos por las pruebas automatizadas El número de defectos y el número de pruebas fallidas descubiertas por las pruebas automatizadas durante cada La prueba de regresión refleja la efectividad de los casos de uso automatizados.

9. Algunos indicadores a los que prestar atención al realizar pruebas automatizadas     

Relación entrada-salida de pruebas automatizadas: ROI = (coste de las pruebas manuales - costo de las pruebas automatizadas) / costo de las pruebas automatizadas. Si el ROI es negativo, significa que el costo de las pruebas automatizadas no se ha recuperado. Si el ROI es positivo, significa que el costo de las pruebas automatizadas se ha recuperado y el valor es mayor que Más grande significa mejores retornos

10. ¿Pueden las pruebas automatizadas lograr una cobertura del 100%?     

Es difícil porque algunos escenarios de casos de uso no se pueden automatizar. Algunos casos de uso que verifican la facilidad de uso y la facilidad de uso no son adecuados para la automatización. Algunos casos de uso marginales rara vez se repiten y no son adecuados para la automatización en términos de relación entrada-salida.

11. ¿Qué problemas encuentra su empresa al realizar pruebas automatizadas?     

1. El proceso del proyecto no está estandarizado y los cambios frecuentes en el proyecto generan altos costos de mantenimiento para los casos de uso automatizados Solución: comprender profundamente las necesidades del usuario, estandarizar el proceso de desarrollo y utilizar casos de uso automatizados para cubrir primero las funciones que ya son estables. 2. Las expectativas sobre la automatización son demasiado altas. La automatización también es un proceso de mejora gradual y es imposible reemplazar completamente el trabajo manual de una vez. 3. Algunos ingenieros de automatización tienen habilidades técnicas débiles. Mejoren sus habilidades de programación, mejoren su capacidad de uso. herramientas de automatización y capacitar a nuevas personas.

12. ¿Cuál es el protocolo utilizado por Selenium para controlar el navegador?     

protocolo jsonwire

13. ¿Qué componentes están incluidos en las herramientas de selenio?     

selenio IDE, webdriver, selenio GRID

14. Hay varias formas de localizar elementos de una página web en Selenium.     

Hay ocho ID NOMBRE NOMBRE DE CLASE TEXTO DE ENLACE ENLACE PARCIAL TEXTO NOMBRE DE ETIQUETA XPATH SELECTOR CSS

15. ¿Cómo se escribe la expresión xpath del elemento?     

Generalmente, usted mismo escribe la expresión XPath y luego usa el gadget try xpath para verificar si la expresión XPath es correcta. También puede usar Google y Firefox para presionar F12 y hacer clic con el botón derecho en copiar.

16. Webdriver inicia declaraciones comunes del navegador     

controlador = webdriver.FirefoxFDriver() controlador = webdriver.ChromeDriver() controlador = webdriver.internetExplorerDriver()

17. Cómo determinar si un elemento se muestra en la página     

El método isdisplayed() en la clase webelement

18. Cómo seleccionar la opción desplegable en la lista desplegable     

//seleccionamos selectByVissbleText

19. ¿Cómo maneja Selenium las ventanas emergentes?     

Debe utilizar driver.switchTo().alert(): alert.accpt() equivale a hacer clic en el botón Aceptar de la ventana emergente alert.dismiss() equivale a hacer clic en el botón cancelar de la ventana emergente

20. ¿Puede Selenium manejar ventanas emergentes?     

Selenium por sí solo no puede manejar ventanas emergentes, pero Selenium puede usar el gadget Autolt para completar la operación de ventanas emergentes.

21. ¿Cuáles son los tiempos de espera comunes en el selenio?     

Espera fija forzada Espera implícita global Esperar la visualización de un elemento o estado específico Esperar la diferencia entre driver.quit() y driver.close() driver.close() solo cierra la página en la que el usuario actual está operando driver.quit () Cerrar todo el navegador, cerrar todas las páginas

22. ¿Cuáles son los marcos de pruebas automatizados comunes?     

Marco de script lineal, marco basado en datos, marco basado en palabras clave, marco híbrido, etc.

23. ¿Qué es el pompón?     

Es un patrón de diseño con la ventaja de reutilizar código, reducir la escritura repetitiva de código y reducir los costos de mantenimiento. Cuando la interfaz de usuario de la página cambia, solo se puede realizar un cambio.

24. ¿Se pueden ubicar elementos ocultos o mostrados = ninguno en selenio?     

no puedo

25. ¿Cómo garantizar la tasa de éxito de los elementos operativos en selenio? En otras palabras, ¿cómo garantizar que se pueda hacer clic en el elemento en el que hago clic?

     - Agregar elemento de tiempo de espera inteligente driver.implicitly_wait(30) - Pruebe el método para posicionar id, nombre, clase, ruta x, selector css de diferentes maneras. Si el primer método falla, puede probar automáticamente el segundo - Selenium garantiza que el La tasa de éxito de los elementos es A través del posicionamiento de elementos, por supuesto que existen muchos métodos de posicionamiento y debe haber uno adecuado. Sin embargo, en el proceso de implementación de la ingeniería de automatización, las pruebas automatizadas de alta calidad no solo las garantizan los probadores. Los desarrolladores deben estandarizar los hábitos de desarrollo, como agregar nombres únicos, identificadores, etc. a los elementos de la página, lo que puede mejorar en gran medida la precisión del posicionamiento de los elementos. Por supuesto, si los desarrolladores no estandarizan su desarrollo, deberíamos intentar utilizar el posicionamiento relativo de la dirección al posicionar elementos, lo que puede reducir el impacto del posicionamiento de los elementos en los cambios de página. Siempre que nuestros elementos estén colocados con precisión, podemos garantizar que cada operación que realizo cumpla con mis expectativas.

26. Cómo mejorar la velocidad de ejecución de los scripts de Selenium     

La velocidad de ejecución de los scripts de Selenium se ve afectada por muchos factores, como la velocidad de la red, la complejidad de los pasos de la operación, la velocidad de carga de la página, el tiempo de espera que configuramos en el script, la cantidad de subprocesos que ejecutan el script, etc. Por lo tanto, no podemos perseguir unilateralmente la velocidad de carrera, debemos garantizar la estabilidad y la clave es poder implementar pruebas de regresión de manera estable. Podemos mejorar la velocidad desde los siguientes aspectos: 1. Reducir los pasos de operación: si se necesitan tres o cuatro pasos para abrir la página que queremos probar, podemos abrirla directamente a través de la URL para reducir operaciones innecesarias. En segundo lugar, interrumpa la carga de la página. Si la página carga demasiado contenido, podemos verificar el motivo de la carga lenta. Si el contenido cargado no afecta nuestra prueba, establezca un tiempo de espera e interrumpa la carga de la página. En tercer lugar, al configurar el tiempo de espera, puedes dormir durante un tiempo fijo, o puedes detectar la aparición de un determinado elemento e interrumpir la espera para aumentar la velocidad. Cuarto, configure testNG para implementar subprocesos múltiples. Al escribir casos de prueba, asegúrese de lograr un acoplamiento flexible y luego, si el servidor lo permite, intente configurar la ejecución de subprocesos múltiples para mejorar la velocidad de ejecución.

27. Los casos de uso a menudo se vuelven inestables durante la operación, es decir, si pasa este tiempo, no pasará la próxima vez ¿Cómo mejorar la estabilidad de los casos de uso?

- time.sleep() - driver.implicitly_wait(30) - Utilice try para detectar y manejar excepciones - En este momento, debemos analizar la causa de la inestabilidad y luego resolver el problema de manera específica. Los aspectos principales son los siguientes: 1. Problema de velocidad de Internet: En ocasiones la página web carga lentamente y los elementos a operar no se muestran cuando se ejecuta el programa. Esta situación es relativamente común. Si lo ejecuta una vez y la velocidad de la red es buena, pasará. Si lo ejecuta nuevamente, la página no se abrirá, por lo que no pasará. Para mejorar la estabilidad, solo podemos sacrificar el tiempo de ejecución, agregar tiempo de espera antes de los elementos que a menudo no se detectan y esperar a que aparezca el elemento a operar antes de realizar las siguientes operaciones. En segundo lugar, el motivo de Selelnium: todavía existe una diferencia entre Selenium 1.0 y 2.0. Algunas funciones a veces son efectivas y otras no válidas cuando se ejecutan en 2.0. Este es el caso de la función mouseover(), debemos evitar el uso de dichas funciones. En tercer lugar, cuando los casos de prueba son multiproceso, se afectan entre sí. Aunque el subproceso múltiple se ejecuta más rápido, si el acoplamiento entre casos de uso no está bien diseñado, también se verá afectado. Si el caso de uso A se ejecuta antes que el caso de uso B, afectará el caso de uso B, y viceversa, no hay problema. En este caso, si su proyecto de prueba automatizado va a ser de subprocesos múltiples, debe aflojar el acoplamiento de los casos de prueba con anticipación e intentar hacerlo irrelevante, porque el orden de ejecución de los subprocesos múltiples no está controlado.

28. ¿Cuál es la estrategia de ejecución para sus casos de uso de automatización?     

La estrategia de ejecución de los casos de prueba automatizados depende del propósito de las pruebas automatizadas. Generalmente existen las siguientes estrategias: 1. Los casos de prueba automatizados se utilizan para el monitoreo. Para este propósito, configuramos los casos de prueba automatizados para que se ejecuten periódicamente. Si se ejecuta cada cinco minutos o una hora, simplemente cree una tarea cronometrada en jenkins. En segundo lugar, casos de uso que deben devolverse. Algunos casos de prueba, como los casos de prueba de BVT, debemos retroceder y ejecutar antes de que se active cualquier cambio en los productos de la empresa. Luego configuramos los casos de prueba para activar la ejecución y vinculamos nuestras tareas de prueba automatizadas a las tareas de desarrollo en Jenkins. Cuando los desarrolladores codifiquen en el entorno de simulación, nuestros casos de prueba automatizados se activarán y ejecutarán. En tercer lugar, casos de prueba que no necesitan ejecutarse con frecuencia. Al igual que los casos de prueba completos, no necesitamos volver a la ejecución todo el tiempo, después de todo, todavía consume tiempo y algunas líneas de negocios no principales no necesitan regresar de vez en cuando. Usamos la ejecución manual para este tipo de casos de prueba, creamos una tarea en Jenkins y la construimos manualmente cuando es necesario ejecutarla.

29. ¿Qué es la integración continua?     

La integración continua se origina en Extreme Programming (XP) y es una práctica de software. El paso de integración en el proceso de desarrollo de software es un proceso largo e impredecible. Puede ocurrir una gran cantidad de problemas durante el proceso de integración, por lo que el proceso de integración debe ser lo más pequeño y numeroso posible. De hecho, la integración continua se trata de integrar software constantemente. La integración continua, en su forma más simple, incluye una herramienta para monitorear los cambios en el control de versiones (SVN, etc.). Esta herramienta compila y prueba automáticamente su aplicación cuando se descubren cambios.

30. ¿Es necesario conectarse a la base de datos para verificar los datos durante las pruebas automatizadas?     

- No se requiere automatización de la interfaz de usuario

-Se requerirán pruebas de interfaz

31. ¿Cuál de los atributos id, nombre, clase, xpath y selector css prefieres más y por qué?     

Se pueden ubicar casi todos los elementos de CSS y XPATH.

32. Cómo ubicar elementos cargados dinámicamente en la página     

Activar el evento de elemento de carga dinámica hasta que aparezca el elemento dinámico y posicionarlo

33. Cómo localizar elementos cuyos atributos cambian dinámicamente     

Posicionamiento xpath o css a través de hermanos, padres e hijos.

34. Después de hacer clic en el enlace, ¿Selenium esperará automáticamente a que se cargue la página?     

Servirá

35. ¿Qué protocolo de controlador web se utiliza al iniciar el navegador?     

http

36. ¿Cuál es el patrón de diseño de objetos de página?     

Para lugares con funciones similares, los códigos son básicamente los mismos. Se cambia el método de búsqueda de elementos de la interfaz. El método xpath original se cambia al método de búsqueda de id. Es necesario modificar cada script de caso de uso. Aunque no hay carga de trabajo para un Hay pocos casos de uso, pero repetir el código findElement nos ha hecho sentir que el código es engorroso. Si algunas posiciones cambian, tendremos que ajustar la posición de los elementos en todo el código de prueba, lo que hará que nuestro script sea difícil de mantener más adelante. Por lo tanto, a través del modelo de objetos de página, podemos crear código más robusto y reducir o eliminar el código de prueba duplicado, mejorando así la legibilidad del código y reduciendo la carga de trabajo de las secuencias de comandos. La implementación del modelo de objetos de página se logra separando la abstracción de los objetos de prueba y los scripts de prueba.

37. Cómo resaltar elementos después de posicionarlos (para fines de depuración)     

Restablecer atributos de elementos, agregar fondo y borde a elementos posicionados

38. ¿Qué es una afirmación?     

-La palabra inglesa para afirmación es afirmación y la palabra inglesa para verificación de afirmación es verificación de afirmación. -Una aserción es una expresión lógica que especifica un estado que debe tener un programa, o una condición que debe satisfacer un conjunto de variables del programa en algún momento durante la ejecución del programa.

39. Si estuviera seleccionando una solución de pruebas automatizadas, ¿qué idioma elegiría, java, js, python o ruby?     

Utilice un idioma con el que esté familiarizado

40. En el modo de configuración de objetos de página, ¿es necesario agregar afirmaciones al método ubicado en la página?     

innecesario

41. Cómo realizar un salto de página en el modo de diseño de objetos de página     

obtener, hacer clic

42. ¿De dónde provienen los casos de prueba automatizados?     

- Extracción de casos de uso manuales: puede consultar la estrategia de ejecución de casos de uso automatizados.

43. ¿Cuál crees que es el mayor defecto de las pruebas automatizadas?     

-Inestable

-fiabilidad

-No es fácil de mantener

-Costos y beneficios

44. ¿Se puede utilizar webdriver para probar la interfaz?     

Difícil, no recomendado.

45. El sistema de prueba (arquitectura B/S) que se ha utilizado en la empresa se vuelve repentinamente inaccesible. Debe solucionar el problema y restaurarlo. Indíquenos su método de verificación.     

1. No se puede acceder al sitio web directamente después de ingresar el nombre de dominio. El sitio web era normal antes, pero de repente no se puede acceder. 1. Pruebe si FTP es normal y puede iniciar sesión. Si no puede iniciar sesión, pregunte directamente al espacio. proveedor de espacio que hay un problema con el proveedor de espacio y comuníquese con él directamente. 2. Si el nombre de dominio de tercer nivel proporcionado por el espacio puede acceder al sitio web y abrirlo (el nombre de dominio de tercer nivel lo proporciona el espacio), si no se puede acceder a él, debería ser un problema de espacio. 3. Ingrese cmd en el menú de inicio de la computadora e ingrese en el cuadro negro emergente: haga ping a su nombre de dominio, luego presione Entrar. Si no puede ver la IP o la dirección IP no coincide con su dirección de host, significa que el dominio la resolución del nombre es incorrecta. , es un problema de nombre de dominio y es necesario volver a analizar el nombre de dominio. 2. Se informa un error 404 al acceder (no se puede encontrar la página). La explicación es que el contenido del sitio web es normal, pero hay un problema con el programa, verifique si el programa está completo. 3. Se produce un error del servidor MySQL al acceder al sitio web. Este es un error de enlace de la base de datos. Verifique el archivo de conexión de la base de datos y la base de datos para ver si hay errores. 4. Se produce un error 500 al acceder al sitio web. 1. Inicie sesión en FTP para verificar si hay archivos anormales o faltantes, lo que significa que el sitio web ha sido invadido. Comuníquese con la producción del sitio web de inmediato para solucionar el problema. 2. Si no faltan archivos en el espacio y en el directorio del programa FTP o se produce un error 500 justo después de la instalación, confirme que la función scandir() esté habilitada en el espacio y verifique si esta función está deshabilitada.

 

 

Supongo que te gusta

Origin blog.csdn.net/weixin_60870637/article/details/126974874
Recomendado
Clasificación