java swing testing automated-tests

Pruebas automáticas para Java Swing GUI



testing automated-tests (14)

¿Qué opciones hay para construir pruebas automatizadas para GUI escritas en Java Swing?

Me gustaría probar algunas GUI que se han escrito utilizando el NetBeans Swing GUI Builder , por lo que algo que funcione sin requerir una alteración especial del código bajo prueba sería ideal.


Acabo de hacer algunos escaneos rápidos. squisch fue el más prometedor. No es gratis


Actualmente estoy usando FEST . Funciona con JUnit y también tomará capturas de pantalla de pruebas fallidas.

Tiene métodos de búsqueda de componentes predeterminados que buscan el nombre del componente que se está probando (que deben establecerse manualmente), pero también puede generar los comprobadores para un componente dado pasando el componente.


Estamos considerando jemmy para automatizar algunas de las pruebas GUI. Parece prometedor.


Estamos usando QF-Test y estamos bastante satisfechos.


No lo he usado personalmente, pero SwingUnit ve bastante bien. Puede usarlo con jUnit, y no se basa en la "ubicación de los componentes" (es decir, las coordenadas xey).

Lo único que debe hacer con NetBeans GUI Builder es establecer nombres únicos para sus componentes.


Para aquellos con una mente aventurera, existe la pegajosa https://github.com/robertoaflores/Gooey a (muy básica y subdesarrollada) herramienta de prueba programática para aplicaciones de swing.


Podría probar retest.de/en , que es una herramienta novedosa que implementa un enfoque innovador para las pruebas de regresión funcional y las combina con las pruebas de mono basadas en ai. Está a punto de convertirse en fuente abierta también ...

Descargo de responsabilidad: soy uno de los fundadores de la compañía detrás de ReTest.


Puede intentar usar Cucumber and Swinger para escribir pruebas de aceptación funcional en inglés simple para aplicaciones de GUI de Swing. Swinger usa la biblioteca Jemmy de Netbeans debajo del capó para conducir la aplicación.

Pepino te permite escribir pruebas como esta:

Scenario: Dialog manipulation Given the frame "SwingSet" is visible And the frame "SwingSet" is the container When I click the menu "File/About" Then I should see the dialog "About Swing!" Given the dialog "About Swing!" is the container When I click the button "OK" Then I should not see the dialog "About Swing!"

Echa un vistazo a esta demostración de video de Swinger para verla en acción.


Puede usar Marathon : "El entorno de prueba integrado Marathon, MarathonITE, es un marco de automatización de pruebas GUI Java / Swing ™ asequible, fácil de usar y multiplataforma. Puede usar el grabador de secuencias de comandos incorporado de MarathonITE para crear scripts de prueba limpios y legibles. en Python o Ruby. Las funciones avanzadas como la refactorización de métodos de extracción, las pruebas de creación de datos y la edición de mapas de objetos le permiten crear conjuntos de pruebas flexibles y sostenibles ".


Puedes usar sikuli o Automa para probar tu parte de GUI, estas son herramientas bien documentadas y probadas


Recientemente me encontré con FEST que parecía prometedor, excepto que el desarrollador anunció en 2012 que el desarrollo no continuaría .

AssertJ es una bifurcación de FEST que está funcionando muy bien para mí. Se mantiene activamente (al momento de escribir), es compatible con Java 8, tiene afirmaciones para algunas bibliotecas populares, como Guava y Joda Time, y está muy bien documentado. También es gratis y abierto.



Yo uso java.awt.Robot . No es agradable, no es fácil, pero funciona todo el tiempo.

Pros:

  • Usted tiene el control
  • Muy rapido
  • Crea tu propio FWK
  • Portátil
  • Sin dependencias externas

Contras:

  • No hay buena GUI para construir la prueba
  • Debe dejar la GUI sola mientras prueba
  • Crea tu propio FWK
  • Difícil cambiar el código de prueba y crear su primer arnés

Ahora, si tienes el presupuesto, iría por LoadRunner. Mejor en clase.

(Divulgación: relación con la compañía propietaria de LR, pero trabajé con LR antes de la relación)


UISpec4J es bastante simple, desbloqueable y extensible. Se ajusta mejor a mis propósitos que FEST.