Como hacer que las ejecuciones de las pruebas en serenitybdd salgan por un proxy

Buenas lectores.

Cuando necesitamos que nuestra ejecución de las pruebas salga por un proxy, generamos algo parecido a esto:

    Proxy proxy = new Proxy();
    proxy.setAutodetect(false);
    proxy.setHttpProxy("localhost:8092");
    proxy.setSslProxy("localhost:8092");


    ChromeOptions chromeOptions = new ChromeOptions();
    chromeOptions.addArguments("--ignore-certificate-errors");

    chromeOptions.setCapability(CapabilityType.PROXY, proxy);
    chromeOptions.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
    chromeOptions.setCapability(CapabilityType.ACCEPT_INSECURE_CERTS, true);

    driver = new FirefoxDriver(chromeOptions);
    driver.get(URL);


El problema radica cuando usamos SerenityBDD puesto que el automaticamente lanza el driver de acuerdo a la configuración que tengamos, por ende, si accedemos al driver y le enviamos este nuevo, el genera otra instancia... y eso no es lo que queremos. Para decirle a serenityBDD que salga por un proxy es muy sencillo, simplemente agregamos en el archivo de configuración la propiedad:

webdriver {
proxy {
      httpProxy = "localhost:8000"
    }
}

Con esto le estamos diciendo que salga por localhost en el puerto 8000 que sería el caso donde tengo el proxy.


Espero les sirva.



Saludos.



Referencias:
https://serenity-bdd.github.io/docs/guide/driver_config
https://stackoverflow.com/questions/75680149/unable-to-establish-websocket-connection
https://stackoverflow.com/questions/47457105/class-has-been-compiled-by-a-more-recent-version-of-the-java-environment

Comentarios

Entradas populares de este blog

Tiempo de espera "muerto" explicito en Playwright

SerenityBDD - Almacenar valores en memoria (pasar información entre steps)

Como tener un condicional en Playwright en caso que siga aun presente un elemento