Cypress E-mail Testlerinde Başarısızlık Kayıt Defteri
E-posta doğrulama testleri Cypress'te sinir bozucu bir soruna takılır: "e-posta beklendi, ama hiç gelmedi." Sonraki çalışma geçer, takım retry ekler. Bir hafta sonra aynı test farklı bir nedenle başarısız olur, hangi sinyale güveneceksin? burada başarısızlık kayıt defteri devreye girer.
Başarısızlık kayıt defteri, her test denemesinin kısa, yapılandırılmış bir hikayesini tutar. Test ne istedi, posta kutusu ne döndürdü, assertion neden kabul veya reddetti, hepsi kaydedilir. Cypress'te özellikle faydalı çünkü tarayıcı süreci ve Node görev süreci farklı işler yapar; bu ayrımı izlemek hataları ayıklamayı kolaylaştırır.
Retry'nin yapamadığı şey burada başlar. Retry, senaryonun daha sonra geçip geçmediğini söyler. Ama ilk denemede eski bir mesaj mı kullanıldı, yanlış posta kutusu mu sorgulandı, teslimat sınırı mı geçildi yoksa gerçek bir ürün hatası mı oldu, bunu açıklamaz. Parola sıfırlama testi örneğinde: mesaj 30 saniye gecikmeli geldiyse, retry geçer ama test aslında zaman sınırını ihlal ediyor. Kayıt defteri bunu görür.
Pratik olarak, her e-posta sorgusu sırasında şunu kaydet: istek zamanı, alınan mesajlar (konu, gönderen, varış saati), assertion sonucu ve neden başarısız oldu. JSON formatında tutarsan, test sonrası analiz etmek kolay olur. Cypress görevinde e-posta API'sini çağırdığında, yanıtı döndürmeden önce bu bilgileri bir dosya veya veritabanına yaz. Tarayıcı süreci başarısızlıkla karşılaşırsa, görev süreci zaten detayları kaydettmiş olur.
Hedef her e-postayı sonsuza kadar saklamak değil; QA mühendisinin tüm pipeline'ı beş kez çalıştırmadan hatayı sınıflandırmasına yetecek kadar kanıt tutmak. Böylece flaky testler gerçek sorunlardan ayrılır ve takım güvenle hata ayıklayabilir.
0 yorum