Automatyczne testy end-to-end aplikacji JavaScript.

67 %
33 %
Information about Automatyczne testy end-to-end aplikacji JavaScript.
Technology

Published on June 27, 2014

Author: FutureProcessing

Source: slideshare.net

Description

Prezentacja Przemysława Secha z III edycji konferencji Quality Excites.

Copyright © 2014 Rockwell Automation, Inc. All RightsRev 5058-CO900E PUBLIC INFORMATION Automatyczne testy end-to-end aplikacji JavaScript Przemysław Sech Software Test Engineer 31.05.2014 Email: przemek.sech@gmail.com Twitter: @PrzemekSech

Copyright © 2014 Rockwell Automation, Inc. All Rights Reserved.PUBLIC INFORMATION 2 Agenda Demo Protractor Selenium Środowisko Stos technologiczny

Copyright © 2014 Rockwell Automation, Inc. All Rights Reserved.PUBLIC INFORMATION Rodzaje testów  Testy jednostkowe Unit Tests – A unit test is a software development life cycle (SDLC) component in which a comprehensive testing procedure is individually applied to the smallest parts of a software program for fitness or desired operation.  Testy funkcjonalne Functional testing is a software testing process used within software development in which software is tested to ensure that it conforms to all requirements. Functional testing is a way of checking software to ensure that it has all the required functionality that's specified within its functional requirements.  Testy End-to-End End-to-end testing is a methodology used to test whether the flow of an application is performing as designed from start to finish. The purpose of carrying out end-to- end tests is to identify system dependencies and to ensure that the right information is passed between various system components and systems. 3

Copyright © 2014 Rockwell Automation, Inc. All Rights Reserved.PUBLIC INFORMATION Stos technologiczny Aplikacja 4

Copyright © 2014 Rockwell Automation, Inc. All Rights Reserved.PUBLIC INFORMATION Stos technologiczny Testy 5

Copyright © 2014 Rockwell Automation, Inc. All Rights Reserved.PUBLIC INFORMATION 8 Agenda Demo Protractor Selenium Środowisko Stos technologiczny

Copyright © 2014 Rockwell Automation, Inc. All Rights Reserved.PUBLIC INFORMATION Środowisko 9 Device Hub iOS Phone Android Phone Środowisko rzeczywiste Selenium Grid Selenium Node Selenium Node + SDK Build Server Środowisko wirtualne Selenium Node

Copyright © 2014 Rockwell Automation, Inc. All Rights Reserved.PUBLIC INFORMATION 10 Agenda Demo Protractor Selenium Środowisko Stos technologiczny

Copyright © 2014 Rockwell Automation, Inc. All Rights Reserved.PUBLIC INFORMATION Selenium 11 Narzędzie do automatycznej symulacji interakcji użytkownika z przeglądarką. Selenium IDE Selenium WebDriver Selenium Grid Selenium RC + WebDriver (Selenium 1) = Selenium 2.0

Copyright © 2014 Rockwell Automation, Inc. All Rights Reserved.PUBLIC INFORMATION Selenium WebDriver (Node) 12 Sterowniki przeglądarek – niezależne Dostępne języki API – oficjalnie Sterowniki przeglądarek – wbudowane Dostępne języki API – nieoficjalnie

Copyright © 2014 Rockwell Automation, Inc. All Rights Reserved.PUBLIC INFORMATION Selenium Grid (Hub) 13 HUB NODE 1 (ANDROID) NODE 2 (IE on Windows) NODE 3 (Firefox on Ubuntu) NODE 4 (Safari on MacOS) NODE 5 (Safari on iOS)

Copyright © 2014 Rockwell Automation, Inc. All Rights Reserved.PUBLIC INFORMATION Selenium WebDriver 14 localhost TEST WebDriver Uruchomienie WD > java -jar selenium-server-standalone.jar Adres docelowy: http://127.0.0.1:4444/wd/hub

Copyright © 2014 Rockwell Automation, Inc. All Rights Reserved.PUBLIC INFORMATION 192.168.0.1 Selenium WebDriver 15 localhost TEST Uruchomienie WD > java -jar selenium-server-standalone.jar Adres docelowy: http://192.168.0.1:4444/wd/hub WebDriver

Copyright © 2014 Rockwell Automation, Inc. All Rights Reserved.PUBLIC INFORMATION Selenium Grid (Hub) 1616 Lokalnie WebDriver HUB role TEST WebDriver NODE role WebDriver NODE role Lokalnie WebDriver HUB role TEST WebDriver NODE role WebDriver NODE role Uruchomienie Serwera Grid (Hub) > java -jar selenium-server-standalone.jar -role hub Uruchomienie Klienta WD (Node) > java -jar selenium-server-standalone.jar -role node -hub http://localhost:4444/grid/register -port xxxx Adres docelowy serwera grid: http://127.0.0.1:4444/grid/console

Copyright © 2014 Rockwell Automation, Inc. All Rights Reserved.PUBLIC INFORMATION 192.168.0.3 Selenium Grid (Hub) 1717 Lokalnie 192.168.0.1 WebDriver HUB role TEST 192.168.0.2 WebDriver NODE role WebDriver NODE role WebDriver NODE role Appium

Copyright © 2014 Rockwell Automation, Inc. All Rights Reserved.PUBLIC INFORMATION 18 Agenda Demo Protractor Selenium Środowisko Stos technologiczny

Copyright © 2014 Rockwell Automation, Inc. All Rights Reserved.PUBLIC INFORMATION Protractor 20  Narzędzie do tworzenia i uruchamiania testów „end to end” w środowisku przeglądarki, symulując interakcję użytkownika,  Program wykonywany w obrębie silnika Node.js,  Stworzony na bazie WebDriverJS, którego w pełni implementuje i wystawia całość jego API jako interfejs,  Rozszerza API WebDriverJS o funkcjonalności AngularJS  Do opisu składni testów pierwotnie wykorzystywał Jasmine, na chwilę obecną można korzystać z dowolnego frameworka obsługującego JavaScript np. Mocha,  Wspiera testy asynchroniczne wykorzystując technologię Promises,  Zawiera wbudowany webdriver-manager pozwalający uruchamiać samodzielną instancję klienta WebDiver (node).

Copyright © 2014 Rockwell Automation, Inc. All Rights Reserved.PUBLIC INFORMATION Protractor 21  Projekt utrzymywany jako open-source pod kontrolą GitHub: https://github.com/angular/protractor  Pełna dokumentacja: https://github.com/angular/protractor/blob/master/docs/api.m d  Dostępny jako pakiet npm: npm install -g protractor

Copyright © 2014 Rockwell Automation, Inc. All Rights Reserved.PUBLIC INFORMATION WebDriverJS 22 Wszystkie implementacje frameworka WebDriver komunikujące się z przeglądarką lub serwerem Grid za pomocą protokołu na bazie RESTfull web service. Protokół ten wykorzystuje do komunikacji dane w formacie JSON over HTTP. WebDriverJS jest jedną z implementacji JSON wire protocol udostępniającą metody wyższego poziomu.

Copyright © 2014 Rockwell Automation, Inc. All Rights Reserved.PUBLIC INFORMATION Jasmine 23 Jasmine jest frameworkiem z rodziny BDD (Behavior Driven Development) służącym do testowania aplikacji stworzonych z wykorzystaniem języka JavaScript. • niezależny od innych framworków JavaScript, • nie wymaga istnienia struktury DOM, • posiada czytelną, zrozumiałą składnię pozwalającą na szybkie pisanie testów Jasmine-node dla node.js jest dostępny jako pakiet npm: npm install -g jasmine-node

Copyright © 2014 Rockwell Automation, Inc. All Rights Reserved.PUBLIC INFORMATION Jasmine / Protractor przykład 24

Copyright © 2014 Rockwell Automation, Inc. All Rights Reserved.PUBLIC INFORMATION Webdriver-manager 25  Narzędzie wbudowane w Protractor, pozwalające na łatwą instalację, aktualizację i uruchomienie lokalnej instancji klienta WebDriver (node)  Instalacja i aktualizacja:  Uruchomienie:  Automatycznie uruchamia sterownik ChromeDriver > webdriver-manager update > webdriver-manager start

Copyright © 2014 Rockwell Automation, Inc. All Rights Reserved.PUBLIC INFORMATION Protractor konfiguracja testów 26  Uruchomienie testów:  Plik konfiguracyjny pozwala zdefiniować:  seleniumAddress – adres instancji Selenium (hub lub node) pod którą należy wysłać testy,  specs – lista plików zawierających testy,  capabilities – parametry środowiska, decydują o środowisku uruchomieniowym testów; multiCapabilities – opisują tablicę środowisk na których testy zostaną uruchomione współbieżnie,  baseUrl: bazowy adres aplikacji testowej,  onPrepare – funkcja wykonująca się przed rozpoczęciem testów  reporter – metoda generowania raportu z testów > protractor config.js

Copyright © 2014 Rockwell Automation, Inc. All Rights Reserved.PUBLIC INFORMATION Protractor raportowanie 27  Protractor pozwala wyświetlać postęp bieżących testów oraz ich status za pomocą paska postępu  Raportowanie do pliku XML dzięki bibliotece Jasmine- ReportersonPrepare: function () { "use strict"; require('jasmine-reporters'); jasmine.getEnv().addReporter(new jasmine .JUnitXmlReporter('./results/chrome', true, 'Chrome')); },

Copyright © 2014 Rockwell Automation, Inc. All Rights Reserved.PUBLIC INFORMATION Protractor Page Object Model 28 Page Object Model (POM) jest wzorcem projektowym bazującym na MVC. Zadania:  Opisanie struktury stron o odrębnych klasach (View)  Opisanie zależności i interakcji między stronami (Control)  Budowa testów w oparciu o opisane interakcje na elementach strony Zalety:  Redukcja zduplikowanego kodu  Łatwiejsze utrzymanie testów, podczas częstych zmian aplikacji (Agile)

Copyright © 2014 Rockwell Automation, Inc. All Rights Reserved.PUBLIC INFORMATION Demo 29 GitHub: https://github.com/psech/QualityExcites2014-Demo

Copyright © 2014 Rockwell Automation, Inc. All Rights Reserved.PUBLIC INFORMATION Pytania i odpowiedzi 30 GoogleDrive: http://goo.gl/m46H8J

Copyright © 2014 Rockwell Automation, Inc. All Rights Reserved. www.rockwellautomation.com Follow ROKAutomation on Facebook & Twitter. Connect with us on LinkedIn. Rev 5058-CO900F PUBLIC INFORMATION Dziękuję Email: przemek.sech@gmail.com Twitter: @PrzemekSech

Add a comment

Related presentations

Presentación que realice en el Evento Nacional de Gobierno Abierto, realizado los ...

In this presentation we will describe our experience developing with a highly dyna...

Presentation to the LITA Forum 7th November 2014 Albuquerque, NM

Un recorrido por los cambios que nos generará el wearabletech en el futuro

Um paralelo entre as novidades & mercado em Wearable Computing e Tecnologias Assis...

Microsoft finally joins the smartwatch and fitness tracker game by introducing the...

Related pages

Automatyczne testy end-to-end aplikacji JavaScript ...

Czy warstwa sprzętowa wyklucza testy automatyczne? Prezentacja Krzysztofa Kośnego z II edycji konferencji Quality Excites.
Read more

Quality Excites 2014 – konferencja dotycząca jakości ...

Automatyczne testy end-to-end aplikacji JavaScript. Prelekcja inspirowana zeszłorocznym wystąpieniem Jacka Okrojka, dotyczącym testowania aplikacji ...
Read more

[Quality Excites 2016] "Wydajność aplikacji web z ...

Zobacz wykład Jacka Okrojka pod tytułem "Wydajność aplikacji ... "Automatyczne testy end-to-end aplikacji JavaScript ... "Testy łatwe w ...
Read more

Quality Excites 2014 – konferencja dotycząca jakości ...

Przemysław Sech- „Automatyczne testy end-to-end aplikacji JavaScript”; Automatyczne testy end-to-end aplikacji JavaScript. from Future Processing.
Read more

Czy wiesz, jak testować aplikacje AngularJS? | PGS Software

... jednostkowych oraz testów end-to-end dla aplikacji ... „JavaScript jest językiem ... Testy automatyczne pisane równocześnie wraz ...
Read more

Testy automatyczne w ddd i architekturze heksagonalnej ...

Testy automatyczne w DDD i architekturze heksagonalnej ... Testy w warstwie aplikacji Alistair ... Automatyczne testy end-to-end aplikacji JavaScript.
Read more

JavaScript na poważnie - YouTube

... Tomasz Traczyk mówi jaki naprawdę jest JavaScript i rozwija kilka ... "Automatyczne testy end-to-end aplikacji JavaScript ...
Read more