Junior
Jak przeprowadzić test pola wprowadzania e-mail?
sobes.tech AI
Odpowiedź od AI
Testowanie pola wprowadzania adresu e-mail obejmuje sprawdzanie na poziomie front-end i back-end, a także testowanie interfejsu użytkownika.
Weryfikacje po stronie front-end (klienta):
- Walidacja formatu:
- Poprawne adresy (np.
test@example.com,test.name@sub.example.co.uk). - Niepoprawne adresy (brak
@, domena, nieprawidłowe znaki specjalne, spacje).
- Poprawne adresy (np.
- Granice wprowadzania:
- Minimalna i maksymalna długość.
- Puste pole.
- Typ danych: Upewnić się, że pole akceptuje tylko dozwolone znaki w emailu.
- Komunikaty o błędach: Poprawność i informatywność komunikatów przy nieprawidłowym wprowadzeniu.
- Interakcja:
- Fokus pola (stan fokusu).
- Stan wpisywania.
- Stan błędu.
Weryfikacje po stronie back-end (serwer):
- Walidacja formatu: Dodatkowa weryfikacja formatu email, aby zapobiec obejściu walidacji front-end.
- Unikalność: Jeśli email musi być unikalny (np. podczas rejestracji), sprawdzenie duplikatów w bazie danych.
- Logika biznesowa: Sprawdzenie zgodności z zasadami biznesowymi (np. zakaz używania określonych domen).
- Obsługa znaków specjalnych: Prawidłowa obsługa znaków mogących powodować problemy (np. SQL injection).
- Sprawdzenie istnienia domeny: Opcjonalne sprawdzenie istnienia domeny email.
Przykłady testów:
- Pozytywne:
- Wprowadzenie poprawnego adresu email.
- Wprowadzenie adresu email z długą domeną/rozszerzeniem.
- Wprowadzenie adresu email z subdomenami.
- Negatywne:
- Puste pole.
- Wprowadzenie tekstu bez znaku
@. - Wprowadzenie tekstu bez części domeny po
@. - Wprowadzenie tekstu z spacjami.
- Wprowadzenie tekstu z niedozwolonymi znakami.
- Wprowadzenie adresu email przekraczającego maksymalną długość.
- Wprowadzenie już zarejestrowanego adresu email (przy rejestracji).
- Wprowadzenie adresu email z niepoprawnym formatem znaków specjalnych.
Automatyzacja:
Do automatyzacji tych testów można użyć różnych frameworków i narzędzi:
- Automatyzacja UI: Selenium, Cypress, Playwright do testowania walidacji front-end i interakcji z polem.
# Przykład pseudokodu dla Selenium w Pythonie
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("adres_twojej_aplikacji")
pole_email = driver.find_element_by_id("emailInput") # Znalezienie pola po ID
pole_email.send_keys("niepoprawny-email") # Wprowadzenie niepoprawnego email
wiadomosc_bledna = driver.find_element_by_id("errorMessage") # Znalezienie elementu z komunikatem o błędzie
assert "Nieprawidłowy format email" in wiadomosc_bledna.text # Sprawdzenie tekstu komunikatu
driver.quit()
- Automatyzacja API: RestAssured, Postman, Requests (Python) do testowania walidacji backend poprzez wysyłanie zapytań z różnymi danymi.
// Przykład pseudokodu dla Postman
{
"email": "niepoprawny-email"
}
// Przykład testu w Postman
pm.test("Kod statusu to 400", function () {
pm.response.to.have.status(400); // Sprawdzenie, czy serwer zwrócił błąd 400
});
pm.test("Poprawność komunikatu o błędzie", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.message).to.eql("Nieprawidłowy format email"); // Sprawdzenie tekstu komunikatu
});
Dodatkowe aspekty:
- Testowanie z użyciem rzeczywistych danych (jeśli dostępna jest baza testowa).
- Testowanie na różnych urządzeniach i przeglądarkach.
- Testy wydajnościowe pola przy wprowadzaniu dużej ilości danych.