Junior
Kaip atlikti el. pašto įvesties lauko testą?
sobes.tech AI
Atsakymas iš AI
El. pašto įvesties lauko testavimas apima tiek frontend, tiek backend patikrinimus, taip pat naudotojo sąsajos testavimą.
Frontend (Client-Side) patikrinimai:
- Formato validacija:
- Teisingi adresai (pvz.,
test@example.com,test.name@sub.example.co.uk). - Netinkami adresai (trūksta
@, domeno, neteisingi specialieji simboliai, tarpai).
- Teisingi adresai (pvz.,
- Įvedimo ribos:
- Minimalus ir maksimalus ilgis.
- Tuščias laukas.
- Duomenų tipas: Užtikrinti, kad laukas priimtų tik el. pašto simbolius.
- Klaidos pranešimai: Teisingumas ir informatyvumas klaidų pranešimuose.
- Sąveika:
- Lauko fokusavimas.
- Įvedimo būsena.
- Klaidos būsena.
Backend (Server-Side) patikrinimai:
- Formato validacija: Pakartotinė el. pašto formato patikra, siekiant išvengti frontend validacijos apeidinėjimo.
- Unikalumas: Jei el. paštas turi būti unikalus (pvz., registracijos metu), patikra duomenų bazėje.
- Verslo logika: Verslo taisyklių atitikties patikra.
- Specialių simbolių apdorojimas: Tinkamas simbolių apdorojimas, kurie gali sukelti problemas.
- Domeno egzistavimo patikra: Pasirinktinai patikrinti, ar domeno dalis egzistuoja.
Testų pavyzdžiai:
- Teigiami:
- Valtivus el. pašto įvedimas.
- Ilgo domeno įvedimas.
- Subdomenų įvedimas.
- Neigiami:
- Tuščias laukas.
- Teksto įvedimas be
@simbolio. - Teksto įvedimas be domeno dalies po
@. - Teksto įvedimas su tarpais.
- Netinkamų simbolių įvedimas.
- El. pašto įvedimas, viršijantis maksimalų ilgį.
- Jau registruoto el. pašto įvedimas.
- Netinkamo formato specialių simbolių įvedimas.
Automatizacija:
Šiuos testus galima automatizuoti naudojant įvairius karkasus ir įrankius:
- UI automatizacija: Selenium, Cypress, Playwright.
# Pavyzdinis pseudokodas Selenium su Python
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("your_app_url")
email_field = driver.find_element_by_id("emailInput") # Surandame lauką pagal ID
email_field.send_keys("invalid-email") # Įvedame neteisingą el. paštą
error_message = driver.find_element_by_id("errorMessage") # Surandame klaidos pranešimo elementą
assert "Invalid email format" in error_message.text # Patikriname klaidos tekstą
driver.quit()
- API automatizacija: RestAssured, Postman, Requests (Python).
// Pavyzdinis Postman pseudokodas
{
"email": "invalid-email"
}
// Postman testų pavyzdys
pm.test("Status code is 400", function () {
pm.response.to.have.status(400); // Patikriname, ar serveris grąžino 400 klaidą
});
pm.test("Error message is correct", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.message).to.eql("Invalid email format"); // Patikriname klaidos tekstą
});
Papildomi aspektai:
- Testavimas su realiais duomenimis.
- Testavimas įvairiuose įrenginiuose ir naršyklėse.
- Laiko našumo testavimas.