protractor testing tool
Açıölçer nedir?
İletki, web uygulamaları testi için bir otomasyon test aracıdır; Jasmine, Selenium Webdriver, Node.js vb. gibi güçlü teknolojileri birleştirir.
İletki test aracı, Angular JS uygulamalarını akılda tutarak tasarlanmış, uçtan uca davranış odaklı bir test çerçevesidir. Bu, Protractor gibi görünse de açısal olmayan JS uygulamalarıyla çalışmaz.
Hem Angular hem de Angular olmayan JS uygulamalarıyla eşit derecede iyi çalışır.
Keşfetmekten çekinmeyin tüm AngularJS serisi öğreticiler . Önceki eğitimimizde, Açısal Sürümler Arasındaki Fark detaylı olarak anlatıldı.
Ne öğreneceksin:
- Açıölçer vs Selenium WebDriver
- Özellikleri
- Açıölçer bana nasıl yardımcı olabilir?
- Hangi Çerçeve kullanılmalı?
- Açıölçer Nasıl İndirilir ve Kurulur
- İlk test durumunuzu oluşturmaya hazır mısınız?
- Test durumlarınızı nasıl çalıştırırsınız?
- Açıölçerin bazı daha harika özellikleri
- Sonuç
- Önerilen Kaynaklar
Açıölçer vs Selenium WebDriver
Açıölçeri gelenekselden farklı kılan nedir Selenium WebDriver ?
Şu soruları yanıtlamak için bir dakikanızı ayırın:
- Web sayfasının tam olarak ne zaman yüklendiğini belirlemek zor mu (Eşzamansız öğelerin tümü hazır ve işleniyor)?
- Kodunuza bekleme ve uyku sayıları eklemekten bıktınız mı?
- Açısal öğeleri bulmak için zahmetli çabalardan kurtulmak ister misiniz?
- Değişen kimliklere sahip öğeleri bulmaktan bıktınız mı?
- Kendi bulucunuzu yaratmak ister misiniz?
- En basit iddialar için bile uzun kod yazıyor musunuz?
- JavaScript meraklısı / hayranı mısınız?
Bu sorulara evet cevabını verdiyseniz, İletki yardım edebilir.
Selenium Webdriver üzerine inşa edilmiş bir paketleyicidir ve bu nedenle Selenium'un tüm yeteneklerini ve birçok yararlı eklentiyi sağlar. Sunduğu:
Özellikleri
Sunduğu:
1) WaitForAngular
android için en iyi ücretsiz mp3 müzik indirme uygulaması
Belgelerden:
' WebDriver'a devam etmeden önce Angular'ın işlemeyi bitirmesini ve ödenmemiş $ http veya $ zaman aşımı çağrılarının olmaması için beklemesini söyleyin. İletki'nin her WebDriver eyleminden önce bu komutu otomatik olarak uyguladığını unutmayın. '
Bunun anlamı, betiğinize beklemeleri manuel olarak eklemenize gerek olmadığı ve İletki, web öğelerinin yüklenmesini otomatik olarak bekleyecek ve yalnızca sonraki adımları uygulayacaktır.
iki) Global bir işlevi dışa aktarma yeteneğine sahiptir element , bir konum belirleyiciyi alır ve bir ElementFinder döndürür. Bu ElementFinder, click (), getText (), sendKeys () vb. Gibi bir dizi eylem yöntemine sahiptir. Bu, öğeyle nasıl etkileşim kurulacağının ve ondan nasıl bilgi alınacağının özüdür.
Bu genel işlev, eleman konumlandırma sözdizimini azaltmaya yardımcı olur. Öğeyi hem Selenium WebDriver hem de Açıölçer'de bulmak için aşağıdaki ifadeye bir göz atın:
Selenium Webdriver :
driver.findElement(By.cssSelector('css selector'));
İletki :
element(by.css('some-css'));
Sözdizimi kompakt görünüyor, değil mi?
3) Açısal öğelerin bulunmasına yardımcı olmak için sağlanan bazı yeni konum belirleme stratejileri ve işlevleri şunlardır: By.binding, By.repeater, By.textarea, By.model, WebElement.all, WebElement.evaluate , vb.
Açıölçer bana nasıl yardımcı olabilir?
Aşağıdaki göze çarpan özelliklere bir göz atın:
- Test durumları yazmak için basit sözdizimi
- Selenium Grid kullanarak aynı anda birden fazla tarayıcı çalıştırma yeteneği
- Köşeye özgü konumlayıcılar
- Jasmine / Mocha gibi Davranış odaklı geliştirme desteği
- Uyku / bekleme eklemeye gerek yok
- Jenkins / Browser Stack / Grunt vb. İle desteklenen entegrasyon
- Angular JS web sitelerinde senkronizasyon sorunuyla uğraşmaktan kurtulun
- Çoklu tarayıcı desteği (Firefox, Chrome, Safari, Internet explorer)
- Aynı komut dosyalarını mobil tarayıcılarda da kodu değiştirmeye gerek kalmadan çalıştırabilme
Hangi Çerçeve kullanılmalı?
Kutudan çıkar çıkmaz iki Davranış odaklı geliştirme (BDD) test çerçevesini destekler:
- Yasemin: Yasemin Protractor yüklendiğinde varsayılan test çerçevesidir. Jasmine'i bu yazımızda kullanacağız.
- Mocha: Mocha Node.js üzerinde çalışan bir JavaScript test çerçevesidir. Mocha'yı test çerçeveniz olarak kullanmak isterseniz, bunu İletki uygulayıcınızla kurmanız ve ayrıca Davranış Odaklı Geliştirme arayüzünü ve Chai ile Vaat Edilen Chai İddialarını kullanmanız gerekecektir (bkz. bu bağlantı daha fazla ayrıntı için ).
Açıölçer Nasıl İndirilir ve Kurulur
Bir node.js programı olduğundan, çalıştırmak için node.js'yi yüklemeniz gerekir. Node.js, işletim sistemi seçilerek bu URL'den indirilebilir: Node.js indirme
Node.js ile ayrıca Deniz seviyesinin üzerinde açıölçer artık İletki yüklemek için kullanılabilen paket.
Artık makinenize node.js yüklendiğine göre, komut istemini (cmd) açın ve global olarak yüklemek için aşağıdaki komutu tıklayın:
npm install -g protractor
'-G' bu aracı global olarak kurmak için kullanılır. Global olarak kurmak istemiyorsanız çıkarın. Bu komut ayrıca Protractor API'yi varsayılan bir selenyum sunucusuyla birlikte yükler; bu, bağımsız bir sunucu başlatmanız gerekmediği anlamına gelir.
Şimdi selenium sunucusunu ve ChromeDriver'ı yüklememiz gerekiyor. Cmd'de aşağıdaki komutu (Açıölçer ile birlikte gelir) kullanın:
webdriver-manager update
Bu çerçeveyi kullanarak ilk test senaryosu yazmamızla başlamamız gereken tek şey bu. Dilerseniz kodunuzu yazmak için herhangi bir IDE / düzenleyici kurabilirsiniz. Eclipse IDE popüler olanıdır, ancak dikkate alınması gereken daha havalı editörler de vardır. Şahsen, Açıölçer kod yazmam için 'Atom' editörünü tercih ediyorum.
İlk test durumunuzu oluşturmaya hazır mısınız?
Çalıştırmak için 2 dosyaya ihtiyacı var:
- Yapılandırma dosyası
- Spec dosyası.
Yapılandırma dosyası Protractor'a test dosyalarını nerede bulacağını (özellikler) / hangi tarayıcıyı seçeceğini / hangi çerçeveyi kullanacağını (Jasmine / Mocha) / Selenium tarayıcınız ve diğer yapılandırmalarla nerede konuşacağınızı söyleyen bir öğedir. Yapılandırma dosyalarında herhangi bir yapılandırma tanımlanmamışsa, varsayılanları kullanacaktır.
Spec dosyası, gerçek test kodumuzu yazdığımız dosyadır. Tüm test işlevsel akışımız / iddialarımız bu özel dosyada olacaktır. Test senaryolarının sayısına bağlı olarak birkaç spesifikasyon dosyası olabilir, ancak yalnızca 1 spesifikasyon dosyası birkaç spesifikasyonun tüm test paketini çalıştırabilir.
Örnek TEST DURUMU:
Şimdi, bir URL'ye gideceğimiz ve sayfa başlığını kontrol edeceğimiz basit bir test durumu yazacağız.
İşte adımlar:
- Test paketiniz için yeni bir klasör oluşturun.
- Adlı yeni bir dosya oluşturun ' js '. (Herhangi bir ad olur) Tüm özellik / yapılandırma dosyaları' .js 'uzantısında olacaktır.
- 'Olarak belirtilen adla yeni bir dosya oluşturun js '.
//CheckTitleSpec.js describe('Protractor Demo', function() { it('to check the page title', function() { browser.ignoreSynchronization = true; browser.get('https://www.softwaretestinghelp.com/'); browser.driver.getTitle().then(function(pageTitle) { expect(pageTitle).toEqual('Software Testing Help - A Must Visit Software Testing Portal'); }); }); });
Şimdi, hepimiz kodlamamızla başlamaya hazırız. Aşağıdaki 'testCaseNameSpec.js' dosyası koduna bakın.
Yapılandırma dosyası şuna benzer:
// conf.js exports.config = { framework: 'jasmine', capabilities: { browserName: 'chrome', }, specs: ('simpleTestSpec.js') };
Şimdi bu 2 dosyayı kıralım ve nasıl çalıştığını görelim.
# 1) Spec.js
- Tarayıcı düzeyindeki tüm komutlar ' tarayıcı ’, Protractor tarafından oluşturulan global.
- Jasmine çerçevesini takip ettiğimiz için ' tanımlamak ' ve ' o 'Jasmine'in sözdizimleridir. Açıklama, test olayınızın akışının sonuna kadar tamamını içerirken 'o', bazı test adımlarını / senaryoları vb. İçerebilir. Birden fazla ' o 'Dilerseniz programınızı engeller.
- browser.get Açıölçer'e tarayıcıda belirli bir URL'ye ulaşmasını söyleyen basit bir Selenium sözdizimidir.
- Vurmaya çalıştığımız web sitesi açısal olmayan bir web sitesi olduğu için, ignoreSynchronization etiketle ' doğru '4. satırda gösterildiği gibi. Bu etiketi doğru yapmazsanız, testiniz 'Sayfada açısal bulunamadı' hatasıyla başarısız olacaktır. Bunun arkasındaki sebep, Protractor'ın varsayılan olarak açısal web siteleriyle çalışmayı beklemesidir ve eğer açısal olmayan web sitesini doğrulamak için Açıölçer kullanıyorsak, bunu Protractor'a açıkça söylememiz gerekir. Ancak, açısal web sitelerinde çalışıyorsanız, İletki varsayılan olarak web sayfasını köşeli olarak kabul edeceği için bu ifadeyi kullanmanıza gerek yoktur.
- 'Beklemek', web sayfası başlığını önceden tanımlanmış bazı verilere eşit olacak şekilde karşılaştırdığımız iddiadan başka bir şey değildir. Daha fazla iddiayı ayrıntılı olarak tartışacağız.
#iki) conf.js
- Daha önce tartışıldığı gibi, Konfigürasyon dosyası, İletki'ye temel ayrıntıları anlatan dosyadır. Kodda gösterildiği gibi çerçeve 'Jasmine' dir.
- Yetenekler bölümünün içinde, tarayıcı yapılandırmaları ayarlanır. Firefox / chrome vb. Gibi tarayıcı adını tanımlayabilirsiniz. Ayrıca, tarayıcıların maksimum örneklerini de ayarlayabilirsiniz, böylece bir seferde, farklı tarayıcı pencerelerinde birden çok test çalışması çalıştırabilirsiniz.
- İçinde ' özellikler ’Bölümünde, spesifikasyon dosyasının yolunu, yani spesifikasyon dosyasının konfigürasyon dosyasına göre tam olarak nerede olduğunu veriyoruz.
- Yapılandırma dosyanıza, raporlama / onPrepare işlevi / eşik zaman aşımı vb. Gibi ekleyebileceğiniz başka birçok harika özellik de vardır. Bu eğitimde bunlardan birkaçını ele alacağız.
Test durumlarınızı nasıl çalıştırırsınız?
Kodu yazdık ve şimdi tek ihtiyacımız olan kodumuzu çalıştırmak için biraz zorlamak. Programınızı çalıştırmak için cmd'de aşağıdaki komutu tıklayın:
protractor conf.js
Bu komut selenyum sunucusunu çalıştırmaya ve ardından test komut dosyanızı çalıştırmaya başlayacaktır. Günlükleri cmd'nin kendisinde görüntüleyebilirsiniz veya isterseniz günlükler bir .txt dosyasında da (yalnızca >> textFileName.txt ekle Yukarıdaki komuttan sonra günlükler, yapılandırma dosyasıyla aynı dizinde bulunan metin dosyasına kaydedilecektir).
Bir krom pencere açılacak, burada SoftwareTestingHelp.com web sitesi açılmalıdır. Kodu çalıştırdığınızda çıktı '1 spesifikasyon, 0 hata' olacaktır. Bunun anlamı, 0 başarısızlıkla yürütülen 1 'it' bloğumuz olduğudur.
Şimdi, Angular web sitesini test etmeye gelince ileticinin Selenium'u nasıl kullandığını görebilmeniz için, AngularJS üzerinde oluşturulmuş bir web sayfasında bazı eylemler gerçekleştirdiğimiz aşağıdaki özellik dosyasını göz önünde bulundurun:
pc ücretsiz indirmek için yapay zeka yazılımı
// spec.js describe('Code to interact with Angular JS elements', function() { it('should multiply two integers', function() { browser.get('http://juliemr.github.io/protractor-demo/'); element(by.model('first')).sendKeys(5); element(by.model('second')).sendKeys(5); element(by.model('operator')).click(); element(by.xpath('.//option(@value= 'MULTIPLICATION')')).click(); element(by.id('gobutton')).click(); expect(element(by.binding('latest')) .getText()).toEqual('10'); //Incorrect expectation expect(element(by.binding('latest')) .getText()).toEqual('25'); //Correct expectation }); });
Bu spesifikasyonu çalıştırmak için aynı conf.js'yi de kullanabilirsiniz. Sadece belirtim dosyası adını güncellediğinizden emin olun.
Şimdi, bu özellik dosyasında, Açıölçerin tam olarak neler yapabileceğini görebilmeniz için açısal bir JS web sitesiyle oynuyoruz.
Bu dosyayı daha önce yaptığımız gibi çalıştırırsanız, 2 metin kutusu, bir açılır menü, bir düğme ve birkaç başka web öğesi içeren bir web sayfası açılacaktır. Zaten tahmin etmiş olabileceğiniz gibi, bu bir hesap makinesi sayfası. Girdi olarak 2 tamsayı verip çarpma işlemi yapıyoruz.
Daha önce tartıştığımız gibi, bu aracı kullanmanın en büyük avantajlarından biri, Açısal öğeleri bulmak için benzersiz teknikleridir. 'By.model' öğeleri bulmanın böyle bir yoludur. '.SendKeys ()' değerleri metin kutularına göndermek için olağan Selenium sözdizimidir ve '.Tıklayın()' düğmelere tıklamak için kullanılır.
Daha önce tartışıldığı gibi, 'Beklemek' Açıölçer'den sayıların çarpımının sonucunu yakalamasını ve bunu sırayla '10' ve '25' ile karşılaştırmasını isteyen bir iddiadır. Basit Matematik bize çıktının '25' olması gerektiğini söyler ve bu nedenle ilk iddia başarısız olur ve ikinci geçer.
Sonuç olarak ' 1 Teknik Özellik, 1 Arıza ', Beklenen bir şekilde kodu çalıştırdığınızda günlüklerde.
Açıölçerin bazı daha harika özellikleri
# 1) İddialar ve ek açıklamalar
İddialar, otomasyon komut dosyalarının önemli bir parçasıdır. Ek açıklamalar, bir sınıftaki belirli yöntemleri özel bir anlama sahip olacak şekilde etkili bir şekilde etiketlemede çok kullanışlıdır.
Çeşitli iddialar ve ek açıklamalar sağlar ve buna ek olarak kendi iddialarınızı oluşturma yeteneği de sağlar.
Aşağıdaki örneği düşünün:
describe('Code to understand assertions/annotations', function() { beforeEach(function() { browser.get('http://juliemr.github.io/protractor-demo/'); }); afterEach(function() { browser.get('https://www.madewithangular.com/#/'); }); var multiplyNumbers = function(a, b) { element(by.model('first')).sendKeys(a); element(by.model('second')).sendKeys(b); element(by.model('operator')).click(); element(by.id('gobutton')).click(); }; it('should multiply two integers', function() { multiplyNumbers(2, 2); expect(element.all(by.repeater('result in memory')).count()).toEqual(2); multiplyNumbers(3, 3); expect(element.all(by.repeater('result in memory')).count()).toEqual(2); }); });
Yukarıdaki örnekte 2 ek açıklama kullanıyoruz, 'Her biri' ve 'Her birinden sonra' . Bu açıklamalar ayrıca TestNG'de (geleneksel Selenium) mevcuttur. Bu açıklamalar, belirli bir kod parçasının kalan kodun çalıştırılmasından önce / sonra yürütüldüğünden emin olur.
Öyleyse, işte kodun yürütülmesi nasıl gerçekleşecek,
- Açıölçer, ' her biri 'Önce engelleyin ve' http://juliemr.github.io/protractor-demo/ Tarayıcıdaki URL.
- Şimdi, akış 'it' bloğuna ve işlevine taşınacak ' multiplyNumbers ' çağrılacak ve bu da belirtilen eylemleri gerçekleştirecek ve kontrolü işlevin çağrıldığı yere geri gönderecek.
- Sonunda, iddia işini yapacak. Şimdi, birden çok öğeyi aynı anda ele almak istiyorsak, bu aracın bir özelliğini 'element.all' kullanabilirsiniz. Belirtilen konumlandırıcıyla mevcut tüm öğeleri tanımlayacaktır (bu durumda yineleyici tarafından). Tanımlanan unsurlarla ne yapmak istediğiniz size kalmıştır. Bu durumda, hesaplama geçmişini belirli bir sayı ile karşılaştırıyoruz.
- İlk iddiada, hesaplama geçmişi sayısını '2' ile karşılaştırdığımız için, hesaplamayı yalnızca bir kez gerçekleştirmiş olsak bile, iddia başarısız olacaktır. Ancak ikinci iddia, ikinci hesaplamadan sonra geçmiş sayımı '2' olacağı için geçecektir.
Daha birçok mevcut iddia türü vardır. Bunlardan bazıları aşağıda verilmiştir:
a) Bir web öğesinden metin alın ve belirli bir değerle karşılaştırın:
element(by.locator('someLocator')).getText(text) .then(function() { expect(text).toEqual('someData'); expect(text).not.toEqual('someData'); expect(text).toContain('someOtherData'); });
b) Sayfada bir web öğesinin görüntülenip görüntülenmediğini doğrulayın:
expect(browser.driver.findElement(by.locator(someLocator)) .isDisplayed()).toBe(true);
# 2) Birden çok tarayıcıyı / pencereyi / sekmeyi kullanma
Tarayıcıyı idare etme konusunda birden fazla durum olabilir. Bu durumlardan bazıları aşağıda vurgulanmıştır:
a) Herhangi bir bağlantıya tıklandığında yeni bir sekme açılır
Bazen, herhangi bir bağlantıya tıkladığınızda, yeni bir sekme açılır ve diğer işlemlerin yeni açılan pencerede gerçekleşmesi gerekir. Bu durumda, kodu yeni bir sekmenin açıldığı noktaya yazdığınızda, aşağıdaki yolu kullanarak Pencere İşleyicisini uygulamanız gerekir:
//Get all of the opened windows and store the count in handles browser.getAllWindowHandles().then(function(handles) { //Now switch the control to the newly opened window browser.switchTo().window(handles(1)).then(function() { //Write the code which needs to be executed in the new tab }); });
Önce mevcut tüm pencerelerin sayısını alın ve ardından pencereler arasında kontrol değiştirmek için indekslemeyi kullanın. Yeni pencereyi başlatan orijinal pencerenin indeksi 0 olurken, sonraki pencereler artan indekslere sahip olacaktır.
b) Yeni oturumla tamamen yeni bir tarayıcı açmak
Bir tarayıcıda bazı eylemler gerçekleştirmeniz gerektiğinde ve tarayıcının farklı bir oturumunda başka eylemler yapmanız gerektiğinde, çatalNewDriverInstance . Bu durumda, aşağıdaki şekilde yeni bir tarayıcı adıyla yeni bir tarayıcı örneği oluştururuz:
describe('Code to understand assertions/annotations', function() { //Create a new browser instance var newBrowser = browser.forkNewDriverInstance(); it('should should open multiple browsers instances', function() { //Opens a URL in the 1st browser instance browser.get('http://juliemr.github.io/protractor-demo/'); //Opens a URL in the 2nd browser instance newBrowser.get('https://www.madewithangular.com/#/'); newBrowser.driver.quit(); }); });
c) Test durumunuzu birden çok tarayıcıda çalıştırmak:
Test durumunuzu aynı anda 2 tarayıcıda çalıştırmak, yapılandırma dosyasının sizin için yapabileceği bir şeydir. Aşağıdaki kodu yapılandırma dosyanıza eklemeniz yeterlidir:
Bu yapılandırma dosyasını çalıştırır çalıştırmaz, hem Firefox hem de Chrome'da aynı anda çalışan testleri göreceksiniz ve çalıştırma günlükleri komut isteminde ayrı ayrı görüntülenecektir.
// conf.js exports.config = { framework: 'jasmine', specs: ('SomeSpec.js'), multiCapabilities: ({ browserName: 'firefox' }, { browserName: 'chrome' }) }
# 3) Çerçevenizi daha da iyi hale getirmek için Sayfa Nesnelerini kullanın
Bu araç kendi başına iyidir ancak Sayfa Nesne Modeli (POM) ile birleştirildiğinde yenilmez hale gelir. Eksiklerinin çoğu (varsa) sayfa nesne modeliyle aşılır. Ayrıca POM, projenizi daha yapısal bir şekilde sürdürmenize yardımcı olur.
POM'un ne olduğunu bilmiyorsanız endişelenmeyin. POM, test durumunuzu sayfalara göre ayırmanın bir yoludur.
Bu örneği ele alalım:
Bir alışveriş sitesi var. Test durumunuz bir ürün seçmek, sepete eklemek ve ardından satın almaktır.
Şimdi, bunun için test komut dosyası kodunuzu yönetmenin iki yolu vardır:
- Mantığınızın yazıldığı aynı sayfada tüm konumlayıcılarla düz bir test senaryosu yazın,
- Tüm test senaryosu akışınızı, mantığınızı özellik dosyanıza yazın ve konum belirleyicilerinizi ve test verilerini farklı dosyalara ayırın. Her web sayfası eşdeğer bir .js sayfa dosyasına sahip olacaktır. Bu şekilde, kodunuz yapılandırılacak ve aynı konumlandırıcıyı gerektiren başka bir test durumu varsa, bu konumlandırıcıları tekrar yazmanıza gerek kalmaz, sadece bu konumlandırıcı dosyasını içe aktarın ve ihtiyacınıza göre kullanın.
Test vakalarınızı korumak gerçek bir acı olabilir. POM kullanıyorsanız, kodunuz çok daha yapısal bir şekilde olacaktır.
c programlama mülakat soruları ve cevapları pdf
Aşağıda, sayfa nesnesi modelinin kullanımına bir örnek verilmiştir:
Akış, yukarıdaki anlık görüntüdedir:
- Laptop satın alan bir test durumu var. Akış ve mantık için kod buyLaptopSpec.js'de olacaktır.
- Dizüstü Bilgisayarı satın alırken karşılaştığınız tüm sayfalarda uygun bir başlığa sahip 1 '.js' dosyası olacaktır. Dizüstü Bilgisayarı satın almak için kullanılması gereken tüm öğeler, bunların bulucuları ilgili sayfa dosyasının içinde olacaktır.
- Bu test senaryosu için gereken veriler TestData klasörüne '.json' biçiminde veya excel biçiminde kaydedilebilir.
- Sayfalar ve konumlandırıcılarla işiniz bittiğinde, konum belirleyici / test verilerini kullanmak için bu dosyaları özellik dosyanıza içe aktarmanız yeterlidir ve hepiniz test durumunuz hazır olur.
# 4) Raporlama
NPM (Node Package Manager), her bir test adımının ekran görüntüsünün alınabileceği çeşitli raporlama paketleri sağlar ve ayrıca test çalıştırması tamamlandığında sizin için bir HTML raporu oluşturur. Tek yapmanız gereken, bir komut istemi açıp aşağıdaki komutlara basarak bu paketleri kurmaktır:
npm install -g protractor-jasmine2-html-reporter
npm install protractor-jasmine2-screenshot-reporter --save-dev
Bu paketler kurulduktan sonra, konfigürasyon dosyanızı her çalıştırdığınızda, test olaylarınızın tüm ekran görüntüleri kaydedilir ve ayrıca test senaryosu başarılı / başarısız sonucunu gösteren bir HTML raporu oluşturulur.
# 5) Git / Jenkins / Browserstack / Grunt gibi diğer güçlü araçlarla entegre edin
Piyasada test durumlarınızı daha da iyi hale getirmenize yardımcı olacak birden fazla araç bulunmaktadır. Git / Jenkins / BrowserStack / Grunt, normal Açıölçer test komut dosyalarınıza önemli değer katan bu tür araçlardan bazılarıdır. Ve en iyi yanı, Açıölçerinizi bu araçlardan herhangi biriyle entegre etmek için özellik dosyanıza dokunmanıza gerek olmamasıdır. Tüm bunları sizin için alacak olan konfigürasyon dosyanızdır.
Git çok güçlü bir sürüm kontrol aracıdır. Birden fazla geliştirici varsa, kodunuzu Git'te tutmak her zaman en iyi uygulamadır.
Jenkins test senaryolarınızı planlayabileceğiniz ve ihtiyacınıza göre çalıştırabileceğiniz sürekli bir entegrasyon aracıdır. İletki komut dosyaları da Jenkins ile yapılandırılabilir. Test senaryolarınızı Jenkins üzerinde çalıştırmanın en iyi kullanımı, çok hızlı olması ve aynı anda birden fazla test senaryosu çalıştırabilmenizdir.
BrowserStack uygulamalarınızı farklı tarayıcılarda test etmek için de kullanılabilen bir çapraz tarayıcı test aracıdır. Ayrıca, config dosyanıza browserStack kimlik bilgilerini ekleyerek Protractor ile entegre edilebilir.
Zemin bir JavaScript görev çalıştırıcısıdır. Size birkaç görevi yerine getirme yeteneği sağlar. Onun harika yanı, 4000'den fazla görevin olması ve ihtiyacınıza göre daha da fazla görev oluşturabilmenizdir. Aşağıda, Grunt'ı kullanabileceğimiz önemli günlük kullanım görevlerinden birkaçı:
- En iyi kodlama uygulamalarının tümünü listeleyin ve bunlardan herhangi birini ihlal ettiğinizde hemen bilgilendirin.
- Çalışma zamanında birden çok özellik dosyası oluşturmak için. Örneğin , birkaç kez çalıştırmak istediğiniz herhangi bir test senaryosu varsa (1'den herhangi bir sayıya kadar). Bu, şu anda gereksiz görünebilir, ancak mevcut her ülkede çalıştırılacak herhangi bir alışveriş web sitesi ödeme akışını çalıştırmayı düşünün. Manuel olarak birden fazla özellik oluşturmak sıkıcı olacaktır. Öyleyse, Grunt bunu senin için yapsın.
- İzle özelliği. Bir test senaryosu yazarsınız ve üzerinde herhangi bir değişiklik yaptıktan sonra kodunuzu kaydeder kaydetmez, test durumunuzun çalışmasını istersiniz, Grunt onu alır.
- Birden çok dosyayı birleştirme.
Sadece bir deneyin ve onu seveceksiniz.
Sonuç
Selenium'un iletki gibi çalışmasını sağlayabilirsiniz ama neden tekerleği yeniden icat edersiniz? Google, Açıölçer'i bir cazibe gibi çalıştırmak için çok çaba sarf ettiyse, onu sonuna kadar kullanalım. En azından AngularJS web siteleri için hayatınızı çok daha kolay hale getirecek.
Ayrıca, bu makale sadece Açıölçer ile ilgili değil. Dışarıda büyük bir Açıölçer dünyası var ve piyasada NPM tarafından basit test senaryolarına ek olarak testinize daha fazla özellik eklemek için sunulan yüzlerce paket var. Bu paketleri kullanmaktan çekinmeyin ve daha da iyi hale getirin.
Yazar hakkında: Bu Deshansh'ın misafir yazısı. Önde gelen çokuluslu şirketlerden biriyle Test'te Yazılım Geliştirme Mühendisi olarak çalışıyor. Selenium ve Açıölçer otomasyon testleri üzerinde geniş deneyime sahiptir.
Yaklaşan eğitimimiz, herhangi bir AngularJS röportajını başarıyla tamamlamanıza yardımcı olacaktır.
PREV Eğitimi | SONRAKİ Eğitici
Önerilen Kaynaklar
- En İyi Yazılım Test Araçları 2021 (QA Test Otomasyon Araçları)
- Primer e-Kitap İndirmeyi Test Etme
- Salatalık Aleti ve Selenyum Kullanarak Otomasyon Testi - Selenyum Eğitimi # 30
- Uygulamaları Yükleme ve Uygulama Testine Hazırlama
- LoadUI Kullanarak Yük Testi - Ücretsiz ve Açık Kaynaklı Bir Yük Testi Aracı
- Selenium'un JMeter ile entegrasyonu
- HP LoadRunner Öğreticileriyle Yük Testi
- WAVE Erişilebilirlik Test Aracı Eğitimi