Class TestDescuentoPlaywright

java.lang.Object
giis.demo.descuento.it.TestDescuentoPlaywright

@SpringBootTest(classes=DescuentoApplication.class, webEnvironment=RANDOM_PORT) @TestPropertySource(locations="classpath:application-test.properties") public class TestDescuentoPlaywright extends Object
Misma prueba de interfaz de usuario que TestDescuentoSelenium, pero ejecutada con Playwright (https://playwright.dev/java/) en lugar de Selenium. Se mantiene identico el escenario y las comprobaciones para que se puedan comparar ambas tecnologias; los comentarios resaltan unicamente las diferencias respecto de la version con Selenium.
Al igual que Selenium apoya sus utilidades en SeleniumUtil, esta version las apoya en PlaywrightUtil (lanzar el navegador segun el fichero de propiedades, obtener el contenido de una tabla y tomar capturas).
Principales diferencias respecto de Selenium:
 - Gestion de navegadores: Playwright descarga y gestiona sus propios navegadores.
 - Esperas: Playwright incorpora auto-waiting: cada accion espera de
   forma automatica a que el elemento sea accionable, por lo que no hace falta muchos waits.
 - API: en lugar de driver.findElement(By...) se usan Locators (page.locator("css")).
 
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    (package private) com.microsoft.playwright.Browser
     
    private DataSource
     
    (package private) com.microsoft.playwright.Page
     
    (package private) com.microsoft.playwright.Playwright
     
    (package private) int
     
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    private void
    doStep(boolean initialStep, String edad, String expected)
    La ejecucion de un paso ilustra las acciones basicas de Playwright (locator, fill, click) frente a las de Selenium (findElement, sendKeys, click).
    void
    Carga limpia de la base de datos: identica a TestDescuentoSelenium.
    private void
    Inicializa Playwright, lanza el navegador y navega a la pagina principal.
    void
     
    void
     
    void
    Escenario de prueba de la pantalla: identico al de TestDescuentoSelenium.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • datasource

      @Autowired private DataSource datasource
    • port

      @LocalServerPort int port
    • playwright

      com.microsoft.playwright.Playwright playwright
    • browser

      com.microsoft.playwright.Browser browser
    • page

      com.microsoft.playwright.Page page
  • Constructor Details

    • TestDescuentoPlaywright

      public TestDescuentoPlaywright()
  • Method Details

    • setUp

      @BeforeEach public void setUp()
    • tearDown

      @AfterEach public void tearDown()
    • loadMainPage

      private void loadMainPage()
      Inicializa Playwright, lanza el navegador y navega a la pagina principal. Inserta esperas tras cada accion para que se pueda ver la secuencia de pasos en los videos (no son necesarias para sincronizar: Playwright espera automaticamente, cumplen el mismo proposito que los sleep de la version Selenium).
    • loadCleanDatabase

      public void loadCleanDatabase()
      Carga limpia de la base de datos: identica a TestDescuentoSelenium.
    • testDescuentoScenario

      @Test public void testDescuentoScenario()
      Escenario de prueba de la pantalla: identico al de TestDescuentoSelenium. Cuatro pasos cambiando el filtro por edad, comprobando en cada uno el valor de la tabla de descuentos.
    • doStep

      private void doStep(boolean initialStep, String edad, String expected)
      La ejecucion de un paso ilustra las acciones basicas de Playwright (locator, fill, click) frente a las de Selenium (findElement, sendKeys, click).