Logotipo de Parasoft Buscar

¡Descubre GoogleTest, con certificación TÜV y la tecnología Agentic AI para pruebas de C/C++!
Obtenga los detalles »

Blog de Parasoft

Consejos y trucos para probar las aplicaciones empresariales de Salesforce con Selenium

By Matt amor • 1 de octubre de 2020 • 5 minutos de lectura
1 de octubre de 2020 | 5 minutos de lectura
By Matt amor
Consejos-Trucos-Pruebas-Salesforce-Enterprise-Aplicaciones-Con-Selenium

¿Qué sucede si le decimos que hay sugerencias y trucos probados que puede implementar para probar las aplicaciones de Salesforce Enterprise con Selenium? Continúe para aprender estos trucos y también descubra cómo Parasoft Selenic puede ayudarlo a automatizar las pruebas de las aplicaciones empresariales de Salesforce.

Salesforce se ha consolidado como la plataforma CRM dominante en los últimos años, alcanzando una cuota de mercado global del 19.5 % en 2018. Esto representa más del doble que su competidor más cercano, SAP, y más del triple que Oracle. Su éxito se debe a su enfoque en el desarrollo de aplicaciones empresariales, gracias a su lenguaje de programación orientado a objetos Apex y su marco de trabajo Lightning Web Component.

Salesforce permite a los desarrolladores definir su lógica de negocio y elementos de interfaz de usuario de forma abstracta para que Salesforce pueda implementarlos en la página. Esta flexibilidad tiene un coste en términos de automatización de pruebas de interfaz de usuario, ya que los desarrolladores no tienen control directo sobre el contenido final en el navegador. Las aplicaciones empresariales de Salesforce son notoriamente difíciles de probar con marcos de automatización de código abierto como Selenium. Analicemos algunas de las razones de esta dificultad y cómo superarla.

Desafíos de probar las aplicaciones empresariales de Salesforce

Los identificadores de elementos son una forma común de localizar y automatizar las interacciones de las páginas web con Selenium. La anotación @FindBy de Selenium incluye un atributo id="something" simple para localizar un elemento web mediante su ID único en la página.

Identificadores de elementos atípicos

Los identificadores de elementos en una aplicación de Salesforce tienen un aspecto muy extraño: por ejemplo, id="940:1376;a". Peor aún, los identificadores cambian aleatoriamente entre las visitas a la página. Esto los vuelve inútiles para la automatización de pruebas. Consideremos cómo una prueba de Selenium debería localizar el elemento <input> en el siguiente ejemplo cuando el ID cambia cada vez que se ejecuta la prueba.

Identificadores de elementos atípicos

Consejos y Trucos

El El elemento no tiene otros atributos que lo definan de forma única. Afortunadamente, Salesforce cumple con las últimas directrices de accesibilidad web. La sección 1.3.1 de WCAG sobre información y relación exige que un elemento legible por humanos se asocie en el código a su correspondiente Haciendo coincidir el atributo "for" de la etiqueta con el atributo "id" de la entrada. El identificador del elemento puede cambiar cada vez que se carga la página, pero el texto de la etiqueta siempre debe ser el mismo.

En este ejemplo, el texto "Nombre de la empresa" está contenido dentro de un atributo for="940:1376;a" que coincide con el identificador en la Elemento. Una prueba de Selenium puede establecer la conexión entre el texto de la etiqueta y el elemento de entrada mediante un XPath inteligente: //input[@id=//label[normalize-space(.)='Company Name']/@for].

Este XPath localiza cualquier Elemento en la página con un atributo "id" igual al atributo "for" de un "Nombre de la empresa" que se muestra. La función XPath normalize-space(.) elimina los espacios en blanco adicionales del texto que, en este ejemplo, se envuelve dentro del elemento. Esto hace que la prueba de Selenium parezca un poco más compleja, pero funciona.

Sugerencia para probar las aplicaciones empresariales de Salesforce

Aplicaciones empresariales lentas alojadas en la nube

A pesar del nombre "Lightning", las aplicaciones empresariales de Salesforce alojadas en la nube a veces pueden ser bastante lentas. Los ingenieros de automatización de pruebas conocen los desafíos que conllevan las aplicaciones que tardan en responder. Un script de prueba fallará si intenta ejecutar el siguiente paso antes de que la aplicación esté lista.

La codificación rígida de varios segundos de retraso en la prueba puede hacer una pausa más de lo necesario la mayor parte del tiempo y aumentar el tiempo total que lleva la ejecución de las pruebas. Para retrasar lo suficiente, la espera debe ser condicional. Salesforce dificulta el uso de las condiciones de espera fluidas típicas de Selenium al representar una máscara de superposición de carga en la página.

Cargando máscara de superposición

Selenium tiene soporte incorporado para condiciones de espera dinámicas. Comprueba la presencia de elementos o la capacidad de hacer clic varias veces por segundo, hasta un tiempo máximo antes de generar errores. El problema es que ninguna de las condiciones de espera integradas de Selenium maneja la superposición de carga en Salesforce. El selenio detecta que el elemento debajo de la máscara de carga está realmente presente y no desactivado. Deja de esperar e intenta hacer clic en él. Esto da como resultado una excepción porque la superposición de carga intercepta el clic.

Excepción debido a la superposición de carga

Consejos y Trucos

No todas las esperanzas están perdidas. Unas pocas líneas más de código de Selenium hacen posible detectar esta excepción interceptada por clic e intentar nuevamente usando el mismo ciclo de espera y tiempo de espera.

Consejos para probar las aplicaciones empresariales de Salesforce

Recordar y reinicializar componentes de la interfaz de usuario Lightning

Otro inconveniente de la automatización de pruebas de interfaz de usuario es que Salesforce recuerda qué componentes de la interfaz de usuario de Lightning se abrieron por última vez y restablece el último estado conocido al iniciar sesión. Esto significa que el diseño inicial de la página disponible para la prueba puede variar según el historial guardado.

Consejos y Trucos

Una forma de reducir el efecto del estado anterior es que la prueba inicie el navegador de incógnito. Selenium hace que esto sea fácil de hacer con Google Chrome al pasar opciones en el método de configuración de la clase de prueba.

Consejos para probar las aplicaciones empresariales de Salesforce

Otras opciones que se muestran aquí deshabilitan la solicitud del navegador para compartir la ubicación con Salesforce porque las pruebas de Selenium pueden bloquearse en esta solicitud de permiso durante la reproducción. Maximizar la ventana del navegador encaja más elementos en la pantalla. También reduce la necesidad de que la prueba se desplace a los elementos antes de hacer clic en ellos. Si la prueba aún necesita desplazarse a algún elemento más abajo en la página, Selenium puede ejecutar este comando de JavaScript para hacer exactamente eso.

Comando JavaScript para que la prueba de Selenium se desplace al elemento más abajo en la página.

 

Beneficios de probar las aplicaciones empresariales de Salesforce con las pruebas de IU automatizadas de Selenium

Estos consejos y trucos hacen que el uso de Selenium sea práctico para las pruebas de IU automatizadas de las aplicaciones empresariales de Salesforce. La automatización de pruebas es una forma importante de detectar rápidamente regresiones después de cambiar la lógica empresarial o los componentes web en la aplicación empresarial. Salesforce en sí también publica cambios algunas veces al año. Un conjunto de pruebas de Selenium es una excelente manera de verificar rápidamente la compatibilidad con la última actualización de Salesforce en una caja de arena antes de implementarla en producción.

Mejore las pruebas de IU automatizadas de selenio con tecnología de inteligencia artificial

Si poner en práctica estos consejos y trucos por tu cuenta te parece demasiado trabajo, considera usar Parasoft Selenic para automatizar de forma eficiente la creación de pruebas Selenium y simplificar su mantenimiento. Con Selenic, puedes grabar interacciones con aplicaciones empresariales de Salesforce en tu navegador. Luego, crea fácilmente clases de prueba Selenium que aprovechen todas estas mismas técnicas.

La función de grabación integrada de Parasoft Selenic permite seleccionar la aplicación que se desea utilizar para recopilar atributos específicos de Salesforce durante la grabación de las acciones de la interfaz de usuario. Posteriormente, Selenic incorpora estos atributos al crear pruebas de interfaz de usuario con Selenium y utiliza tecnología de IA para corregir errores en las pruebas que se hayan producido debido a cambios en los localizadores o las condiciones de espera.

¿Quiere ver a Parasoft Selenic en acción?
Descargar Selenic Free Edition