12.6.3 Agregar los passwords como variables de ambiente

Se considera también una buena practica no exponer los passwords o token en código, se tienen algunas opciones para almacenar los passwords:

  • Variables de ambiente.

  • Azure Key Vault.

Utilizando variables de ambiente

Puedes agregar variables de ambiente en Visual Studio, agregaremos 3 una para cada usuario con el nombre JUAN, CARLOS, MARIA.

Para utilizar las variables de ambiente en el código con la función:

Environment.GetEnvironmentVariable(nombre_variable) 

Puedes cambiar la función DadoTecleoLosSiguientesDatosDelUsuario para tomar el password de acuerdo al nombre del usuario con el siguiente código

  [Given(@"Tecleo los siguientes datos del usuario (.*)")]
    public void DadoTecleoLosSiguientesDatosDelUsuario(string usuario)
    {
        login.Usuario = usuario;
        string pass = Environment.GetEnvironmentVariable(usuario.ToUpper());
        login.Password = pass;
    }

También debes agregar las variables de ambiente a Azure Devops, Github o tu herramienta de CI/CD. En Azure devops si la variable es Secret debes agregarla en el step de integration test.

- task: DotNetCoreCLI@2
  displayName: Testing Integration Test
  inputs:
    command: 'test'
    projects: '**/CaducaRest.IntegrationTest/*.csproj'
    arguments: '--configuration $(buildConfiguration) /p:CollectCoverage=true /p:CoverletOutputFormat=cobertura /p:CoverletOutput=$(Build.SourcesDirectory)/TestResults/Coverage/'
    publishTestResults: true
    testRunTitle: 'Integration Test'
  env:
    CARLOS: $(CARLOS)
    JUAN: $(JUAN)
    MARIA: $(MARIA)

Para practicar puedes cambiar el escensario de Login con un usuario

Un ejemplo sería el siguiente:

Puedes generar los pasos y comparar con mi solución en github.

Last updated

Was this helpful?