Junior
Kako izvršiti testiranje polja za unos e-pošte?
sobes.tech АИ
Одговор од АИ
Testiranje polja za unos e-mail adrese uključuje provere na nivou frontenda i backenda, kao i testiranje korisničkog interfejsa.
Provere (Client-Side):
- Validacija formata:
- Ispravne adrese (npr.
test@example.com,test.name@sub.example.co.uk). - Neispravne adrese (nedostatak
@, domena, neispravni specijalni karakteri, razmaci).
- Ispravne adrese (npr.
- Granice unosa:
- Minimalna i maksimalna dužina.
- Prazno polje.
- Tip podataka: Uverite se da polje prihvata samo dozvoljene karaktere u emailu.
- Poruke o grešci: Tačnost i informativnost poruka pri neispravnom unosu.
- Interakcija:
- Fokus na polje.
- Stanje kucanja.
- Stanje greške.
Back-end (Server-Side) provere:
- Validacija formata: Ponovna provera formata emaila radi sprečavanja zaobilaženja validacije na frontendu.
- Jedinstvenost: Ako email mora biti jedinstven (npr. pri registraciji), provera duplikata u bazi podataka.
- Poslovna logika: Provera usklađenosti sa poslovnim pravilima.
- Obrada specijalnih karaktera: Ispravna obrada karaktera koji mogu izazvati probleme (npr. SQL injection).
- Provera postojanja domena: Opcionalna provera postojanja domena u email adresi.
Primeri testova:
- Pozitivni:
- Unos validne email adrese.
- Unos emaila sa dugim domenom/domenom zonom.
- Unos emaila sa poddomenima.
- Negativni:
- Prazno polje.
- Unos teksta bez simbola
@. - Unos teksta bez dela domena posle
@. - Unos teksta sa razmacima.
- Unos teksta sa nedozvoljenim simbolima.
- Unos emaila koji prelazi maksimalnu dužinu.
- Unos već registrovanog emaila.
- Unos emaila sa neispravnim formatom specijalnih karaktera.
Automatizacija:
Za automatizaciju ovih testova mogu se koristiti različiti okviri i alati:
- UI automatizacija: Selenium, Cypress, Playwright za testiranje frontenda i interakcije sa poljem.
# Primer pseudokoda za Selenium u Pythonu
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("your_app_url")
email_field = driver.find_element_by_id("emailInput") # Pronađi polje po ID-u
email_field.send_keys("invalid-email") # Unesi neispravan email
error_message = driver.find_element_by_id("errorMessage") # Pronađi element sa porukom o grešci
assert "Invalid email format" in error_message.text # Proveri tekst
driver.quit()
- API automatizacija: RestAssured, Postman, Requests (Python) za testiranje backenda slanjem zahteva sa različitim podacima.
// Primer pseudokoda za Postman
{
"email": "invalid-email"
}
// Primer testa u Postman Tests
pm.test("Status code is 400", function () {
pm.response.to.have.status(400); // Proverava da li je server vratio grešku 400
});
pm.test("Error message is correct", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.message).to.eql("Invalid email format"); // Proverava tekst poruke o grešci
});
Dodatni aspekti:
- Testiranje sa pravim podacima (ako postoji test baza podataka).
- Testiranje na različitim uređajima i pretraživačima.
- Testiranje performansi polja pri unosu velike količine podataka.