31 Aralık 2020

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.

 

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

  1. Protractor https://www.protractortest.org/#/

  2. Cypress.io https://www.cypress.io/

 

Gamze Yılmazer