Michał Sierzputowski. Zautomatyzuj swoje testy automatyczne oparte o Selenium



Podobne dokumenty
Tester oprogramowania 2014/15 Tematy prac dyplomowych

Testowanie. Ryszard Beczek & Piotr Miłkowski 1 04/11/07

Automatyzacja testów aplikacji webowych w Selenium podstawy. Natalia Krawczyk

Programowanie warstwy klienta w aplikacji JavaEE

Wyzwania w automatyzacji Selenium WebDriver

METODY PROGRAMOWANIA

Przegląd narzędzi do automatycznego testowania aplikacji internetowych. Jan Płoszczyca SKISR 2006

Program szkolenia: Architektura aplikacji i systemów - Wzorce architektoniczne dla projektantów

Testowanie aplikacji mobilnych na platformie Android - architektura, wzorce, praktyki i narzędzia

Całościowe podejście do testowania automatycznego dla programistów. (TDD, BDD, Spec. by Example, wzorce, narzędzia)

1. Po uruchomieniu przeglądarki Mozilla FireFox, należy uruchomić stronę

Testy automatyczne. Korzystające z junit

Automaty do zadań specjalnych. Olga Maciaszek-Sharma, Artur Kotow Wersja 1,

Całościowe podejście do testowania automatycznego dla programistów. /C#/PHP (TDD, BDD, Spec. by Example, wzorce, narzędzia)

Automatyzacja testowania oprogramowania. Automatyzacja testowania oprogramowania 1/36

Ciągłe dostarczanie oprogramowania : kompletny przewodnik / Eberhard Wolff. Gliwice, cop Spis treści

Zwinna współpraca programistów i testerów z wykorzystaniem BDD i. by Example (JBehave/Spock/SpecFlow)

Full Stack JavaScript z Angular i Nest. Dni: 5. Opis: Adresaci szkolenia

Słowa kluczowe jak góry lodowe

Politechnika Wrocławska

Techniki efektywnego testowania kodu dla programistów Java (Spock

Testy aplikacji webowych

Testowanie jednostkowe. Jacek Starzyński, ZETiIS PW

Automatyzacja Testowania w WEB 2.0

WYKORZYSTANIE JĘZYKA GROOVY W TESTACH JEDNOSTKOWYCH, INTEGRACYJNYCH I AUTOMATYCZNYCH. Mirosław Gołda, Programista Java

Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i

Wstęp do testowania : Szymon Ramczykowski

AUREA BPM HP Software. TECNA Sp. z o.o. Strona 1 z 7

Spring Framework - wprowadzenie i zagadnienia zaawansowane

Wzorce projektowe i architektura dla platformy Java EE

Automatyzacja narzędziami open source nie musi być trudna

Automatyzacja procesu testowego

Programowanie zespołowe

Testowanie aplikacji Java Servlets

Automatyczne testowanie aplikacji Android

Przykładowa implementacja

Tytuł szkolenia: Angular 4 - budowanie nowoczesnych i wydajnych aplikacji przeglądarkowych

Programowanie.NET - kurs zaawansowany

Dokumentacja użytkownika

Programowanie poprzez testy z wykorzystaniem JUnit

Program szkolenia: Receptury testowania automatycznego - problemy, strategie, taktyki, techniki, narzędzia

Testy jednostkowe - zastosowanie oprogramowania JUNIT 4.0 Zofia Kruczkiewicz

Główne założenia XP. Prostota (Simplicity) Komunikacja (Communication) Sprzężenie zwrotne (Feedback) Odwaga (Agressiveness)

Test-Driven Development

ANGULARJS TWORZENIE APLIKACJI INTERNETOWYCH

Program szkolenia: Architektura aplikacji i systemów - Wzorce architektoniczne dla projektantów

Testowy dokument raz dwa trzy

Podstawy programowania III WYKŁAD 6

Automatyczne decyzje kredytowe, siła szybkiego reagowania i optymalizacji kosztów. Roman Tyszkowski ING Bank Śląski S.A. roman.tyszkowski@ingbank.

Architektura mikroserwisów na platformie Spring IO

Program szkolenia: Wzorce projektowe i ich implementacja w C# oraz testowanie automatyczne

Dokumentacja techniczna API systemu SimPay.pl

Podstawy programowania III WYKŁAD 4

Inżynieria Programowania - Testowanie oprogramowania cz.2

1. Robert C. Martin: Clean Code: A Handbook of Agile Software Craftsmanship (Czysty Kod: Podręcznik Dobrego Programisty)

Usługa: Testowanie wydajności oprogramowania

OpenAI Gym. Adam Szczepaniak, Kamil Walkowiak

ZAPROSZENIE DO SKŁADANIA OFERT

INŻYNIERIA OPROGRAMOWANIA

Fuzzing OWASP The OWASP Foundation Piotr Łaskawiec J2EE Developer/Pentester

Narzędzia CASE dla.net. Łukasz Popiel

Testowanie aplikacji. Kurs języka Ruby

Programowanie Zespołowe

SSI Web 8. (badania.kozminski.edu.pl) Instrukcja logowania i uruchamiania ankiety

Szkolenie: Podstawy automatyzacji z Selenium IDE

Zaawansowane programowanie w języku C++

HP Service Anywhere Uproszczenie zarządzania usługami IT

PAT: persistence aspect

Zarządzanie testowaniem wspierane narzędziem HP Quality Center

1. Wstęp 2. Adres usługi 3. Konfiguracja 4. Metody 5. Typy danych 6. Przykład wywołania metody przy użyciu php i biblioteki nusoap 7.

Receptury - niezbędnik projektanta i architekta

Zaawansowane Techniki Bazodanowe

Narzędzia podnoszące jakość procesu wytwarzania i wdrażania

n+1 sposobów na automatyczne testy aplikacji mobilnych WrotQA, webinar Łukasz Siudakiewicz Damian Szczurek Automation Test Engineer

Aplikacje WWW - lab 11

Programowanie Komponentowe WebAPI

Dokumentacja API sender sms

Testowanie według modelu (MBT) Stowarzyszenie Inżynierii Wymagań wymagania.org.pl

Programowanie aspektowe na przykładzie AspectJ JUG Poznań, Jacek Pospychała

JUnit TESTY JEDNOSTKOWE. Waldemar Korłub. Platformy Technologiczne KASK ETI Politechnika Gdańska

Java. Wykład. Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ

Kurs rozszerzony języka Python

Programowanie w Ruby

Testowanie I. Celem zajęć jest zapoznanie studentów z podstawami testowania ze szczególnym uwzględnieniem testowania jednostkowego.

Modelowanie testów. czyli po co testerowi znajomość UML

Wybrane ataki na urządzenia sieciowe Secure Michał Sajdak, Securitum sekurak.pl

Instrukcja 10 Laboratorium 13 Testy akceptacyjne z wykorzystaniem narzędzia FitNesse

Zagadnienia. Inżynieria Oprogramowania

Google Testing. Radosław Smilgin, , TestWarez

Automatyzacja bez nadmiernego bólu. Piotr Januszek

PISANIE TESTÓW Z WYKORZYSTANIEM BIBLIOTEKI TESTNG

Wdrożenie technologii procesowej IBM BPM w EFL

Wzorce logiki dziedziny

Microsoft Test Manager

Pico. Wstęp do kontenerów IoC.

Szkoła programisty PLC : sterowniki przemysłowe / Gilewski Tomasz. Gliwice, cop Spis treści

REFERAT PRACY DYPLOMOWEJ

Podstawy i języki programowania

Transkrypt:

Michał Sierzputowski Zautomatyzuj swoje testy automatyczne oparte o Selenium

Automatyzacja Testów - wprowadzenie Dostarczanie szybkiej informacji zwrotnej Zapewnianie możliwości wprowadzania bezpiecznych zmian Automatyzacja testów to proces ciągły 2 http://www.mpa-rm.pl/images/industrial-automation.jpg

Podstawy testów automatycznych Ustalenie standardów kodowania Dbanie o czysty kod (clean code) Stosowanie wzorców projektowych Inspekcje kodu (code review) Wersjonowanie kodu http://loewy.com/wp-content/uploads/2012/09/mainfeature-waterlogic.jpg 3

Selenium 4

Prosty skrypt testowy WebDriver driver = new FirefoxDriver(); driver.get("http://www.aukcje.pl"); WebElement login_link = driver.findelement(by.linktext("zaloguj")); login_link.click(); WebElement user_name = driver.findelement(by.id("userform_login")); user_name.sendkeys("jan_kowalski"); WebElement password = driver.findelement(by.id("userform_password")); password.sendkeys("tajnehaslo1"); WebElement login_button = driver.findelement(by.id("login )); login_button.click(); WebElement user_link = driver.findelement(by.linktext("jan Kowalski")); assertthat(user_link.isdisplayed(),is(true)); driver.quit(); 5

Oddzielenie biznesu od techniki Page Objects C f LoginPage USER_NAME PASSWORD By LOGIN_BUTTON= By.id( login"); public void clicklogin(){ } HomePage SEARCH_BOX driver.findelement(login_button).click(); SEARCH_BUTTO LOGIN_BUTTON N m typeusername(strin g) typepassword(strin g) LOGIN_BUTTON USER_LINK typesearch(string) clicksearch(string) clicklogin() clicklogin() 6

Skrypt z Page Object ami LoginTest homepage.clickloginlink(); loginpage.typeusername("jan_kowalski"); loginpage.typeusername("jan_kowalski ) loginpage.typepassword("tajnehaslo1");.typepassword("tajnehaslo1 ) loginpage.clicklogin(); assertthat(homepage.getuser(),is("jankowalski )); 7

Delegaty LoginDelegate loginas(username, password) typeusername(user) typepassword(password) clicklogin() 8

Zależności TestClass LogingDelegate SearchDelegate LoginPage HomePage SearchResultsPage WebDriver 9

Wstrzykiwanie zależności Dependecy Injection private LoginPage loginpage; private WebDriver driver; private DriverFactory driverfactory; @Inject LoginPage loginpage this.driverfactory = new DriverFactory(); this.driver = driverfactory.getdriver(); this.loginpage = new LoginPage(driver); https://elearning.industriallogic.com/gh/albums/wrappersandwalkers/injector/images/big-tomatoes.gif 10

Generator kodu http://static.comicvine.com/uploads/original/14/149681/3464500-11

Zarządzanie testami Biblioteka dla testów jednostkowych Zarządzanie strukturą zestawu testów Definicja grupy testów Zależności między testami Priorytety Data Driven Testing Dodatkowe opisy testów Uruchamianie testów równolegle... @BeforeClass @BeforeMethod @Test(dependsOnMethods= testcreatenewshoppingbasket public void @Test(priority=2) @AfterMethod testdeleteitemfrombasket() @Test(groups = {QUARANTINE, READ_ONLY, @Test(dataProvider @AfterClass(alwaysRun=true) = "providenumbers ) DISABLED_ON_IE8} ) DataProvider(name = "providenumbers") @Test(description="Navigates to the admin page") { 2, 5 }, <suite name="main" parallel="classes" thread-count="30" > { 10, 110 }, { -200, 210 } http://www.robotshop.com/media/files/images/fischertechnik-super-cranes-large.jpg 12

Przygotowanie środowiska Niezależne testy Elastyczne i skalowalne rozwiązanie @BeforeClass public void prepareenvironment(){ createtestorganisation(); @AfterClass public void teardown(){ deactivateorganization(); } createtestworker(); assignpermissionstoworker( ); } Wykorzystanie wewnętrznych serwisów testowanej aplikacji (SOAP, REST,.) Baza danych http://i.wp.pl/a/f/jpeg/30250/07-sprezyna-zabawka-600x513.jpeg 13

Logowanie informacji Logowanie w testach Test Test Test Logowanie 14

Logowanie informacji Programowanie aspektowe - AOP Page Object Page Object Page Object Page Object Page Object Page Object Tracing Aspect Logowanie 15

Podsumowanie Traktowanie projektu testowego jako projektu aplikacji Page Objects Delegaty Wstrzykiwanie zależności Generator kodu Zarządzanie testami Przygotowanie środowiska Logowanie http://bigbackground.com/wp-content/uploads/2013/07/summer-nature-images1-1024x640.jpg 16

Pytania Dziękuję!? michalsierzputowski m.sierzputowski@kainos.com kainos.pl 17