Tome un camino más rápido e inteligente hacia la automatización de pruebas C/C++ impulsada por IA. Descubra cómo >>
Consejos y trucos para probar las aplicaciones empresariales de Salesforce 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.
Saltar a la sección
¿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 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.
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.
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 visitas a la página. Esto los hace inútiles para la automatización de pruebas. Considere cómo... prueba de selenio debe localizar el elemento en el siguiente ejemplo cuando la identificación cambia cada vez que se ejecuta la prueba.

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.
![]()
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.

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.

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.

Otra espina en el costado de Automatización de pruebas de interfaz de usuario 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.
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.

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.
![]()
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.
Si poner en práctica estos consejos y trucos por su cuenta le parece demasiado trabajo, considere usar Parasoft Selénic 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.