Sobes.tech
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).
  • 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.