Testarea email-urilor folosind Cypress
Testarea email-urilor nu e cel mai simplu lucru dar exista solutii relativ accesibile. In acest articol vreau sa iti arat cum poti sa folosesti serviciul Mailosaur si CypressIO pentru face teste legate de client emails. Totul porneste de la instalarea CypressIO care se face destul de usor urmarind acest tutorial de pe website-ul oficial. Odata instalat va fi nevoie sa ne ocupam si de pluginul cypress-mailosaur urmand pasii de mai jos.
- Instalam pluginul Mailosaur folosind comanda: npm i -D cypress-mailosaur
- Adaugam in fisierul support/e2e.js aceasta linie: import ‘cypress-mailosaur’;
- Ne facem un cont pe Mailosaur.com si generam un API
- Adaugam in cypress.config.js linia (exemplu): env: {MAILOSAUR_API_KEY: “your-key-here”,},
- Cautam ServerID si adresa de email a contului in dashboard
Scriem testul automat
Incepem prin a creea o suita noua si un test.
describe('Storia website', () => { it('should send a reset password email', () => { }) })
Deschide pagina de resetare a parolei de pe website-ul Storia.ro.
cy.visit('https://www.storia.ro/ro/login/reset');
Inchidem popup-ul de cookies, scriem adresa noastra de email si apasam butonul de confirmare.
cy.get('#onetrust-accept-btn-handler').click(); cy.get('#reset-email').type('[email protected]'); cy.get('.css-u8gy83').click();
Verificam inboxul Mailosaur pentru a cauta emailul de resetare a parolei dupa subiect (asta dupa o pauza de 7 secunde pentru a ne asigura ca emailul a ajuns in inbox).
cy.wait(10000); cy.mailosaurListMessages("ihl97m9d") .then((result) => { const email = result.items[0]; expect(email.subject).to.equal("Codul pentru schimbarea parolei"); return cy.mailosaurGetMessageById(email.id); })
Verificam daca in corpul emai-lului de resetare a parolei exista un anumit text.
.then((email) => { cy.log(email.html.body); expect(email.html.body).to.contain("<title>Am primit o solicitare de resetare a parolei contului tau</title>"); });
Vrei sa inveti testare software? Foloseste cursurile mele bestseller:
Curs de Automation cu Selenium si Python https://bit.ly/3TlKP6x
Curs de Testare Manuala si Automata https://bit.ly/3oxt0Be
Pregatire de interviu QA https://bit.ly/3J2hd8u
Testul complet
describe('Storia website', () => { it('should send a reset password email', () => { cy.visit('https://www.storia.ro/ro/login/reset'); cy.get('#onetrust-accept-btn-handler').click(); cy.get('#reset-email').type('[email protected]'); cy.get('.css-u8gy83').click(); cy.wait(10000); cy.mailosaurListMessages("ihl97m9d") .then((result) => { const email = result.items[0]; expect(email.subject).to.equal("Codul pentru schimbarea parolei"); return cy.mailosaurGetMessageById(email.id); }) .then((email) => { cy.log(email.html.body); expect(email.html.body).to.contain("<title>Am primit o solicitare de resetare a parolei contului tau</title>"); }); }) })