Protractor vs Cypress.io
Angular.js kullanılarak önyüzü(frontend) yazılmış bir projede otomasyon tool u olarak hangi aracı kullanmalıyız sorusu için tercih edilen toollardan biri; Angular yüklenirken default test tool u olarak yüklenen Protractor, diğeri ise yeni yükselmeye başlayan Cypress.io dur. Bu toollar dışında Selenium, Katalon ve benzeri test toolları ile de Angular ile yazılmış uygulamalar test edilebilmektedir. Bu yazıda Protractor ve Cypress.io test otomasyon tool larının özellikleri karşılaştırılmıştır.
Protractor, Angular projeleri test edebilmek için Google tarafından geliştirilmiş bir E2E test aracıdır. Geliştirilme amacı, Selenium ile erişilemeyen Angular a özel attribute lara (ng- ile başlayan componentler). erişebilmek ve javascriptin asynchronous call larını handle edebilmektir. Selenium tabanlı olduğu için Angular ile yazılmamış uygulamaların testlerinde de kullanılabilmektedir.
Cypress ise tamamen mevcuttaki Selenium bazlı diğer toollardan farklı olarak altyapı olarak Selenium u kullanmayan bir tool olarak ortaya çıkmıştır. Açık kaynak kodlu, direkt olarak browser üzerinden çalışabilen böylelikle gerçek kullanıcı davranışlarını taklit edebilen test otomasyon aracıdır. Modern web frameworklerini (Angular.js, React.js, Vue.js gibi) test edebilmek için oluşturulmuştur.
Protractor | Cypress | |
Kurulum | Node.js kurulmuş olmalıdır. npm install -g protractor komutu ile yüklenir. protractor.conf.js dosyasında gerekli konfigürasyonlar yapılır. | Node.js kurulmuş olmalıdır. npm install cypress --save-dev komutu ile yüklenir. |
Test framework | Test framework ü default Jasmine dir. İstenirse farklı bir test framework ü ve assertion library ler indirilip yüklenebilmektedir. | Test framework leri ve assertion libraryleri, içerisinde yüklü olarak gelmektedir. |
Altyapı | Selenium bazlı | Selenium bazlı değil |
Test design | Page Object kullanılabilmektedir. | Cypress POM kullanmaktadır. |
Multi Platform | Windows, Mac OS, Linux | Windows, Mac OS, Linux |
Cross browser desteği | Cross browser desteği var. Selenium tabanlı olduğu için ilgili driver lar yüklenerek sağlanabilmektedir. Desteklediği Tarayıcılar: Chrome, IE, Safari, Edge, Firefox, Opera | Cross browser desteği yok. Roadmap lerinde ileride bu özelliği sağlayacaklarını belirtmektedirler. Desteklediği Tarayıcılar: Chrome, Edge, Firefox(beta), Electron |
Raporlama | Default reporting mekanizması bulunmamaktadır. 3rd party plugin eklemek gerekmektedir. | Default reporting özelliği bulunmaktadır. |
Debugging | Debug konfigürasyonu yapıldıktan sonra kolaylıkla yapılabilmektedir. | Sadece “debugger” keyword ü ile gerçekleştirilebilebilmektedir. |
Programlama dili | Javascript | Javascript |
Parallel test | Var | Var |
Screenshots ve Video desteği | Screenshots alınabilmektedir. Video için 3rd party plugin kullanılabilir. | Cypress Dashboard ile screenshots ve video desteği sağlanmaktadır. |
Cookie yönetimi | Var | Var |
Otomasyon testlerinde tool seçimine karar verirken proje istekleri göz önüne alınmalıdır. Cross browser testi öncelikli ise Protractor tercih edilebilir ya da Cypress kullanılacaksa browser testi için farklı bir tool tercih edilebilir. Her ikisi de javascript ile yazıldığı için başlangıç seviyesinde javascript bilgisi gerekmektedir.
Referanslar
Protractor https://www.protractortest.org/#/
Cypress.io https://www.cypress.io/
Gamze Yılmazer