Looking for protractor Answers? Try Ask4KnowledgeBase
Looking for protractor Keywords? Try Ask4Keywords

protractorRozpoczęcie pracy z kątomierzem


Uwagi

Kątomierz to kompleksowa platforma testowa dla aplikacji AngularJS.

Kątomierz to opakowanie (zbudowane na górze) wokół Selenium WebDriver, więc zawiera wszystkie funkcje dostępne w Selenium WebDriver. Dodatkowo Protractor udostępnia nowe strategie lokalizatora i funkcje, które są bardzo pomocne w automatyzacji aplikacji AngularJS. Przykłady obejmują między innymi: waitForAngular, By.binding, By.repeater, By.textarea, By.model, WebElement.all, WebElement.evaluate itp.

Wersje

Wersja Dane do wydania
0.0.1 01.08.2016

Pierwszy test z użyciem kątomierza

Kątomierz potrzebuje tylko dwóch plików do uruchomienia pierwszego pliku testowego, pliku specyfikacji (kodu testowego) i pliku konfiguracyjnego. Plik spec zawiera kod testowy, a drugi zawiera szczegóły konfiguracji, takie jak ścieżka pliku spec, szczegóły przeglądarki, adres URL testu, parametry frameworka itp. Aby napisać pierwszy test, podamy tylko adres serwera selenium i ścieżkę pliku spec. Inne parametry, takie jak przeglądarka , limit czasu, struktura zostanie podniesiona do wartości domyślnych.

Domyślną przeglądarką Kątomierza jest Chrome.

conf.js - plik konfiguracyjny

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

spec.js - plik Spec (kod testowy)

describe('first test in protractor', function() {
  it('should verify title', function() {
    browser.get('https://angularjs.org');

    expect(browser.getTitle()).toEqual('AngularJS — Superheroic JavaScript MVW Framework');
  });
});
 

seleniumAddress - Ścieżka do serwera, na którym działa serwer Webdriver.

specs - Element tablicy zawierający ścieżkę plików testowych. Wiele ścieżek można określić za pomocą wartości oddzielonych przecinkami.

opisz - Składnia z frameworku Jasmine . describe składnię sta

Instalowanie i konfigurowanie kątomierza (w systemie Windows)

Wymagania: Kątomierz wymaga zainstalowania następujących zależności przed instalacją:

  • Java JDK 1.7 lub nowszy
  • Node.js v4 lub wyższy

Instalacja:

Pobierz i zainstaluj Node.js z tego adresu URL: https://nodejs.org/en/

Aby sprawdzić, czy instalacja Node.js zakończyła się powodzeniem, możesz przejść i sprawdzić zmienne środowiskowe. „Ścieżka” w obszarze Zmiennych systemowych zostanie automatycznie zaktualizowana.

Zmienna ścieżki do sprawdzenia instalacji Node.js


Możesz to również sprawdzić, wpisując polecenie npm -version w wierszu polecenia, co da zainstalowaną wersję.

polecenie, aby sprawdzić instalację Node.js


Teraz Kątomierz można zainstalować na dwa sposoby: lokalnie lub globalnie.

Możemy zainstalować kątomierz w określonej lokalizacji folderu lub katalogu projektu. Jeśli instalujemy w katalogu projektu, za każdym razem, gdy uruchamiamy, powinniśmy uruchamiać tylko z tej lokalizacji.

Aby zainstalować lokalnie w katalogu projektu, przejdź do folderu projektu i wpisz polecenie

npm install protractor


Aby zainstalować Kątomierz globalnie, uruchom polecenie:

$ npm install -g protractor
 

Spowoduje to zainstalowanie dwóch narzędzi wiersza polecenia, protractor i webdriver-manager .
Uruchom protractor --version aby upewnić się, że kątomierz został pomyślnie zainstalowany.

webdriver-manager służy do pobierania plików binarnych sterownika przeglądarki i uruchamiania serwera selenium.
Pobierz pliki binarne sterownika przeglądarki za pomocą:

$ webdriver-manager update
 

Uruchom serwer selenium za pomocą:

$ webdriver-manager start
 

Aby pobrać sterownik przeglądarki internetowej, uruchom polecenie webdriver-manager update --ie w wierszu polecenia. Spowoduje to pobranie IEDriverServer.exe z twojego folderu selenu

Oczekujące testy

Kątomierz pozwala na ustawienie testów jako oczekujących. Oznacza to, że kątomierz nie wykona testu, ale wyświetli:

Pending:
1) Test Name
Temporarily disabled with xit
 

Lub, jeśli wyłączono za pomocą xdescribe ():

Pending:
1) Test Name
No reason given
 

Kombinacje

  • Xit () w xdescribe () wyświetli odpowiedź xit ().
  • Xit () w fdescribe () nadal będzie traktowane jako oczekujące.
  • Fit () w ramach xdescribe () nadal będzie działać i żadne oczekujące testy niczego nie wygenerują.

Kątomierz: Testowanie E2E dla aplikacji kątowych dla przedsiębiorstw

Instalacja i konfiguracja kątomierza

Krok 1 : Pobierz i zainstaluj NodeJS stąd. Upewnij się, że masz najnowszą wersję węzła. Tutaj używam węzła v7.8.0. Będziesz musiał zainstalować Java Development Kit (JDK), aby uruchomić selen.

Krok 2 : Otwórz terminal i wpisz następujące polecenie, aby zainstalować kątomierz globalnie.

npm install -g protractor
 

Spowoduje to zainstalowanie dwóch narzędzi, takich jak kątomierz i menedżer Webdriver. Możesz zweryfikować instalację kątomierza, wykonując następujące polecenie: protractor –version. Jeśli Kątomierz zostanie zainstalowany pomyślnie, system wyświetli zainstalowaną wersję (tj. Wersję 5.1.1). W przeciwnym razie konieczne będzie ponowne sprawdzenie instalacji. Krok 3: Zaktualizuj menedżera webdriver, aby pobrać niezbędne pliki binarne.

webdriver-manager update
 

Krok 4: Następujące polecenie uruchomi serwer Selenium. W tym kroku menedżer sterowników sieci Web uruchomi się w tle i wysłucha wszelkich testów uruchamianych za pomocą kątomierza.

start webdriver-manager Informacje o stanie serwera można znaleźć na http://localhost:4444/wd/hub/static/resource/hub.html.

Pisanie pierwszego przypadku testowego przy użyciu Kątomierza:

Zanim przejdziemy do pisania przypadku testowego, musimy przygotować dwa pliki, które są plikiem konfiguracyjnym i plikiem specyfikacji.

W pliku konfiguracyjnym:

//In conf.js
exports.config = {
    baseUrl: ‘http://localhost:8800/adminapp’,
    seleniumAddress: ‘http://localhost:4444/wd/hub',
    specs: [‘product/product_test.js’],
    directConnect : true,
    capabilities :{
        browserName: ‘chrome’
    }
}
 

Podstawowe zrozumienie terminologii użytej w pliku konfiguracyjnym:

baseUrl - podstawowy adres URL testowanej aplikacji.

seleniumAddress - Aby połączyć się z serwerem Selenium, który już działa.

specs - Lokalizacja pliku specyfikacji

directConnect : true - Aby połączyć się bezpośrednio ze sterownikami przeglądarki.

możliwości - jeśli testujesz w jednej przeglądarce, skorzystaj z opcji możliwości. Jeśli testujesz na wielu przeglądarkach, użyj tablicy multiCapabilities.

Można znaleźć więcej opcji konfiguracji z tutaj . Opisali wszelką możliwą terminologię wraz z jej definicją.

W pliku Spec:

//In product_test.js

    describe(‘Angular Enterprise Boilerplate’, function() {
      it('should have a title', function() {
        browser.get('http://localhost:8800/adminapp’);
        expect(browser.getTitle()).toEqual(‘Angular Enterprise Boilerplate’);
      });
    });
 

Podstawowe zrozumienie terminologii użytej w pliku spec:

Domyślnie Protractor używa frameworku jaśminu jako interfejsu testowego. „opisz”, a składnia „it” pochodzi z frameworku jaśminu. Możesz dowiedzieć się więcej tutaj. Uruchamianie pierwszego przypadku testowego:

Przed uruchomieniem przypadku testowego upewnij się, że menedżer webdriver i aplikacja działają na różnych kartach terminala.

Teraz uruchom test z:

Protractor app/conf.js
 

Powinieneś zobaczyć, jak przeglądarka Chrome otwiera się z adresem URL Twojej aplikacji i zamyka się. Wynik testu powinien wynosić 1 test, 1 asercja, 0 awarii.

Brawo! Pomyślnie uruchomiłeś pierwszy przypadek testowy.

Selektywne testy biegowe

Kątomierz może selektywnie uruchamiać grupy testów za pomocą fdescribe () zamiast replace ().

fdescribe('first group',()=>{
    it('only this test will run',()=>{
        //code that will run
    });
});
describe('second group',()=>{
    it('this code will not run',()=>{
        //code that won't run
    });
});
 

Kątomierz może selektywnie uruchamiać testy w grupach za pomocą fit () zamiast niego ().

describe('first group',()=>{
    fit('only this test will run',()=>{
        //code that will run
    });
    it('this code will not run',()=>{
        //code that won't run
    });
});
 

Jeśli w fdescribe () nie ma fit (), to uruchomi się każdy it (). Jednak fit () zablokuje wywołania it () w ramach tego samego opisu () lub fdescribe ().

fdescribe('first group',()=>{
    fit('only this test will run',()=>{
        //code that will run
    });
    it('this code will not run',()=>{
        //code that won't run
    });
});
 

Nawet jeśli fit () jest w opisie () zamiast w fdescribe (), uruchomi się. Ponadto uruchomi się dowolny it () w fdescribe (), który nie zawiera fit ().

fdescribe('first group',()=>{
    it('this test will run',()=>{
        //code that will run
    });
    it('this test will also run',()=>{
        //code that will also run
    });
});
describe('second group',()=>{
    it('this code will not run',()=>{
        //code that won't run
    });
    fit('this code will run',(){
        //code that will run
    });
});
 

Napisz test kątomierza

Otwórz nowy wiersz poleceń lub okno terminala i utwórz czysty folder do testowania.

Kątomierz potrzebuje dwóch plików do uruchomienia, pliku specyfikacji i pliku konfiguracji.

Zacznijmy od prostego testu, który przechodzi do przykładu listy rzeczy do zrobienia na stronie AngularJS i dodaje nowy element rzeczy do listy.

Skopiuj poniższe do spec.js

opisz („lista zadań strony domowej angularjs”, function () {it („powinien dodać 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);});});