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:
# language: es
Característica: Login
Dado que ya existen los siguientes usuarios:
Usuario Nombre
Carlos Carlos Hernández
Maria Maria Lopez
Juan Juan Peréz
@Login
Escenario: Login con un usuario
Dado Que Existe un usuario con la clave Carlos
Cuando Yo ejecuto el servicio Usuarios/Login
Entonces Obtengo el nombre Carlos Hernández
Escenario: Login con usuarios en Tabla
Dado Tecleo los siguientes datos del usuario
Cuando Yo ejecuto el servicio Usuarios/Login
Entonces Obtengo el nombre <Nombre>
Ejemplos:
| Usuario | Nombre |
| Maria | Maria Lopez |
| Juan | Juan Peréz |
Puedes generar los pasos y comparar con mi solución en github.
Last updated
Was this helpful?