protractor testing tool
Co to jest kątomierz?
Protractor to narzędzie do automatyzacji testowania aplikacji internetowych; łącząc potężne technologie, takie jak Jasmine, Selenium Webdriver, Node.js itp.
Narzędzie testujące Protractor to kompleksowe środowisko testowe oparte na zachowaniu zaprojektowane z myślą o aplikacjach Angular JS. Chociaż może to brzmieć tak, jakby Protractor nie działał z nie-kątowymi aplikacjami JS, tak jest.
Działa równie dobrze zarówno z aplikacjami JS Angular, jak i innymi niż Angular.
Zapraszam do zapoznania się z całą serię tutoriali AngularJS . W naszym poprzednim samouczku różnica między wersjami kątowymi zostało szczegółowo wyjaśnione.
Czego się nauczysz:
- Kątomierz vs Selenium WebDriver
- funkcje
- W jaki sposób Protractor może mi pomóc?
- Której ramy użyć?
- Jak pobrać i skonfigurować kątomierz
- Gotowy do stworzenia swojego pierwszego przypadku testowego?
- Jak uruchomić przypadki testowe?
- Kilka ciekawszych funkcji kątomierza
- Wniosek
- rekomendowane lektury
Kątomierz vs Selenium WebDriver
Co odróżnia Kątomierz od tradycyjnych Selenium WebDriver ?
Poświęć chwilę, aby odpowiedzieć na te pytania:
- Czy trudno jest określić, kiedy dokładnie strona internetowa zostanie ostatecznie załadowana (wszystkie elementy asynchroniczne są gotowe i przetwarzane)?
- Czy jesteś zmęczony dodawaniem czekania i usypiania do swojego kodu?
- Czy chcesz pozbyć się uciążliwego wysiłku związanego z lokalizacją kątowych elementów?
- Sfrustrowani lokalizowaniem elementów ze zmieniającymi się identyfikatorami?
- Chcesz stworzyć swój własny lokalizator?
- Czy piszesz długi kod nawet dla najprostszych stwierdzeń?
- Czy jesteś entuzjastą / fanem JavaScript?
Jeśli odpowiedziałeś Tak na te pytania, Kątomierz może pomóc.
Jest to opakowanie zbudowane na bazie Selenium Webdriver, które zapewnia wszystkie możliwości Selenium wraz z wieloma przydatnymi dodatkami. Oferuje:
funkcje
Oferuje:
1) WaitForAngular
inicjalizacja zmiennych statycznych c ++
Z dokumentacji:
' Poinstruuj WebDriver, aby poczekał, aż Angular zakończy renderowanie i nie ma żadnych zaległych wywołań $ http lub $ timeout przed kontynuowaniem. Zauważ, że Protractor automatycznie stosuje to polecenie przed każdą akcją WebDriver. '
Oznacza to, że nie ma potrzeby ręcznego dodawania czeków do skryptu, a Protractor automatycznie zaczeka na załadowanie elementów sieci i dopiero wtedy wykona kolejne kroki.
dwa) Posiada możliwość eksportu funkcji globalnej element , która pobiera lokalizator i zwraca elementFinder. Ten ElementFinder ma zestaw metod akcji, takich jak click (), getText (), sendKeys () itd. To jest rdzeń interakcji z elementem i uzyskiwania z niego informacji.
Ta globalna funkcja pomaga zredukować składnię lokalizowania elementów. Spójrz na następującą instrukcję, aby zlokalizować element zarówno w Selenium WebDriver, jak i Protractor:
Selenium Webdriver :
driver.findElement(By.cssSelector('css selector'));
Kątomierz :
element(by.css('some-css'));
Składnia wygląda na zwartą, prawda?
3) Oto kilka nowych strategii i funkcji lokalizatora, które pomagają w lokalizowaniu elementów kątowych: By.binding, By.repeater, By.textarea, By.model, WebElement.all, WebElement.evaluate itp.
W jaki sposób Protractor może mi pomóc?
Spójrz na następujące istotne funkcje:
- Prosta składnia do pisania przypadków testowych
- Możliwość jednoczesnego uruchamiania wielu przeglądarek za pomocą Selenium Grid
- Lokalizatory specyficzne dla kątów
- Wsparcie dla rozwoju opartego na zachowaniu, takiego jak Jasmine / Mocha
- Nie ma potrzeby dodawania uśpienia / czekania
- Obsługiwana integracja z Jenkins / Browser Stack / Grunt itp.
- Pozbądź się problemów z synchronizacją w serwisach Angular JS
- Obsługa wielu przeglądarek (Firefox, Chrome, Safari, Internet Explorer)
- Możliwość uruchamiania tych samych skryptów w przeglądarkach mobilnych również bez konieczności zmiany kodu
Której ramy użyć?
Obsługuje dwie platformy testowe oparte na zachowaniu (BDD) od razu po wyjęciu z pudełka:
- Jaśmin: Jaśmin jest domyślną strukturą testową, gdy jest zainstalowany Protractor. W tym artykule użyjemy Jasmine.
- Mokka: Mokka to framework testowy JavaScript, który działa na Node.js. Jeśli chcesz używać Mocha jako struktury testowej, będziesz musiał skonfigurować go za pomocą swojego Protractora, a także będziesz musiał użyć interfejsu Behavior Driven Development i Chai Assertions z Chai as Promised (patrz ten link po więcej szczegółów ).
Jak pobrać i skonfigurować kątomierz
Ponieważ jest to program node.js, musisz zainstalować node.js, aby go uruchomić. Node.js można pobrać z tego adresu URL, wybierając system operacyjny: Pobieranie Node.js.
Dzięki node.js otrzymujesz również Protractor npm pakiet, którego można teraz użyć do zainstalowania Protractora.
Teraz, gdy node.js jest zainstalowany na twoim komputerze, otwórz wiersz poleceń (cmd) i naciśnij poniższe polecenie, aby zainstalować go globalnie:
npm install -g protractor
'-sol' służy do globalnej instalacji tego narzędzia. Usuń go, jeśli nie chcesz instalować go globalnie. To polecenie instaluje również interfejs API Protractor wraz z domyślnym serwerem selenium, co oznacza, że niekoniecznie musisz uruchamiać serwer autonomiczny.
Teraz musimy zainstalować serwer selenium i ChromeDriver. Użyj następującego polecenia (również dostarczane z Kątomierzem) w cmd:
webdriver-manager update
To wszystko, czego potrzebujemy, aby zacząć od napisania pierwszego przypadku testowego w tym frameworku. Jeśli chcesz, możesz zainstalować dowolny edytor IDE, aby napisać swój kod. Eclipse IDE jest popularnym, ale jest też kilka innych fajnych edytorów do rozważenia. Osobiście wolę edytor „Atom” do pisania kodu Protractor.
Gotowy do stworzenia swojego pierwszego przypadku testowego?
Do uruchomienia potrzebne są 2 pliki:
- Plik konfiguracyjny
- Plik specyfikacji.
Plik Plik konfiguracyjny to ten, który mówi Protractorowi, gdzie znaleźć pliki testowe (specyfikacje) / którą przeglądarkę wybrać / którego frameworka użyć (Jasmine / Mocha) / gdzie rozmawiać z przeglądarką Selenium i innymi konfiguracjami. Jeśli jakakolwiek konfiguracja nie jest zdefiniowana w plikach konfiguracyjnych, użyje ustawień domyślnych.
Plik specyfikacji to ten, w którym piszemy nasz rzeczywisty kod testowy. Cały nasz testowy przepływ / asercje funkcjonalne będą znajdować się w tym konkretnym pliku. Może istnieć kilka plików specyfikacji w zależności od liczby przypadków testowych, ale tylko 1 plik specyfikacji będzie mógł uruchomić cały zestaw testów zawierający kilka specyfikacji.
Przykładowy przypadek testowy:
Teraz napiszemy prosty przypadek testowy, w którym przejdziemy do adresu URL i sprawdzimy tytuł strony.
Oto kroki:
- Utwórz nowy folder dla swojego zestawu testów.
- Utwórz nowy plik o nazwie „ js ”. (Wystarczy dowolna nazwa) Wszystkie pliki specyfikacji / konfiguracyjne będą miały rozszerzenie„ .js ”.
- Utwórz nowy plik o nazwie określonej jako „ 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'); }); }); });
Teraz możemy zacząć od naszego kodowania. Zobacz poniższy kod pliku „testCaseNameSpec.js”.
Oto jak wygląda plik konfiguracyjny:
// conf.js exports.config = { framework: 'jasmine', capabilities: { browserName: 'chrome', }, specs: ('simpleTestSpec.js') };
Teraz zepsujmy te 2 pliki i zobaczmy, jak to działa.
# 1) Spec.js
- Wszystkie polecenia na poziomie przeglądarki będą obsługiwane przez „ przeglądarka ”, Globalna platforma stworzona przez Protractor.
- Ponieważ postępujemy zgodnie z ramami Jasmine, „ opisać ' i ' to ”To składnia Jasmine. Opis będzie zawierał cały koniec, aby zakończyć przepływ twojego przypadku testowego, podczas gdy „to” może zawierać niektóre etapy testowe / scenariusze itp. Możesz mieć wiele „ to ”Bloków w programie, jeśli sobie tego życzysz.
- browser.get to prosta składnia Selenium, która mówi Protractorowi, aby trafił pod określony adres URL w przeglądarce.
- Ponieważ witryna, którą próbujemy trafić, nie jest witryną kątową, ustawiliśmy rozszerzenie ignoreSynchronization oznacz „ prawdziwe ”, Jak pokazano w wierszu nr 4. Jeśli ten znacznik nie zostanie spełniony, test zakończy się niepowodzeniem i wyświetleniem błędu„ Nie można znaleźć Angulara na stronie ”. Powodem tego jest to, że Protractor spodziewa się domyślnie współpracować z kątowymi witrynami internetowymi, a jeśli używamy Protractora do walidacji nie-kątowej witryny, musimy wyraźnie poinformować o tym Protractor. Jeśli jednak pracujesz na kątowych witrynach internetowych, nie ma potrzeby używania tego stwierdzenia, ponieważ Protractor domyślnie uzna stronę internetową za kątową.
- „Oczekiwać” to nic innego jak stwierdzenie, w którym porównujemy tytuł strony internetowej, aby odpowiadał niektórym z góry zdefiniowanym danym. Szczegółowo omówimy więcej twierdzeń.
#dwa) conf.js
- Jak wspomniano wcześniej, plik konfiguracyjny jest tym, który przekazuje Protractorowi podstawowe informacje. Jak pokazano w kodzie, struktura to „Jasmine”.
- W sekcji możliwości ustawiane są konfiguracje przeglądarki. Możesz zdefiniować nazwę przeglądarki, na przykład Firefox / chrome itp. Możesz także ustawić maksymalną liczbę instancji przeglądarek, aby jednocześnie można było uruchomić wiele przypadków testowych w różnych dostępnych oknach przeglądarki.
- W ' okular ”, Podajemy ścieżkę do pliku specyfikacji, tj. Dokładnie tam, gdzie znajduje się plik specyfikacji w odniesieniu do pliku konfiguracyjnego.
- Istnieje również wiele innych fajnych funkcji, które możesz dołączyć do swojego pliku konfiguracyjnego, takich jak raportowanie / funkcja onPrepare / limit czasu progu itp. Kilka z nich omówimy w tym samouczku.
Jak uruchomić przypadki testowe?
Napisaliśmy kod i teraz wszystko, czego potrzebujemy, to niewielkie naciśnięcie, aby nasz kod działał. Naciśnij następujące polecenie w cmd, aby uruchomić program:
protractor conf.js
To polecenie uruchomi serwer selenium, a następnie uruchomi skrypt testowy. Możesz przeglądać logi w samym cmd lub jeśli chcesz, logi można również przechwycić w pliku .txt (po prostu dodaj >> nazwaPlikuTekstu.txt po wykonaniu powyższej komendy i logi zostaną zapisane w pliku tekstowym znajdującym się w tym samym katalogu co plik konfiguracyjny).
Otworzy się okno chrome, gdzie SoftwareTestingHelp.com strona internetowa powinna zostać otwarta. Po uruchomieniu kodu wynik będzie miał wartość „1 specyfikacja, 0 niepowodzeń”. Oznacza to, że mieliśmy 1 bloków „it”, które zostały wykonane z 0 błędami.
Teraz rozważ poniższy plik specyfikacji, w którym wykonujemy pewne działania na stronie internetowej zbudowanej na AngularJS, abyś mógł zobaczyć podejście kątomierza do Selenium, jeśli chodzi o testowanie witryny Angular:
pytania i odpowiedzi do wywiadu Oracle SQL
// 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 }); });
Możesz użyć tego samego conf.js do uruchomienia tej specyfikacji. Po prostu zaktualizuj nazwę pliku specyfikacji.
Teraz, w tym pliku specyfikacji, bawimy się kątową witryną JS, abyś mógł zobaczyć, do czego dokładnie jest zdolny Protractor.
Jeśli uruchomisz ten plik tak, jak zrobiliśmy to wcześniej, otworzy się strona internetowa z 2 polami tekstowymi, menu rozwijanym, przyciskiem i kilkoma innymi elementami sieciowymi. Jak można się już domyślić, jest to strona kalkulatora. Dajemy 2 liczby całkowite jako dane wejściowe i wykonujemy operację mnożenia.
Jak już wspomnieliśmy, jedną z największych zalet korzystania z tego narzędzia są unikalne techniki lokalizowania elementów kątowych. „By.model” jest jednym z takich sposobów lokalizowania elementów. „.SendKeys ()” jest zwykłą składnią Selenium do wysyłania wartości w polach tekstowych i '.Kliknij()' służy do klikania przycisków.
Jak wspomniano wcześniej, 'oczekiwać' to twierdzenie, które prosi Protractor o uchwycenie wyniku mnożenia liczb i porównanie go z „10” i „25” sekwencyjnie. Prosta matematyka mówi nam, że wynik powinien wynosić „25”, a zatem pierwsze stwierdzenie zawodzi, a drugi przebieg.
W rezultacie otrzymasz „ 1 specyfikacja, 1 awaria ”W dziennikach po uruchomieniu kodu, co jest oczekiwane.
Kilka ciekawszych funkcji kątomierza
# 1) Asercje i adnotacje
Asercje są ważną częścią skryptów automatyzacji. Adnotacje są również bardzo przydatne w skutecznym oznaczaniu niektórych metod w klasie, aby miały specjalne znaczenie.
Zapewnia różnorodne asercje i adnotacje, a ponadto zapewnia również możliwość tworzenia własnych asercji.
Rozważ poniższy przykład:
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); }); });
W powyższym przykładzie używamy 2 adnotacji, „BeforeEach” i 'po każdym' . Te adnotacje są również dostępne w TestNG (tradycyjny Selenium). Te adnotacje zapewniają, że określony fragment kodu zostanie wykonany odpowiednio przed / po wykonaniu pozostałego kodu.
Oto jak będzie przebiegać wykonanie kodu,
- Kątomierz sięgnie do wnętrza „ beforeEach „Najpierw zablokuj, a trafi” http://juliemr.github.io/protractor-demo/ Adres URL w przeglądarce.
- Teraz przepływ przejdzie do bloku „to” i będzie działał „ multiplyNumbers ” zostanie wywołana, która z kolei wykona określone w nim akcje, wysyłając sterowanie z powrotem do miejsca, w którym funkcja została wywołana.
- W końcu twierdzenie wykona swoje zadanie. Teraz, jeśli chcemy zająć się wieloma elementami jednocześnie, możesz użyć funkcji „element.all”, która jest funkcją tego narzędzia. Zidentyfikuje wszystkie dostępne elementy z określonym lokalizatorem (w tym przypadku za pomocą repeater). To od Ciebie zależy, co chcesz zrobić ze zidentyfikowanymi elementami. W tym przypadku porównujemy historię obliczeń z podaną liczbą.
- Ponieważ w pierwszym stwierdzeniu porównujemy liczbę historii obliczeń z wartością „2”, mimo że wykonaliśmy obliczenia tylko raz, stwierdzenie nie powiedzie się. Jednak drugie stwierdzenie przejdzie, ponieważ po drugim obliczeniu liczba historii wyniesie „2”.
Istnieje wiele innych dostępnych typów twierdzeń. Niektóre z nich podano poniżej:
a) Pobierz tekst z elementu internetowego i porównaj go z określoną wartością:
element(by.locator('someLocator')).getText(text) .then(function() { expect(text).toEqual('someData'); expect(text).not.toEqual('someData'); expect(text).toContain('someOtherData'); });
b) Sprawdź, czy element sieciowy jest wyświetlany na stronie, czy nie:
expect(browser.driver.findElement(by.locator(someLocator)) .isDisplayed()).toBe(true);
# 2) Obsługa wielu przeglądarek / okien / kart
Jeśli chodzi o obsługę przeglądarki, może być wiele przypadków. Niektóre z tych przypadków przedstawiono poniżej:
a) Nowa karta otwiera się po kliknięciu dowolnego łącza
Czasami po kliknięciu dowolnego łącza otwiera się nowa karta, a pozostałe czynności należy wykonać w nowo otwartym oknie. W takim przypadku, kiedy napiszesz kod do punktu, w którym zostanie otwarta nowa karta, musisz zaimplementować Window Handler w następujący sposób:
//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 }); });
Najpierw uzyskaj liczbę wszystkich dostępnych okien, a następnie użyj indeksowania, aby przełączyć kontrolę między oknami. Oryginalne okno, które zainicjowało nowe okno, będzie miało indeks 0, podczas gdy kolejne okna będą miały rosnące indeksy.
b) Otwarcie zupełnie nowej przeglądarki z nową sesją
Kiedy musisz wykonać jakieś czynności w przeglądarce i musisz wykonać dalsze czynności w innej sesji przeglądarki, musimy użyć forkNewDriverInstance . W tym przypadku tworzymy nową instancję przeglądarki z nową nazwą przeglądarki w następujący sposób:
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) Uruchomienie przypadku testowego w wielu przeglądarkach:
Uruchomienie przypadku testowego w 2 przeglądarkach jednocześnie to coś, co plik konfiguracyjny może dla Ciebie zrobić. Po prostu dodaj poniższy kod w pliku konfiguracyjnym:
Gdy tylko uruchomisz ten plik konfiguracyjny, zobaczysz testy uruchomione jednocześnie w przeglądarce Firefox i Chrome, a dzienniki uruchomienia zostaną wyświetlone w wierszu polecenia oddzielnie.
// conf.js exports.config = { framework: 'jasmine', specs: ('SomeSpec.js'), multiCapabilities: ({ browserName: 'firefox' }, { browserName: 'chrome' }) }
# 3) Użyj obiektów strony, aby uczynić swój framework jeszcze lepszym
To narzędzie jest dobre samo w sobie, ale staje się niezwyciężone w połączeniu z Page Object Model (POM). Większość jego niedociągnięć (jeśli występują) można wyeliminować za pomocą modelu obiektów strony. Ponadto POM pomaga również w utrzymaniu projektu w bardziej uporządkowany sposób.
Jeśli nie wiesz, co to jest POM, nie martw się. POM to sposób na segregację przypadku testowego na podstawie stron.
Weź ten przykład:
Jest sklep internetowy. Twoim przypadkiem testowym jest wybranie produktu, dodanie go do koszyka, a następnie zakup.
W tym celu istnieją dwa sposoby zarządzania kodem skryptu testowego:
- Napisz prosty przypadek testowy ze wszystkimi lokalizatorami na tej samej stronie, na której jest zapisana Twoja logika,
- Zapisz cały przepływ przypadków testowych, logikę w pliku specyfikacji i segreguj lokalizatory i dane testowe w różnych plikach. Każda strona internetowa będzie miała równoważny plik strony .js. W ten sposób twój kod zostanie ustrukturyzowany i jeśli istnieje inny przypadek testowy, który wymaga tego samego lokalizatora, nie musisz ponownie pisać tych lokalizatorów, po prostu zaimportuj ten plik lokalizatora i użyj go zgodnie z potrzebami.
Utrzymywanie przypadków testowych może być prawdziwym problemem. Jeśli używasz POM, Twój kod będzie o wiele bardziej uporządkowany.
Brute Force Password Cracker do pobrania dla Androida
Oto przykład użycia modelu obiektów strony:
To jest przepływ na powyższej migawce:
- Istnieje przypadek testowy, który umożliwia zakup laptopa. Kod przepływu i logiki będzie można znaleźć w zakupieLaptopSpec.js.
- Wszystkie strony, na których można kupić laptopa, będą miały 1 plik „.js” z odpowiednim tytułem. Wszystkie elementy potrzebne do zakupu Laptopa, ich lokalizatory będą znajdować się w odpowiednim pliku strony.
- Dane wymagane dla tego przypadku testowego można zapisać w folderze TestData w formacie „.json” lub w formacie programu Excel.
- Gdy skończysz ze stronami i lokalizatorami, po prostu zaimportuj te pliki do pliku specyfikacji, aby użyć lokalizatora / danych testowych, i gotowe.
# 4) Raportowanie
NPM (Node Package Manager) udostępnia różne pakiety raportowania, za pomocą których można przechwytywać zrzuty ekranu każdego etapu testu, a po zakończeniu testu wygeneruje dla Ciebie raport HTML. Wszystko, co musisz zrobić, to zainstalować te pakiety, otwierając wiersz polecenia i naciskając poniższe polecenia:
npm install -g protractor-jasmine2-html-reporter
npm install protractor-jasmine2-screenshot-reporter --save-dev
Po zainstalowaniu tych pakietów, za każdym razem, gdy uruchomisz plik konfiguracyjny, wszystkie zrzuty ekranu z twoich przypadków testowych zostaną zapisane, a także zostanie wygenerowany raport HTML pokazujący wynik pozytywny / negatywny.
# 5) Integracja z innymi potężnymi narzędziami, takimi jak Git / Jenkins / Browserstack / Grunt
Na rynku dostępnych jest wiele narzędzi, które pomagają ulepszyć przypadki testowe. Git / Jenkins / BrowserStack / Grunt to niektóre z takich narzędzi, które dodają znaczącą wartość do twoich normalnych skryptów testowych Protractor. A najlepsze jest to, że nie musisz dotykać pliku specyfikacji, aby zintegrować swój Kątomierz z żadnym z tych narzędzi. To jest twój plik konfiguracyjny, który zajmie się wszystkimi tymi rzeczami.
Iść to bardzo potężne narzędzie do kontroli wersji. Jeśli jest zaangażowanych wielu programistów, zawsze dobrze jest trzymać kod w Git.
Jenkins to narzędzie do ciągłej integracji, za pomocą którego można zaplanować przypadki testowe i uruchomić je zgodnie z potrzebami. Skrypty Protractor można również skonfigurować za pomocą Jenkins. Najlepszym zastosowaniem uruchamiania przypadków testowych na Jenkins jest to, że jest ono bardzo szybkie, a także można uruchamiać wiele przypadków testowych jednocześnie.
BrowserStack to narzędzie do testowania w różnych przeglądarkach, którego można również używać do testowania aplikacji w różnych przeglądarkach. Można go również zintegrować z Protractorem, dodając poświadczenia browserStack w pliku konfiguracyjnym.
Grunt to program uruchamiający zadania JavaScript. Daje ci możliwość wykonywania za ciebie kilku zadań. Jego niesamowitość polega na tym, że jest ponad 4000 zadań i możesz tworzyć jeszcze więcej zadań zgodnie z wymaganiami. Oto kilka ważnych codziennych zadań, do których możemy używać Grunt:
- Wypisz wszystkie najlepsze praktyki kodowania i informuj natychmiast, gdy naruszysz którekolwiek z nich.
- Aby utworzyć wiele plików specyfikacji w czasie wykonywania. Na przykład , jeśli istnieje przypadek testowy, który chcesz uruchomić kilka razy (od 1 do dowolnej liczby). W tej chwili może się to wydawać niepotrzebne, ale pomyśl o uruchomieniu dowolnego przepływu płatności w witrynie zakupów w każdym dostępnym kraju. Ręczne tworzenie wielu specyfikacji byłoby żmudne. Więc pozwól Gruntowi zrobić to za Ciebie.
- Funkcja zegarka. Piszesz przypadek testowy i za każdym razem, gdy tylko zapiszesz kod po dokonaniu jakiejkolwiek zmiany, chcesz uruchomić przypadek testowy, Grunt go ma.
- Łączenie wielu plików.
Po prostu spróbuj i pokochasz to.
Wniosek
Możesz sprawić, że Selen będzie działał jak kątomierz, ale po co wymyślać koło na nowo? Jeśli Google włożył tyle wysiłku, aby Protractor działał jak urok, wykorzystajmy go w pełni. Przynajmniej w przypadku witryn AngularJS znacznie ułatwi ci to życie.
Ten artykuł dotyczy nie tylko kątomierza. Istnieje duży świat Protractora, a na rynku dostępne są setki pakietów oferowanych przez NPM, aby dodać więcej funkcji do twojego testu, oprócz prostych scenariuszy testowych. Zapraszam do korzystania z tych pakietów i uczynienia go jeszcze lepszym.
O autorze: To jest post gościnny autorstwa Deshansha. Pracuje jako inżynier ds. Rozwoju oprogramowania w testach w jednej z wiodących korporacji wielonarodowych. Posiada bogate doświadczenie w pracy nad testowaniem automatyki Selenium i Protractor.
Nasz nadchodzący samouczek pomoże Ci pomyślnie usunąć każdą rozmowę kwalifikacyjną w AngularJS.
POPRZEDNIA samouczek | NEXT Tutorial
rekomendowane lektury
- Najlepsze narzędzia do testowania oprogramowania 2021 (Narzędzia do automatyzacji testów QA)
- Testing Primer Pobierz eBook
- Testowanie automatyzacji przy użyciu narzędzia Cucumber i selenu - samouczek dotyczący selenu nr 30
- Instalowanie aplikacji i przygotowywanie ich do testowania Appium
- Testowanie obciążenia za pomocą LoadUI - bezpłatnego i otwartego narzędzia do testowania obciążenia
- Integracja Selenium z JMeter
- Testowanie obciążenia za pomocą samouczków HP LoadRunner
- Samouczek narzędzia do testowania dostępności WAVE