başınatracTor Test Eğitimi: Otomasyon Aracı Çerçevesi

⚡ Akıllı Özet

başınatracTor, AngularJS uygulamaları için geliştirilmiş, uçtan uca davranış odaklı bir test çerçevesidir ve şu özellikleri birleştirir: Selenium Test uzmanlarının gerçek tarayıcılarda test yapabilmeleri ve standart Angular öğelerinin doğruluğunu kontrol edebilmeleri için Jasmine ile birlikte WebDriver kullanıyoruz. Selenium Konum belirleyiciler ulaşamıyor.

  • 🔘 Şu anki durum: başınatracTor'un kullanım ömrü Ağustos 2023'te sona erdi, bu nedenle yeni süitler artık mevcut. CypressPlaywright veya WebdriverIO.
  • ☑️ Önkoşul: Node.js'i yükleyin ve Selenium npm install -g pro komutunu çalıştırmadan önce WebDriver'ı yükleyin.tracthor.
  • İki dosya: Her çalıştırma için yapılandırma amacıyla conf.js ve test mantığı için spec.js dosyalarına ihtiyaç duyulur.
  • 🧪 Açısal konum belirleyiciler: by.model ve by.binding, ng-model ve ng-bind öğelerine ulaşır. Selenium yalnız başına ıskalar.
  • Sürücü yöneticisi: webdriver-manager update then webdriver-manager start servers Selenium 4444 numaralı bağlantı noktasında.
  • 📊 Raporlama: yasemin muhabirleri JUnitXmlReporter, denetim kanıtı olarak junitresults.xml dosyasını oluşturur.

başınatracTor Test Eğitimi

Pro nedirtracTest mi yapıyorsunuz?

başınatractor önemli rol oynayan otomasyon ve uçtan uca davranış odaklı bir test aracıdır. Test yapmak AngularJS uygulamalarından biridir ve aşağıdaki gibi güçlü teknolojileri birleştiren bir Çözüm entegratörü olarak çalışır: SeleniumJasmine, WebDriver, vb. Pro'nun amacıtracTor testleri yalnızca AngularJS uygulamalarını test etmek için değil, aynı zamanda otomatikleştirilmiş kodlar yazmak için de kullanılır. regresyon testleri Normal web uygulamaları için de geçerlidir.

⚠️ Kullanımdan kaldırılma bildirimi: başınatracTor'dur. kullanımdan kaldırılmış ve arşivlenmişDestek Ağustos 2023'te sona erdi ve Angular CLI, Pro sürümünü kaldırdı.tracAngular 15'ten sonra Tor oluşturucu. Seçin Oyun yazarı, CypressYeni bir araç için WebdriverIO veya TestCafe kullanabilirsiniz. uçtan uca testAşağıdaki kılavuz, eski süitler için de geçerlidir.

Neden Profesyonellere İhtiyacımız Var?tracTor Framework mü?

JavaHemen hemen tüm web uygulamalarında komut dosyası kullanılır. Uygulamalar büyüdükçe, JavaSenaryo Ayrıca boyut ve karmaşıklık açısından da artar. Bu durumda, test uzmanlarının web uygulamasını çeşitli senaryolar için test etmesi zor bir görev haline gelir.

Bazen AngularJS uygulamalarındaki web öğelerini AngularJS kullanarak yakalamak zordur. JUnit or Selenium WebDriver.

başınatracTor, Node.js ile yazılmış bir programdır. JavaAngularJS uygulamalarında web elemanlarını tanımlamak için Node ile birlikte çalışan bir scripttir ve ayrıca kullanıcı eylemleriyle tarayıcıyı kontrol etmek için WebDriver'ı kullanır.

Peki, AngularJS uygulaması tam olarak nedir?

angularjs AngularJS uygulamaları, web uygulaması bileşenlerini ifade etmek için HTML'nin genişletilmiş sözdizimini kullanan web uygulamalarıdır. Genellikle dinamik web uygulamaları için kullanılırlar. Bu uygulamalar, normal web uygulamalarına kıyasla daha az ve daha esnek kod kullanır. AngularJS 1.x'in 31 Aralık 2021'de uzun vadeli desteğini sonlandırdığını ve bu nedenle bu tür uygulamaların günümüzde eski olduğunu unutmayın.

Neden Normal kullanarak AngularJS web öğelerini bulamıyoruz? Selenium Web Sürücüsü?

AngularJS uygulamalarında, HTML'de yer almayan ng-repeater, ng-controller, ng-model vb. gibi bazı ekstra HTML öznitelikleri bulunur. Selenium yer belirleyiciler. Selenium kullanarak bu web öğelerini tanımlayamıyor Selenium kod. Yani, Profesyoneltractepesindeki tor Selenium Web uygulamalarında bu özellikleri yönetebilir ve kontrol edebilir.

başınatracTor, AngularJS tabanlı uygulamalar için uçtan uca test çerçevesidir. Çoğu çerçeve test yapmaya odaklanırken, Tor daha kapsamlı bir yaklaşım sunar. birim testleri AngularJS uygulamaları için, ProtracTor, bir uygulamanın gerçek işlevselliğini test etmeye odaklanır.

Pro'ya başlamadan öncetracTor için şunları yüklememiz gerekiyor:

  1. Selenium: bulabilirsin Selenium kurulum adımları Selenium WebDriver kurulum kılavuzu.
  2. NPM (Node.js): Pro'yu yüklemek için Node.js'i yüklememiz gerekiyor.tracBu kurulum adımlarını şurada bulabilirsiniz: Node.js indirme ve yükleme kılavuzu.

başınatracTor Kurulumu

) 1 Adım Komut istemini açın ve yazın “npm install -g protractor” ve Enter'a bas.

Yukarıdaki komut gerekli dosyaları indirecek ve Pro'yu kuracaktır.tracAşağıda gösterildiği gibi, istemci sisteminde Tor komutu çalıştırılır.

`npm install -g pro` komutunu çalıştırdıktan sonraki komut istemi çıktısıtractor

) 2 Adım Kurulumu ve sürümü kullanarak kontrol edin “profesyoneltractor –sürüm". Başarılı olursa, sürümü aşağıdaki ekran görüntüsündeki gibi gösterecektir. Değilse, 1. adımı tekrar gerçekleştirin.

içintractor --version yüklü Pro'yu yazdırıyortracTor sürüm numarası

(3. ve 4. Adımlar İsteğe bağlıdır ancak daha iyi uygulama için önerilir)

) 3 Adım WebDriver yöneticisini güncelleyin. WebDriver yöneticisi, Angular web uygulamasının testlerini belirli bir tarayıcıda çalıştırmak için kullanılır. Pro sürümünden sonra...tracTor yüklü ise, WebDriver yöneticisinin en son sürüme güncellenmesi gerekir. Bu işlem, komut isteminde aşağıdaki komutu çalıştırarak yapılabilir.

webdriver-manager update

Sürücü dosyaları aşağıdaki gibi indirilir.

webdriver-manager güncellemesi, en son tarayıcı sürücüsü ikili dosyalarını indiriyor.

) 4 Adım WebDriver yöneticisini başlatın. Bu adım, WebDriver yöneticisini arka planda çalıştıracak ve pro üzerinden çalışan tüm testleri dinleyecektir.tracthor.

Bir test çalıştırıldıktan sonra, WebDriver otomatik olarak ilgili tarayıcıda yükler. Yöneticiyi aşağıdaki komutla başlatın.

webdriver-manager start

Konsol, dinleme adresini bildirir.

webdriver-manager başlatmaya başlıyor Selenium arka planda çalışan bağımsız sunucu

Şimdi, aşağıdaki adrese giderseniz... URL (http://localhost:4444/wd/hub/static/resource/hub.htmlTarayıcınızda (bu komutu çalıştırdığınızda) WebDriver yöneticisinin arka planda çalıştığını göreceksiniz.

Selenium WebDriver merkez sayfası localhost 4444 portunda sunulmaktadır.

Pro kullanarak örnek AngularJS uygulamasının test edilmesitractor

Sürücü yöneticisi çalışırken, ProtracTor'un çalışması için iki dosyaya ihtiyaç var, bir spec dosya ve yapılandırma dosyası.

  1. yapılandırma dosyasıBu dosya profesyonellere yardımcı olur.tracTest dosyalarının bulunduğu yere (specs.js) erişmek ve iletişim kurmak için Tor'u kullanın. Selenium sunucu (Selenium (Adres). Chrome, Pro için varsayılan tarayıcıdır.tracthor.
  2. Spesifikasyon dosyası: Bu Dosya, uygulamayla etkileşime geçmek için mantığı ve konum belirleyicileri içerir.

) 1 Adım Açmamız gerekiyor https://angularjs.org ve “Buraya bir isim girin” metin kutusuna “GURU99” metnini girin.

AngularJS ana sayfasındaki GURU99 adının yazıldığı metin kutusu.

) 2 Adım Bu adımda,

  1. "Adını girdim"Guru99 "
  2. Çıktı metninde "Merhaba" Guru99 inç görülüyor.

AngularJS sayfası, "Hello GURU99" çıktı metnini oluşturuyor.

) 3 Adım Şimdi adı girdikten sonra web sayfasındaki metni yakalamamız ve beklenen metinle doğrulamamız gerekiyor.

Kod:

Konfigürasyon dosyasını hazırlamamız gerekiyor (conf.js) ve spesifikasyon dosyası (spec.js) Yukarıda da belirtildiği gibi.

spec.js'nin mantığı:

describe('Enter GURU99 Name', function() {
 it('should add a Name as GURU99', function() {
 browser.get('https://angularjs.org');
 element(by.model('yourName')).sendKeys('GURU99');
  var guru= element(by.xpath('html/body/div[2]/div[1]/div[2]/div[2]/div/h1'));
expect(guru.getText()).toEqual('Hello GURU99!');
  });
});

Code spec.js dosyasının açıklaması:

  1. tanımlamak('GURU99 Adını Girin', fonksiyon()Açıklama sözdizimi şuradan alınmıştır: Jasmine çerçevesiBurada "describe" ('GURU99 Adını Girin') ifadesi tipik olarak bir uygulamanın bileşenlerini tanımlar; bu bileşenler bir sınıf veya fonksiyon olabilir. "GURU99 Adını Girin" olarak adlandırılan kod paketinde ise bu sadece bir metin dizisidir, kod değildir.
  2. it('GURU99 olarak bir Ad eklenmelidir', function()
  3. tarayıcı.get('https://angularjs.org') Şunun gibi Selenium WebDriver `browser.get` komutu, belirtilen tarayıcı örneğiyle yeni bir tarayıcı örneği açacaktır. URL.
  4. eleman(by.model('adınız')).SendKey'ler('GURU99') Burada, Model adı olarak "yourName"i kullanarak web öğesini buluyoruz; bu da "ng modeliWeb sayfasındaki " işaretini görebilirsiniz. Aşağıdaki ekran görüntüsüne bakın-

Sayfa kaynak kodu, by.model tarafından kullanılan yourName özniteliğinin değerini göstermektedir.

  1. var guru= element(by.xpath('html/body/div[2]/div[1]/div[2]/div[2]/div/h1')) Burada web öğesini kullanarak buluyoruz XPath ve değerini bir "guru" değişkeninde saklayın.
  2. beklemek(guru.getText()).eşit('Merhaba GURU99!') Son olarak web sayfasından aldığımız metni (gettext() kullanarak) beklenen metinle doğruluyoruz.

conf.js'nin mantığı:

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

Code conf.js'nin açıklaması

  1. seleniumAddress: 'http://localhost:4444/wd/hub' Yapılandırma dosyası Pro'ya şunu söylüyor:trackonumun Selenium Konuşulacak adres Selenium WebDriver.
  2. özellikler: ['spec.js']Bu satır Pro'ya bilgi veriyortractest dosyalarının konumu spec.js

Yürütme Code

Öncelikle, conf.js ve spec.js dosyalarının bulunduğu klasöre gidin, ardından aşağıdaki adımları izleyin..

) 1 Adım Komut istemini açın.

) 2 Adım emin olmak Selenium WebDriver yöneticisi çalışır durumda. Bunun için "webdriver-manager start" komutunu verip Enter tuşuna basın..

Komut istemi onaylıyor Selenium WebDriver yöneticisi çalışır durumda.

(Eğer Selenium WebDriver çalışır durumda değil, bu nedenle Pro olarak test işlemine devam edemiyoruz.tracTor, web uygulamasını işlemek için WebDriver'ı bulamıyor.

) 3 Adım Yeni bir komut istemi açın ve komutu şu şekilde verin: “profesyoneltractor conf.js” Yapılandırma dosyasını çalıştırmak için. Çalıştırma aşağıdaki gibi tamamlanır.

başınatracPro ile başlatılan başarılı bir testin Tor konsol çıktısı.tractor conf.js

Açıklama:

  • Here ProtracTor, belirtilen spec dosyasıyla birlikte yapılandırma dosyasını çalıştıracaktır.
  • Görebiliyoruz Selenium sunucu şu adreste çalışıyor:http://localhost:4444/wd/hubconf.js dosyasında vermiş olduğumuz.
  • Ayrıca, yukarıdaki ekran görüntüsünde olduğu gibi kaç tanesinin geçildiğini ve başarısız olunduğunu burada görebilirsiniz..

Başarılı sonuç doğrulandı. Şimdi de başarısız sonuca bakalım.

) 1 Adım spec.js dosyasını açın ve aşağıdaki gibi "'Hello change GURU99'" şeklinde bir değişiklikle sonuçlanması bekleniyor.

Spec.js'deki değişiklikten sonra :

describe('Enter GURU99 Name', function() {
 it('should add a Name as GURU99', function() {
 browser.get('https://angularjs.org');
 element(by.model('yourName')).sendKeys('GURU99');
  var guru= element(by.xpath('html/body/div[2]/div[1]/div[2]/div[2]/div/h1'));
expect(guru.getText()).toEqual('Hello change GURU99!');
  });
});

) 2 Adım spec.js dosyasını kaydedin ve yukarıdaki "Çalıştırma" adımlarını tekrarlayın. Code" Bölüm

Şimdi yukarıdaki adımları uygulayın.

Sonuç:

başınatracTor konsol çıktısında, F harfiyle işaretlenmiş başarısız olan test gösteriliyor.

Sonucun ekran görüntüsünde 'F' ile gösterilen başarısız olduğunu ve nedeninin şu şekilde olduğunu görebiliriz: “Beklenen 'Merhaba GURU99!' 'Merhaba GURU99'u değiştir!'e eşit olacak. Ayrıca, kod çalıştırılırken kaç hata oluştuğunu da gösterir.

ile aynı şeyi başarabilir miyiz? Selenium Web Sürücüsü?

Bazen AngularJS öğeleri XPath veya CSS seçicileri kullanılarak bulunabilir. Selenium WebDriver. Ancak bu öğeler dinamik olarak oluşturulur ve yeniden bağlanır, bu nedenle ProtracAngularJS paketleri için Tor daha güvenli bir seçenekti.

Jasmine Reporters'ı kullanarak Raporlar Oluşturun

başınatracTor, Jasmine muhabirlerini destekler. Bu bölüm, Tor'un kullandığı yöntemleri kullanır. JUnitAşağıdaki adımları izleyerek XmlReporter ile test yürütme raporlarını otomatik olarak XML formatında oluşturabilirsiniz.

Jasmine Reporter Kurulumu

İki seçenek var: yerel veya küresel.

  1. Komut istemini açın ve yerel olarak yüklemek için aşağıdaki komutu çalıştırın
npm install --save-dev jasmine-reporters@^2.0.0

Yukarıdaki komut, jasmine-reporters'ı çalıştırıldığı dizinin içine yerel olarak kurar.

  1. Komut istemini açın ve genel kurulum için aşağıdaki komutu yürütün
npm install –g jasmine-reporters@^2.0.0

Burada muhabirler yerel olarak görevlendiriliyor..

) 1 Adım Komutu yürütün.

npm install --save-dev jasmine-reporters@^2.0.0

aşağıdaki gibi komut isteminden.

Proje klasörü içinde npm kullanarak jasmine-reporters'ı yerel olarak kurma.

) 2 Adım Dizindeki kurulum klasörlerini kontrol edin. Aşağıdaki anlık görüntüdeki gibi başarıyla kurulduğunda “Node_modules” mevcut olmalıdır.

jasmine-reporters kurulumunu doğrulayan Node_modules klasör listesi.

) 3 Adım Mevcut bir conf.js dosyasına aşağıdaki renkli kodu ekleyin

exports.config = {
      seleniumAddress: 'http://localhost:4444/wd/hub',
      capabilities: {
          'browserName': 'firefox'
      },
      specs: ['spec.js'],
     framework: 'jasmine2' ,
      onPrepare: function() {
          var jasmineReporters = require('C:/Users/RE041943/Desktop/guru/node_modules/jasmine-reporters');
          jasmine.getEnv().addReporter(new jasmineReporters.JUnitXmlReporter(null, true, true)
          );
     }
   };

Kodun açıklaması:

Kodda “raporu oluşturuyoruz”JUnitXmlReporter” ve Raporun nerede saklanacağını Yol'a vermek.

) 4 Adım Komut istemini açın ve komutu yürütün içintractor conf.js.

başınatracTor çalıştırma işlemi, şunu oluşturur: JUnit conf.js güncellemesinden sonraki XML raporu

) 5 Adım Yukarıdaki kodu çalıştırdığınızda belirtilen yolda junitresults.xml oluşturulacaktır.

Yapılandırılmış çıktı yolunda junitresults.xml rapor dosyası oluşturuldu.

) 6 Adım XML'i açın ve sonucu doğrulayın. Başarısızlık mesajı sonuç dosyasında bizim gibi gösterilir. Test Durumu Test başarısız oldu. Test senaryosu, "spec.js" dosyasından beklenen sonuç ile web sayfasından alınan gerçek sonuç eşleşmediği için başarısız oldu.

junitresults.xml dosyasının içeriği, başarısız olan test durumuna ait hata mesajını göstermektedir.

) 7 Adım Kanıtlar veya sonuç dosyaları için junitresult.xml dosyasını kullanın.

başınatracTOR ve Modern Test Otomasyonu Alternatifleri

Profesyonel olduğundan beritracTor artık güncelleme almadığı için, yeni paketler planlayan ekiplerin, Angular projelerinin artık geçiş yaptığı çerçevelere karşı nasıl bir performans sergilediğini bilmeleri gerekiyor. Aşağıdaki tablo, Pro ile karşılaştırmayı yapıyor.tracAşağıdaki SSS bölümünde en sık karşımıza çıkan üç alternatifi inceleyin.

iskelet Durum Dil desteği Tarayıcı motorları Açıya özgü konum belirleyiciler
başınatractor Kullanımdan kaldırıldı, kullanım ömrü Ağustos 2023'te sona eriyor. JavaSenaryo, TypeScript Krom, FirefoxIE aracılığıyla Selenium Web Sürücüsü by.model, by.binding, by.repeater
Cypress Aktif bakımlı JavaSenaryo, TypeScript Krom, Firefox, Kenar Yok; CSS veya veri özelliklerine bağlı.
Oyun yazarı Aktif bakımlı JavaSenaryo, TypeScript, Python, Java, .AÇIK Krom, FirefoxWebKit Yok; CSS, metin veya rol seçicilerine dayanır.
Web sürücüsüIO Aktif bakımlı JavaSenaryo, TypeScript Krom, Firefox, WebDriver veya DevTools aracılığıyla WebKit Yok; CSS veya veri özelliklerine bağlı.

Mevcut bir Profesyonel üyesi olan takımlartracTor suite genellikle en hızlı hareket eder Web sürücüsüIOkomut stili ve Selenium-Pro'nun temel aldığı sürücü yönetimine yakın kalın.tracTor test uzmanları bunu zaten biliyor. Sıfırdan başlayan veya en hızlı test çalışmalarına ihtiyaç duyan ekipler daha sık bu yöntemi seçiyor. Cypress Ya da oyun yazarı.

SSS

Hayır. ProfesyoneltracTor'un kullanım ömrü Ağustos 2023'te sona erdi ve artık güncelleme veya güvenlik yaması almıyor. Angular, 15. sürümden sonra komut satırı oluşturucusunu kaldırdı, bu nedenle kalan tüm paketler eski kod olarak değerlendirilmelidir.

Angular, aşağıdakiler için geliştiriciler ekledi: Cypress12. sürümden itibaren Nightwatch ve WebdriverIO. Oyun yazarı TestCafe de popüler ve Amadeus da profesyonel bir sürüm yayınlıyor.tracMetinden oyun yazarına dönüştürücü, yeniden yazma işleminin büyük kısmını otomatikleştirir.

`by.model`, `by.binding`, `by.repeater`, `by.exactBinding` ve `by.options`, AngularJS yönerge verilerini doğrudan okur. Standart Selenium by.css, by.id ve by.xpath gibi konum belirleyiciler aynı spesifikasyonda kullanılabilir durumda kalır.

Yapay zeka destekli otomatik onarım, başarısız bir konum belirleyiciyi canlı DOM ile karşılaştırarak otomatik olarak onarırken, makine öğrenimi tekrarlanan hataları gruplandırarak gerçek kusurları zamanlama gürültüsünden ayırır. otomasyon testi.

Copilot ve benzeri aracı asistanlar, describe bloklarını, element() çağrılarını ve expect doğrulamalarını hızla Playwright konum belirleyicilerine dönüştürür; ancak oluşturulan her spesifikasyonun yine de bekleme, doğrulama ve benzeri konularda insan incelemesine ihtiyacı vardır. test durumu kapsama.

Bu yazıyı şu şekilde özetleyin: