Cómo resolver los problemas comunes de automatización de pruebas de interfaz de usuario web con el conjunto de herramientas gratuito Katalon Studio

"Si un usuario final percibe un mal desempeño de su sitio web, su próximo clic probablemente estará en your-competition.com". - Ian Molyneaux

Los avances en las tecnologías de desarrollo web hacen que las aplicaciones basadas en web sean más ricas en funciones, por lo tanto, se vuelve más desafiante automatizar sus pruebas web.

Las características de la tecnología del sitio web, como el soporte multiplataforma, el diseño de respuesta cruzada entre navegadores, podrían agregar más complicaciones y esfuerzo a sus estrategias de automatización de pruebas de IU web.

Entonces, si es un principiante y comienza con la automatización de pruebas de IU web, aquí hay algunos ejemplos sobre cómo manejar problemas comunes y hacer que sus pruebas de automatización sean más eficientes.

Leer más: Los cinco desafíos principales en la automatización de pruebas

Retos comunes de la automatización de pruebas de interfaz de usuario (web)

  • Problemas de tiempo de espera
  • Problemas de iframe
  • Problemas emergentes en la automatización
  • Problemas para localizar elementos profundamente anidados

Aprendamos a resolver estos problemas de automatización de la interfaz de usuario con la herramienta Katalon Studio.

Katalon Studio es un conjunto de herramientas de automatización gratuito pero potente para pruebas de aplicaciones web y móviles. Es fácil de instalar y los evaluadores pueden crear, ejecutar, informar y mantener rápidamente sus pruebas automatizadas.

Este es un proyecto de demostración creado con Katalon Studio. El objetivo es ayudarlo a manejar los problemas de automatización de pruebas de IU web mencionados anteriormente. También puede descargar Katalon Studio y el proyecto de demostración desde los enlaces que se proporcionan a continuación en este artículo.

# 1) Problemas de tiempo de espera y enfoque de solución

¿Qué es esperar?

Una Espera es una táctica utilizada en los scripts de automatización de prueba para crear una pausa entre los pasos de guión mientras espera a que se carguen los elementos o que responda una aplicación.

Los problemas que las esperas inteligentes (las esperas explícitas son esperas inteligentes que se limitan a un elemento web en particular) ayudan a abordar son las "falsas alarmas" para los problemas que los ingenieros analizan para evaluarlos.

Como errores de script y no errores de aplicación. Cuando una prueba falla debido al script mismo y no debido a un error en la aplicación / página web, se denomina falla falsa.

Estos son algunos ejemplos comunes de lo que puede causar una Falsa Falla:

  • Falso Fallo: Una de las fallas más grandes que vemos es cuando un script falla "falso fallo" debido a la espera en la aplicación. A menudo causado por la latencia de la red, solicitudes de bases de datos o cualquier cantidad de cosas relacionadas con la funcionalidad de la aplicación o la página web.
  • Elemento dirigido no presente en la página: este tipo de falla ocurre mientras se espera que los elementos se muestren O se visualicen en el navegador. La aplicación puede estar activa y en ejecución, pero ciertos elementos pueden no cargarse pero hace que su script de prueba falle.

¿Cómo abordar estos errores de script de prueba ocurridos debido a los problemas de Wait descritos anteriormente?

En lugar de agregar esperas aleatorias de 5 a 10 segundos para cada paso, puede probar una de estas opciones que se mencionan a continuación:

  • Variable global: una variable global es una variable con alcance global, lo que significa que es visible en todo el programa. Puede considerar definir 3 tipos de variables globales en su script de prueba de espera corta, espera media y espera larga. Use estas variables en su script de prueba de acuerdo con el tiempo de respuesta de su aplicación web.
  • Esperar carga de página: esta lógica esperará a que se cargue completamente una página antes de ejecutar un paso en su secuencia de comandos.
  • Espere al elemento presente: a veces sucede que los elementos web tardan más en aparecer en la página cuando navega por las páginas o hace clic en los botones o hace otra cosa. El comando "WaitForElementPresent" pausará el selenio hasta que el elemento seleccionado no esté presente en la página. Una vez que el elemento aparezca en la página, el selenio se ejecutará para ejecutar el siguiente comando.

Script de prueba de Katalon Studio:

import internal.GlobalVariable;
importcom.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords como WebUiBuiltInKeywords
importar com.kms.katalon.core.model.FailureHandling como FailureHandling
importe com.kms.katalon.core.testcase.TestCaseFactory como TestCaseFactory
importar com.kms.katalon.core.testobject.ObjectRepository como ObjectRepository
importar com.kms.katalon.core.testdata.TestDataFactory como TestDataFactory
importar com.kms.katalon.core.testcase.TestCase como TestCase
importar com.kms.katalon.core.testdata.TestData como TestData
importar com.kms.katalon.core.testobject.TestObject como TestObject
importcom.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords como WebUI
importcom.kms.katalon.core.mobile.keyword.MobileBuiltInKeywords as Mobile
importcom.kms.katalon.core.webservice.keyword.WSBuiltInKeywords como WS
importar staticcom.kms.katalon.core.testobject.ObjectRepository.findTestObject
importar staticcom.kms.katalon.core.testdata.TestDataFactory.findTestData
importar staticcom.kms.katalon.core.testcase.TestCaseFactory.findTestCase
'Abre el navegador y navega al sitio de Katalon'
WebUI.openBrowser ('https://katalon.com/')
'Espere a que se cargue la página de Katalon Studio con la espera utilizada como variable global'
WebUI.waitForPageLoad (GlobalVariable.G_Timeout_Small)
'Haga clic en el botón' Iniciar sesión 'para navegar a la página de inicio de sesión'
WebUI.click (findTestObject ('Page_KatalonHomepage / btn_Login'))
'Introducir nombre de usuario'
WebUI.setText (findTestObject ('Page_KatalonLogin / txt_Username'), nombre de usuario)
'Contraseña de entrada'
WebUI.setText (findTestObject ('Page_KatalonLogin / txt_Password'), contraseña)
'Haga clic en el botón' Iniciar sesión 'para iniciar sesión
WebUI.click (findTestObject ('Page_KatalonLogin / btn_Submit'))
'Espere a que aparezca el mensaje de inicio de sesión fallido'
WebUI.waitForElementPresent (findTestObject ('Page_KatalonLogin / div_LoginMessage'), GlobalVariable.G_Timeout_Small)

Script de prueba generado anteriormente que muestra el uso de variables globales y palabras clave integradas de Katalon Studio.

# 2) Problemas de iframe y enfoque de solución

¿Qué es el iframe?

Es un marco en línea de un documento HTML incrustado en otro documento HTML de un sitio web. El elemento iframe se usa para insertar contenido de otras fuentes en una página web.

¿Por qué es importante saber cómo probar los iframes?

Verificar texto y objetos dentro de Iframes puede ser un desafío. Aunque usted (como probador humano) puede ver el texto, las herramientas de automatización no lo captarán simplemente identificando el objeto. Debe decirle a su script cómo atravesar los Iframes y seleccionar el Iframe correcto donde están presentes el texto y el objeto.

Ejemplos de iframe:

# 1) iframe del foro de Katalon Studio

Figura 1: Mostrar el iframe detectado y capturado

Puede ver que Katalon Studio Object Spy selecciona el iframe en el área resaltada en rojo.

Figura 2: Espía de objetos de Katalon Studio

El espía de objetos de Katalon Studio detectó y capturó el Iframe de comentarios (Figura 1) según sea necesario para verificar los objetos en ese iframe.

# 2) JQueryUI-Arrastrar y soltar ejemplo:

Figura 3: Mostrar la selección del área de iframe JQueryUI-Arrastrar y soltar

Puede arrastrar el objeto "Arrastrarme" a otras áreas del iframe.

Figura 4: Espía de objetos de Katalon Studio

Katalon Studio Object Spy detectó y capturó el iframe como se muestra arriba en la Figura 3.

Una solución típica lo ayudaría a identificar los elementos de origen y destino, y en el contexto de la sesión correcta del navegador. Herramientas como Selenium ofrecen arrastrar y soltar para abordar este problema hasta cierto punto.

Solución para probar Iframes con Katalon Studio:

A continuación hay algunos consejos sobre cómo interactuar con objetos de arrastrar y soltar en un Iframe con Katalon Studio.

importar com.kms.katalon.core.testobject.ObjectRepository como ObjectRepository
importar com.kms.katalon.core.mobile.keyword.MobileBuiltInKeywords como móvil
importe com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords como WS
importar estática com.kms.katalon.core.testobject.ObjectRepository.findTestObject
importar estática com.kms.katalon.core.testdata.TestDataFactory.findTestData
importar estática com.kms.katalon.core.testcase.TestCaseFactory.findTestCase
importar com.kms.katalon.core.testcase.TestCase como TestCase
importar com.kms.katalon.core.testdata.TestData como TestData
importar com.kms.katalon.core.testobject.TestObject como TestObject
importar com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords como WebUiBuiltInKeywords
importar com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords como WebUI
importar internal.GlobalVariable como GlobalVariable
'Abra el navegador y navegue a la página de jQuery UI'
WebUI.openBrowser ('http://jqueryui.com/')
'Maximizar la ventana actual del navegador'
WebUI.maximizeWindow ()
'Haga clic en \' Arrastrar \ 'enlace'
WebUI.click (findTestObject ('Page_jQuery_Homepage / lnk_Draggable'))
'Cambiar al iframe del panel de demostración'
WebUI.switchToFrame (findTestObject ('Page_jQuery_Drag and Drop Example / ifr_Demo Frame'), GlobalVariable.G_Timeout_Small)
'Arrastra y suelta el iframe en otra posición'
WebUI.dragAndDropByOffset (findTestObject ('Page_jQuery_Drag and Drop Example / div_Frame_Draggable'), 200, 38)
WebUI.closeBrowser ()

El script de prueba generado anteriormente está destinado a la función de arrastrar y soltar. Katalon Studio le permite editar sus pasos de verificación entre el script para verificar un objeto en particular en el iframe.

# 3) Problemas emergentes y enfoque de solución

¿Qué es una ventana emergente?

Una ventana emergente es un área de visualización de la interfaz gráfica de usuario (GUI), generalmente una pequeña ventana que aparece ("ventana emergente") en primer plano de la interfaz visual.

Problemas con la ventana emergente?

Como humano, tiene la capacidad de reaccionar a las acciones que ocurren durante sus pruebas, como una ventana emergente que ocurre inesperadamente. Pero como código que ha escrito un codificador, solo puede hacer lo que su codificador le ha dicho que haga y eso limita su capacidad de reaccionar ante comportamientos inesperados, como una ventana emergente.

A continuación se presentan algunos ejemplos emergentes comúnmente utilizados que podrían ser un obstáculo en su automatización web:

1) Nueva ventana del navegador

2) Alerta: a menudo se usa un cuadro de alerta para asegurarse de que la información llegue al usuario

3) Diálogo modal personalizado: un diálogo modal es un cuadro de diálogo / ventana emergente que se muestra en la parte superior de la página actual

4) ventana emergente nativa

Solución para manejar Pop-up con Katalon Studio:

A continuación hay algunos consejos sobre cómo interactuar con problemas emergentes usando Katalon Studio.

import com.kms.katalon.core.annotation.SetUp as SetUp
importar com.kms.katalon.core.annotation.TearDown como TearDown
importar com.kms.katalon.core.model.FailureHandling como FailureHandling
importar com.kms.katalon.core.testobject.ObjectRepository como ObjectRepository
importar com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords como WebUiBuiltInKeywords
importar com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords como WebUI
importar com.kms.katalon.core.mobile.keyword.MobileBuiltInKeywords como móvil
importe com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords como WS
importar estática com.kms.katalon.core.testobject.ObjectRepository.findTestObject
importar estática com.kms.katalon.core.testdata.TestDataFactory.findTestData
importar estática com.kms.katalon.core.testcase.TestCaseFactory.findTestCase
importar com.kms.katalon.core.testcase.TestCase como TestCase
importar com.kms.katalon.core.testdata.TestData como TestData
importar com.kms.katalon.core.testobject.TestObject como TestObject
importar java.util.Formatter.DateTime como DateTime
importar internal.GlobalVariable como GlobalVariable
'Abre el navegador y navega al sitio eufórico'
WebUI.openBrowser ('http://www.elated.com/articles/javascript-tabs/')
'Maximizar la ventana actual del navegador'
WebUI.maximizeWindow ()
'Haga clic en el botón \' Tweet \ 'en iframe'
WebUI.click (findTestObject ('Page_Elated / lnk_Tweet'))
'Cambiar a la ventana que tiene título \' Compartir un enlace en Twitter \ ''
WebUI.switchToWindowTitle ('Compartir un enlace en Twitter')
'Introduzca su nombre de usuario'
WebUI.setText (findTestObject ('Page_Share a link on Twitter / txt_Twitter_Login_Username'), email)
'Introducir la contraseña'
WebUI.setText (findTestObject ('Page_Share a link on Twitter / txt_Twitter_Login_Password'), contraseña)

Script de prueba generado anteriormente que muestra el uso de palabras clave integradas de Katalon Studio.

Por ejemplo: la palabra clave incorporada switchToWindowTitle lo ayuda a manejar el problema emergente.

Problemas de anidación de XPath y enfoque de solución

¿Qué es XPATH?

Una expresión XPath es un mecanismo para navegar y seleccionar nodos del documento XML o puede usarse para localizar elementos HTML.

Aquí hay un ejemplo de un elemento anidado:

1 
2 10

# 4) Problemas para identificar elementos profundamente anidados

Es difícil identificar el elemento al que desea acceder, especialmente cuando están profundamente anidados, como se muestra en el elemento "a" en la secuencia de comandos anterior.

Puede que le resulte difícil escribir el XPath manualmente si no tiene un conocimiento sólido de XPath para acceder a ese elemento "a" en particular mediante su herramienta de prueba de automatización.

¿Cómo identificar fácilmente los elementos anidados?

  • Use XPath: XPath es una forma efectiva de encontrar elementos si no pueden identificarse por ID, Nombre u otro atributo Y cuando están profundamente anidados. Sin embargo, la identificación manual de la ruta es difícil sin la herramienta correcta O la entrada de los ingenieros que crearon las funciones.
  • Utilice Katalon Studio: Katalon Studio puede generar una XPath inteligente y optimizada. Identifica un elemento por su nodo primario identificado más cercano, para que no tenga que buscar a través del árbol DOM.
Figura 7: Katalon Studio Object Spy

Katalon Studio generó el XPath optimizado para usted automáticamente cuando espía el objeto "Regístrese ahora".

Este es un proyecto de demostración creado con Katalon Studio. El objetivo es ayudarlo a manejar los problemas de automatización de pruebas de la interfaz de usuario web mencionados anteriormente. Puede descargar Katalon Studio y el proyecto de demostración desde el siguiente enlace.

  • Enlace de descarga gratuita - Katalon Studio
  • Descargar también - Proyecto de demostración

Conclusión:

Si bien la automatización de sus pruebas web puede ser difícil, esperamos que las soluciones sugeridas en este artículo puedan ayudarlo a manejar los problemas comunes de automatización de pruebas web y aportar valor a su automatización de pruebas.

Mire este video práctico sobre cómo evitar riesgos comunes de automatización de la interfaz de usuario web

= >> Haga clic aquí para ver el video

Sobre el autor: Este es un artículo invitado de Abhishek Kumar. Es el gerente de producto de KMS Technology. Combina experiencia en gestión estratégica y táctica con fuertes calificaciones en desarrollo de software, pruebas de software, automatización de pruebas, gestión de productos, iniciación de nuevas empresas, desarrollo comercial, gestión de proyectos y operaciones generales.

Puede probar esta herramienta gratuita para sus pruebas de automatización de aplicaciones web o móviles y háganos saber si tiene algún problema / consulta mientras la usa.

Leer más: Los cinco desafíos principales en la automatización de pruebas

Fuente: Cómo resolver los problemas comunes de automatización de pruebas de interfaz de usuario web con el conjunto de herramientas gratuito Katalon Studio