SlideShare ist ein Scribd-Unternehmen logo
1 von 22
Kraków, 19.03.2018
Selenium WebDriver
Testy automatyczne w Python
Quality Assurance
Piotr Marczydło
Sebastian Szczerbowski
Testowanie aplikacji
webowych
4
Po co przeprowadzać testy?
5
Jakie testy możemy przeprowadzać?
6
• Testy kompatybilności
• Testy funkcjonalne
• Testy wydajności serwera
• Code review
• Testy wydajności użytkownika
• Testy API
• Testy automatyczne
• Testy jednostkowe
• Testy 404
• Testy bezpieczeństwa
Testy automatyczne vs testy manualne
7
Selenium WebDriver
8
• Biblioteka umożliwiająca interakcje z przeglądarkami
• Biblioteka wspierająca języki:
Warsztat 1:
Uruchomienie strony za
pomocą Selenium
9
1. Import WebDrivera z
biblioteki Selenium
2. Uruchomienie przeglądarki
3. Przejście na stronę
"https://www.onet.pl/"
Warsztat 1: Uruchomienie strony za pomocą Selenium
10
Warsztat 2: Wyszukiwanie
elementów i ustalanie ich
dostępności
11
1. Developer Tools
2. Metoda find_element_by_*:
• ID
• Name
• Xpath
• Link_text
• Partial_link_text
• Tag_name
• Class_name
• Css_selector
3. Na stronie "https://www.onet.pl/"
sprawdź czy ikony paska górnego są dostępnie
Warsztat 2: Wyszukiwanie elementów i ustalanie ich dostępności
12
Przydatne metody:
find_element(By, Locator)
is_enabled()
Warsztat 3: Interakcja z
elementami strony
internetowej
13
1. DDT- Data Driven Testing
2. Zadanie:
• Wejdź na stronę https://www.onet.pl/
• Sprawdź czy ikony paska górnego są
dostępnie
• Kliknij w ikonę E-mail
• Sprawdź czy dostępne są pola
logowania
• Wpisz dane do logowania
• Klikinij "Zaloguj"
Warsztat 3: Interakcja z elementami strony internetowej
14
Przydatne metody:
click()
clear()
send_keys(text)
Warsztat 4: Asercja czyli
wynik testu
15
1. Bibliotek unittest
2. funkcje zaczynają się od test_
3. setUp() i tearDown()
4 Przygotuj przypadek testowy który
przejdzie wcześniej przygotowany flow,
w miejsce danych logowania wpisze
niepoprawny login i hasło, sprawdzi
komunikat o błędzie, a następnie
poprawny i sprawdzi czy udało się
zalogować na pocztę
Warsztat 4: Asercja czyli wynik testu
16
Przydatne metody:
assertTrue(bool)
assertEqual(text, text)
Co dalej...
17
Framework i Page Object Pattern
18
Selenium Grid
19
Node
Node
Node
Continuous Development
20
Dziękuję za uwagę
Linki:
https://docs.seleniumhq.org/
http://selenium-python.readthedocs.io/
https://docs.python.org/3/library/unittest.html

Weitere ähnliche Inhalte

Ähnlich wie Selenium WebDriver Testy Automatyczne w Pythonie | DreamLab Academy #8

Najlepsze praktyki testowania aplikacji ASP.NET
Najlepsze praktyki testowania aplikacji ASP.NETNajlepsze praktyki testowania aplikacji ASP.NET
Najlepsze praktyki testowania aplikacji ASP.NET
Marcin Daczkowski
 
Tworzenie stron WWW z wykorzystaniem Ajaksa. Projekty
Tworzenie stron WWW z wykorzystaniem Ajaksa. ProjektyTworzenie stron WWW z wykorzystaniem Ajaksa. Projekty
Tworzenie stron WWW z wykorzystaniem Ajaksa. Projekty
Wydawnictwo Helion
 

Ähnlich wie Selenium WebDriver Testy Automatyczne w Pythonie | DreamLab Academy #8 (20)

Testy funkcjonalne
Testy funkcjonalneTesty funkcjonalne
Testy funkcjonalne
 
Integracja środowiska testowego z użyciem Robot Framework, TrojQA 2014-12-16
Integracja środowiska testowego z użyciem Robot Framework, TrojQA 2014-12-16Integracja środowiska testowego z użyciem Robot Framework, TrojQA 2014-12-16
Integracja środowiska testowego z użyciem Robot Framework, TrojQA 2014-12-16
 
Najlepsze praktyki testowania aplikacji ASP.NET
Najlepsze praktyki testowania aplikacji ASP.NETNajlepsze praktyki testowania aplikacji ASP.NET
Najlepsze praktyki testowania aplikacji ASP.NET
 
Automated Tests in Agile based on Serenity BDD - Michał Szybalski
Automated Tests in Agile based on Serenity BDD - Michał SzybalskiAutomated Tests in Agile based on Serenity BDD - Michał Szybalski
Automated Tests in Agile based on Serenity BDD - Michał Szybalski
 
Automatyczne testy end-to-end aplikacji JavaScript.
Automatyczne testy end-to-end aplikacji JavaScript.Automatyczne testy end-to-end aplikacji JavaScript.
Automatyczne testy end-to-end aplikacji JavaScript.
 
Lionframe - Rapid RESTful API development
Lionframe - Rapid RESTful API developmentLionframe - Rapid RESTful API development
Lionframe - Rapid RESTful API development
 
Prostota i mozliwosci symfony2
Prostota i mozliwosci symfony2Prostota i mozliwosci symfony2
Prostota i mozliwosci symfony2
 
[TestWarez 2017] Architektura testów automatycznych dla wielomodułowej aplika...
[TestWarez 2017] Architektura testów automatycznych dla wielomodułowej aplika...[TestWarez 2017] Architektura testów automatycznych dla wielomodułowej aplika...
[TestWarez 2017] Architektura testów automatycznych dla wielomodułowej aplika...
 
Co nowego w VS 2013 dla programistów ASP.NET?
Co nowego w VS 2013 dla programistów ASP.NET?Co nowego w VS 2013 dla programistów ASP.NET?
Co nowego w VS 2013 dla programistów ASP.NET?
 
Jak przyspieszyłem aplikację produkcyjną o ponad 40%
Jak przyspieszyłem aplikację produkcyjną o ponad 40%Jak przyspieszyłem aplikację produkcyjną o ponad 40%
Jak przyspieszyłem aplikację produkcyjną o ponad 40%
 
Jak zapewnić jakość aplikacjom na sfragmentowanego Androida?
Jak zapewnić jakość aplikacjom na sfragmentowanego Androida?Jak zapewnić jakość aplikacjom na sfragmentowanego Androida?
Jak zapewnić jakość aplikacjom na sfragmentowanego Androida?
 
Produkcja aplikacji internetowych
Produkcja aplikacji internetowychProdukcja aplikacji internetowych
Produkcja aplikacji internetowych
 
HYC - Angular stań się kanciastym
HYC - Angular stań się kanciastymHYC - Angular stań się kanciastym
HYC - Angular stań się kanciastym
 
Testy integracyjne
Testy integracyjneTesty integracyjne
Testy integracyjne
 
Testowanie na 101 sposobów
Testowanie na 101 sposobówTestowanie na 101 sposobów
Testowanie na 101 sposobów
 
Tworzenie stron WWW z wykorzystaniem Ajaksa. Projekty
Tworzenie stron WWW z wykorzystaniem Ajaksa. ProjektyTworzenie stron WWW z wykorzystaniem Ajaksa. Projekty
Tworzenie stron WWW z wykorzystaniem Ajaksa. Projekty
 
Dobre przepisy na cake php
Dobre przepisy na cake phpDobre przepisy na cake php
Dobre przepisy na cake php
 
Tworzenie niezależnego środowiska do developmentu aplikacji frontendowej
Tworzenie niezależnego środowiska do developmentu aplikacji frontendowejTworzenie niezależnego środowiska do developmentu aplikacji frontendowej
Tworzenie niezależnego środowiska do developmentu aplikacji frontendowej
 
Szybkie tworzenie aplikacji na iPhone i Android - Netcamp #16
Szybkie tworzenie aplikacji na iPhone i Android - Netcamp #16Szybkie tworzenie aplikacji na iPhone i Android - Netcamp #16
Szybkie tworzenie aplikacji na iPhone i Android - Netcamp #16
 
Tech cafe Microservices
Tech cafe MicroservicesTech cafe Microservices
Tech cafe Microservices
 

Mehr von DreamLab

Mehr von DreamLab (14)

DreamLab Academy #12 Wprowadzenie do React.js
DreamLab Academy #12 Wprowadzenie do React.jsDreamLab Academy #12 Wprowadzenie do React.js
DreamLab Academy #12 Wprowadzenie do React.js
 
Intro to React | DreamLab Academy
Intro to React | DreamLab AcademyIntro to React | DreamLab Academy
Intro to React | DreamLab Academy
 
Subtelna sztuka optymalizacji
Subtelna sztuka optymalizacji Subtelna sztuka optymalizacji
Subtelna sztuka optymalizacji
 
Podstawy JavaScript | DreamLab Academy #7
Podstawy JavaScript | DreamLab Academy #7Podstawy JavaScript | DreamLab Academy #7
Podstawy JavaScript | DreamLab Academy #7
 
Let's build a PaaS platform, how hard could it be?
Let's build a PaaS platform, how hard could it be?Let's build a PaaS platform, how hard could it be?
Let's build a PaaS platform, how hard could it be?
 
Wdrażanie na wulkanie, czyli CI w świecie który nie znosi opóźnień.
Wdrażanie na wulkanie, czyli CI w świecie który nie znosi opóźnień.Wdrażanie na wulkanie, czyli CI w świecie który nie znosi opóźnień.
Wdrażanie na wulkanie, czyli CI w świecie który nie znosi opóźnień.
 
Gdy testy to za mało - Continuous Monitoring
Gdy testy to za mało - Continuous MonitoringGdy testy to za mało - Continuous Monitoring
Gdy testy to za mało - Continuous Monitoring
 
Intro to JavaScript | Wstęp do programowania w Java Script | DreamLab Academy #4
Intro to JavaScript | Wstęp do programowania w Java Script | DreamLab Academy #4Intro to JavaScript | Wstęp do programowania w Java Script | DreamLab Academy #4
Intro to JavaScript | Wstęp do programowania w Java Script | DreamLab Academy #4
 
Intro to Redux | DreamLab Academy #3
Intro to Redux | DreamLab Academy #3 Intro to Redux | DreamLab Academy #3
Intro to Redux | DreamLab Academy #3
 
Quick start with React | DreamLab Academy #2
Quick start with React | DreamLab Academy #2Quick start with React | DreamLab Academy #2
Quick start with React | DreamLab Academy #2
 
About Motivation in DevOps Culture
About Motivation in DevOps CultureAbout Motivation in DevOps Culture
About Motivation in DevOps Culture
 
Continuous Integration w konfiguracji urządzeń sieciowych
Continuous Integration w konfiguracji urządzeń sieciowychContinuous Integration w konfiguracji urządzeń sieciowych
Continuous Integration w konfiguracji urządzeń sieciowych
 
Real User Monitoring at Scale @ Atmosphere Conference 2016
Real User Monitoring at Scale @ Atmosphere Conference 2016Real User Monitoring at Scale @ Atmosphere Conference 2016
Real User Monitoring at Scale @ Atmosphere Conference 2016
 
DevOps at DreamLab
DevOps at DreamLabDevOps at DreamLab
DevOps at DreamLab
 

Selenium WebDriver Testy Automatyczne w Pythonie | DreamLab Academy #8

Hinweis der Redaktion

  1. Unittest.TestCase test_* if __name__ == '__main__':     unittest.main() python -m unittest