![]()
Cypress IO logowanie do aplikacji – to krótki wpis pomagający Wam możliwości zalogowania do aplikacji za pośrednictwem Cypressa. W przypadku rozwoju – będziemy poszerzać wpis o kolejne możliwości.
Instalacja
Są dwie metody instalacji Cypressa. Wybór metody należy oczywiście do użytkownika. Pierwsza poprzez użycie npma, drugi zaś poprzez pobranie i rozpakowanie pliku zip. W przypadku npma – zainstaluj Node JS.
nmp
Przejdź do swojego projektu i zainstaluj cypressa poprzez polecenie:
npm install cypress --save-dev
Po instalacji w folderze projektu pojawi się katalog o nazwie node_modules oraz plik package-lock.json.Uruchomienie Cypressa jest niezwykle proste, gdyż wystarczy wpisać komendę: node_modules\\.bin\cypress open. Jeżeli chcesz, poniżej oficjalny tutorial ze strony cypress.io
plik zip
Możesz pobrać plik spakowany w formacie zipa np. tutaj pobierz i wypakować w dowolnym miejscu by przetestować – zapoznać się z narzędziem. Nie polecam jednak tego rozwiązania.
Logowanie do aplikacji
Standardowe logowanie do aplikacji za pośrednictwem username i passworda możemy wykonać prosto jak wszystkie inne czynności w ramach testach Cypressa.
// Fill the username
cy.get('[data-cy="username"]')
.type('login')
.should('have.value', 'login');
// Fill the password
cy.get('[data-cy="password"]')
.type('123$567')
.should('have.value', '123$567');
// Locate and submit the form
cy.get('login-form').submit();
Wybierając właściwe selectory możemy zalogować się do aplikacji w prosty i szybki sposób. Oczywiście gdy będziemy chcieli korzystać z takich testów warto aby dane do logowania nie były wprost wpisane w kodzie.
Auth0
Jeżeli mam konieczność autentyfikacji, aby dostać się do naszej aplikacji webowej konieczne jest skorzystanie z takiego wariantu.
Amazon Cognito Authentication
Jeżeli testy naszej są powiązane z usługami Amazona, konieczne jest również umieszczenie tego w naszych testach automatycznych tak aby wszystko działało poprawnie.
Amplify.configure({
Auth: {
identityPoolId: 'XX-XXXX-X:XXXXXXXX-XXXX', // Amazon Cognito Identity Pool ID
region: 'XX-XXXX-X', // Amazon Cognito Region
},
})a
Dane oczywiście trzeba sobie ustawiić w credentials w Cypressie:
const awsConfig = require(path.join(__dirname, '../../aws-exports-es5.js'))
dotenv.config()
export default (on, config) => {
// ...
config.env.cognito_username = process.env.AWS_COGNITO_USERNAME
config.env.cognito_password = process.env.AWS_COGNITO_PASSWORD
config.env.awsConfig = awsConfig.default
// plugins code ...
return config
}
Całość procesu tworzenia tego logowania zawarta jest w dokumentacji.
Inne rodzaje:
Cypress posiada też możliwości Autentyfikacji na inne sposoby, które mogą Was zainteresować przy tworzeniu Waszych testów automatycznych:
Tworzenie pliku env
Jak wcześniej wspomnieliśmy warto nasze dane umieścić w innym pliku tak aby nie były dostępne bezpośrednio z kodu. Przykładem może być stworzenie pliku cypress.env.json, gdzie umieścimy dane. Pamiętać jednak należy, by plik ten wpisać do .gitignore.
{
"auth_audience": "https://mojastrona.com/api/v2/",
"auth_url": "https://mojastrona.com/oauth/token",
"auth_client_id": "my_client_id",
"auth_client_secret": "my_client_secret",
"auth_username": "my_username",
"auth_password": "my_password"
}
Podsumowanie
Cypress IO logowanie do aplikacji to kolejny wpis mający zachęcić Was do instalacji i sprawdzenia narzędzia. Z racji popularyzacji narzędzia i dużego wsparcia które otrzymał Cypress na rozwój, będziemy poszerzać wpisy na ten temat. Wszelkie artykuły związane z Cypress IO znajdziecie w dedykowanym dziale.

