Protractor Nedir?

Elif Duman
Apinizer
Published in
3 min readNov 8, 2021

Protractor web uygulamaları testi için Jasmine, Selenium WebDriver, Node.js gibi güçlü teknolojileri bir araya getiren uçtan uca bir test ortamıdır.

Başlangıçta Google tarafından özellikle Angular ve AngularJS uygulamaları için geliştirilmiş ve açık kaynak (open-source) olarak yayınlanmıştır. Projeye Github üzerinden ulaşabilirsiniz.

Günümüzde hem Angular hem de Angular olmayan uygulamaları desteklemektedir. Protractor, WebDriver.js üzerine inşa edilmiş olup Angular’ın özelliklerine ek olarak Selenium WebDriver’da desteklenen tüm özellikleri de destekler.

Neden Protractor?

  • Test senaryoları yazmak için basit bir sözdizimine (syntax) sahiptir.
  • Selenium Grid kullanarak aynı anda birden fazla tarayıcı çalıştırabilir.
  • Angular’a özgü locator’ları destekler.
  • Jasmine, Mocha gibi davranış odaklı geliştirmeyi (Behavior-driven development) destekler.
  • “sleep”, “wait” kullanımına ihtiyaç yoktur.
  • Birçok tarayıcıyı destekler (Firefox, Chrome, Safari, Internet Explorer).
  • Kodu değiştirmeye gerek olmadan aynı scriptleri mobil tarayıcılarda da çalıştırabilir.
  • Gerçek ve headless tarayıcılarda çalışma imkanı sağlar.

Protractor Nasıl Çalışır?

https://www.magnitia.com/protractor-training.html

Protractor, gerçek bir tarayıcıda testler çalıştırır ve gerçek bir kullanıcı gibi uygulama ile etkileşime girer.

Protractor’ın çalışması için öncelikle node.js yüklenmesi gerekir. Doğru bir şekilde yüklendiğinden emin olmak için aşağıdaki komutlar çalıştırılır:

node -vnpm -v

Yükleme tamamlandıktan sonra komut istemine aşağıdaki komut yazılır (‘-g’ global olarak yüklenmesi içindir. Global olarak kurulmak istenmiyorsa ‘-g’ ifadesi eklenmez):

npm install -g protractor

Protractor’ın doğru bir şekilde kurulduğundan emin olmak için:

protractor --version

Şimdi Selenium sunucusunun ve ChromeDriver’ın yüklenmesi gerekiyor. Bunun için şu komut çalıştırılır:

webdriver-manager update

Çalıştırmak için ise:

webdriver-manager start

Hepsi bu kadar. Bu aşamadan sonra testlerin yazılması için bir ortama ihtiyaç vardır. IntelliJ, Eclipse gibi bir IDE veya Atom gibi bir editör kullanılabilir.

Protractor’ın çalışması için bir spesifikasyon (spec) ve bir konfigürasyon (config) dosyası olmak üzere iki dosyaya ihtiyacı vardır.

  • Konfigürasyon dosyası: Bu dosya test dosyalarının (spec.js) nerede olduğunun belirtildiği ve Selenium server ile iletişimin kurulduğu dosyadır. Chrome testler için varsayılan tarayıcıdır.
  • Spesifikasyon dosyası: Bu ise uygulama ile etkileşim kurmak için yazılmış olan test adımlarını içeren dosyadır.

Spec Dosyası

Bu örnek test senaryosu için oluşturulan spec dosyası todo-spec.js olarak kaydedilir.

describe('angularjs homepage todo list', function() {
it('should add a todo', function() {
browser.get('https://angularjs.org');

element(by.model('todoList.todoText')).sendKeys('write first protractor test');
element(by.css('[value="add"]')).click();

var todoList = element.all(by.repeater('todo in todoList.todos'));
expect(todoList.count()).toEqual(3);
expect(todoList.get(2).getText()).toEqual('write first protractor test');

// You wrote your first test, cross it off the list
todoList.get(2).element(by.css('input')).click();
var completedAmount = element.all(by.css('.done-true'));
expect(completedAmount.count()).toEqual(2);
});
});

Config Dosyası

Spec dosyasının tanımlandığı konfigürasyon dosyası config.js ismiyle kaydedilir.

exports.config = {
seleniumAddress: 'http://localhost:4444/wd/hub',
specs: ['todo-spec.js']
};

Yukarıdaki test, Chrome tarayıcısında varsayılan olarak yerel adreste (local host address) çalıştırılır.

Testin Çalıştırılması

Test için gerekli dosyalar hazır olduğunda, komut isteminde aşağıdaki komut çalıştırılarak test yürütülür:

protractor conf.js

Test çalıştıktan sonra şuna benzer bir çıktı alıyorsanız,

1 spec, 0 failures

Voilà! Protractor ile ilk deneme başarılı bir şekilde sonuçlandı demektir!

https://testsigma.com/blog/what-are-the-kpis-of-software-testing-and-qa-testsigma/

Bu yazıda kısaca Protractor’ın ne olduğunu ve nasıl çalıştığını anlatmaya çalıştım. Bir sonraki yazı Apinizer platformumuzda Protractor ile nasıl test yazdığımız ile ilgili olacaktır. Takipte kalın!

--

--