X
BLOG

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

Consejos y trucos para probar las aplicaciones empresariales de Salesforce con Selenium Tiempo de leer: 5 minutos

Salesforce se ha convertido en la plataforma CRM dominante en los últimos años con cuota de mercado global del 19.5% en 2018. Eso es más del doble de la alternativa SAP más cercana y más del triple que la de Oracle. El éxito proviene de apuntar al desarrollo de aplicaciones empresariales con su propio lenguaje de programación orientado a objetos Apex y el marco de Lightning Web Component.

Salesforce permite a los desarrolladores definir su lógica empresarial y elementos de interfaz de usuario de forma abstracta para que Salesforce pueda implementar esos elementos en la página. Esta flexibilidad se produce a expensas de Automatización de pruebas de interfaz de usuario porque 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. Exploremos algunas razones de la dificultad de probar las aplicaciones de Salesforce Enterprise y cómo solucionarlas.

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 en Selenium tiene un atributo id = "algo" simple para ubicar un elemento web por identificación única 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 que eso, los identificadores cambian aleatoriamente entre las visitas a la página. Esto hace que los identificadores sean inútiles para la automatización de pruebas. Considere cómo una prueba de selenio debe ubicar el elemento en el siguiente ejemplo cuando la identificación cambia cada vez que se ejecuta la prueba.

Identificadores de elementos atípicos

Consejos y trucos

los elemento no tiene otros atributos de definición única. Afortunadamente, Salesforce cumple con las últimas pautas de accesibilidad web. La sección 1.3.1 de WCAG sobre información y relaciones exige que un elemento legible por humanos se asocie en 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 debe ser siempre el mismo.

En este ejemplo, el texto "Nombre de la empresa" está contenido dentro de un atributo with para = "940: 1376; a" que coincide con el identificador en el elemento. Una prueba de selenio puede hacer la conexión del texto de la etiqueta al elemento de entrada usando 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 el espacio en blanco adicional del texto en este ejemplo que se envuelve dentro del elemento. Hace que la prueba de selenio parezca un poco más complicada, pero hace el trabajo.

Sugerencia para probar las aplicaciones empresariales de Salesforce

Aplicaciones empresariales lentas alojadas en la nube

A pesar del nombre "Lightning", las aplicaciones empresariales alojadas en la nube de Salesforce a veces pueden ser bastante lentas. Los ingenieros de automatización de pruebas están familiarizados con los desafíos que conllevan las aplicaciones que pueden tardar en responder. Un script de prueba fallará si intenta realizar 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

Otra espina en el costado de la automatización de pruebas de IU es que Salesforce recuerda qué componentes de Lightning UI se abrieron por última vez y reinicializa el último estado conocido al iniciar sesión. Esto significa que el diseño de página inicial disponible para la prueba está sujeto a cambios 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.

 

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 su cuenta le parece demasiado trabajo, considere usar Parasoft Selenic para automatizar eficientemente la creación de su prueba de Selenium y simplificar el mantenimiento de la prueba. Con Selenic, puede registrar interacciones con las aplicaciones empresariales de Salesforce en su navegador. Luego, cree fácilmente clases de prueba de Selenium que aprovechen todas estas mismas técnicas.

El registrador integrado de Parasoft Selenic proporciona una selección de aplicaciones para que pueda elegir recopilar atributos específicos de Salesforce mientras graba las acciones de la interfaz de usuario. Luego, Selenic incorpora esos atributos al crear pruebas de IU de Selenium y utiliza tecnología de inteligencia artificial para aplicar la autocuración a las pruebas que se rompen debido a cambios en los localizadores o condiciones de espera. Para obtener más información, consulte nuestro seminario web a pedido y descargar una versión de prueba gratuita.

Use-Automation-and-AI-to-Accelerate-Salesforce-Testing

Escrito por

Matt amor

Matt, ingeniero líder de productos en Parasoft, gestiona el desarrollo de nuevas funciones para la gestión del entorno, las pruebas de API, la virtualización de servicios y el modelado de datos de prueba.

Reciba las últimas noticias y recursos sobre pruebas de software en su bandeja de entrada.

Prueba Parasoft