es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Configuración de URL de Playwright – Variables de entorno para múltiples aplicaciones y diferentes URLs base.

Cuál sería la mejor manera de configurar y utilizar URLs para un proyecto con:

  • 2x WebApps
  • 3x Entornos

donde tenemos una situación que se ve así como ejemplo:

Aplicación Fruta:

  • baseurls:
    • dev.fruits.com
    • test.fruits.com
    • prod.fruits.com
  • endpoints:
    • /banana/
    • /kiwi/
    • /apple/

Aplicación Color:

  • baseurls:
    • dev.colors.com
    • test.colors.com
    • prod.colors.com
  • endpoints:
    • /red/
    • /blue/
    • /green/

… y pruebas como estas:

test('Navigate to fruits/banana', async () => {
  await page.goto('https://https://dev.fruits.com/banana/');
  ...
});

test('Navigate to colors/red', async () => {
  await page.goto('https://https://dev.colors.com/red/');
  ...
});

… donde me gustaría:

  1. Reemplazar dev.fruits.com y dev.colors.com con variables de baseurl
  2. La parte “dev” debe ser dinámica en función del entorno en el que se ejecuten las pruebas.
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para configurar y utilizar URLs para un proyecto con 2 WebApps y 3 entornos, se puede adoptar el siguiente enfoque:

    1. Definir las baseurls para cada WebApp en cada entorno en un archivo de configuración o como variables de entorno. Por ejemplo:
      {
       "fruitApp": {
         "dev": "https://dev.fruits.com",
         "test": "https://test.fruits.com",
         "prod": "https://prod.fruits.com"
       },
       "colorApp": {
         "dev": "https://dev.colors.com",
         "test": "https://test.colors.com",
         "prod": "https://prod.colors.com"
       }
      }
      
    2. En las pruebas, reemplazar las URL codificadas a mano con variables que contengan la baseurl y el endpoint. Por ejemplo:
      const fruitBaseUrl = CONFIG.fruitApp[ENVIRONMENT];
      const colorBaseUrl = CONFIG.colorApp[ENVIRONMENT];
      
      test('Navegar a frutas/plátano', async () => {
       await page.goto(`${fruitBaseUrl}/banana/`);
       ...
      });
      
      test('Navegar a colores/rojo', async () => {
       await page.goto(`${colorBaseUrl}/red/`);
       ...
      });
      
    3. Establecer el valor de la variable ENVIRONMENT dinámicamente según cómo se ejecuten las pruebas. Esto se puede hacer mediante argumentos de línea de comandos, variables de entorno o un archivo de configuración. Por ejemplo:
      npx playwright test --env=dev
      

      o

      export ENVIRONMENT=dev
      npx playwright test
      

      o

      {
       "environment": "dev"
      }
      

      Tenga en cuenta que el valor de ENVIRONMENT debería ser una de las claves definidas en el archivo de configuración del paso 1.

    Siguiendo este enfoque, las pruebas se pueden ejecutar en diferentes entornos sin modificar el código, y las URLs se pueden configurar y mantener fácilmente.

Comments are closed.