SlideShare ist ein Scribd-Unternehmen logo
1 von 38
Downloaden Sie, um offline zu lesen
Pierwszy duży projekt w Pythonie i Selenium
Jak uniknąć pułapek?
Katarzyna Javaheri-Szpak
QA Automation Engineer, Promo.com
www.WarszawskieDniInformatyki.pl
2
O mnie
Katarzyna Javaheri-Szpak
Obecnie pracuję jako tester automatyzujący w izraelskiej firmie
Promo.com. Tworzę testy dla platformy do tworzenia krótkich
filmów video.
Na co dzień programuję w Pythonie. Miałam też przygodę z testami
automatycznymi w Swifcie oraz z narzędziami wspomagającymi
automatyzację jak Ranorex, Katalon czy Test Project.
W branży IT pracuję prawie 5 lat. Zaczynałam jako WordPress
administrator, a potem developer. Sentyment do WordPressa
pozostał mi do dziś. Zapewnianiem jakości oprogramowania
zajmuję się 3,5 roku, w tym 2,5 roku automatyzacją.
3
Agenda prezentacji
1. Dla kogo jest ta prezentacja?
2. Dlaczego Python i Selenium?
3. Pierwszy duży projekt – jak zacząć?
4. Nie samym kodem tester żyje
5. Dobre praktyki – stadium przypadku
4
1. Dla kogo jest ta prezentacja? J
Najwięcej z mojej prezentacji wyniosą testerzy automatyzujący na poziomie
początkującym i początkującym+, piszący w Pythonie oraz Selenium.
Testerzy piszący w innych językach również mogą wykorzystać ogólne flow
projektowe.
Skorzystać mogą także inżynierowie bardziej zaawansowani programistycznie,
ale nie mający doświadczenia w pracy zespołowej i projektowaniu rozwiązań
od zera dla większych projektów.
Prezentacja może być również instrukcją dla testerów manualnych, którzy chcą
wprowadzić automatyzację w swoich zespołach lub firmach.
5
2. Dlaczego Python i Selenium?
Python nie jest rynkowym liderem.
Jest to język ze stosunkowo niskim progiem wejścia, ma
intuicyjne frameworki do testów (PyTest) oraz mnóstwo
dodatków I gotówców wspomagających pracę testera
(https://pypi.org/).
Dane z 2020 roku, z applitools.com dotyczące języków
programowania używanych w testach UI.
Python zajmuje 4. miejsce. Liderem jest Java.
Ankieta StackOverflow z 2019 r. Python zajmuje:
2. miejsce w kategorii najbardziej kochanego języka ❤
1. miejsce w kategorii najbardziej pożądanego języka
43%
35%
9%
8%
4%
1%
JĘZYKI PROGRAMOWANIA W
AUTOMATYZACJI TESTÓW
Java JavaScript C# Python Ruby Inne
https://insights.stackoverflow.com/survey/2019#most-loved-dreaded-and-wanted
6
2. Dlaczego Python i Selenium?
Selenium WebDriver wraz z którymkolwiek ze
wspieranych języków programowania (Python, Java,
Ruby, C#, JavaScript) to najbardziej popularne
narzędzie do automatyzacji testów (ok. 27% rynku wg
raportu enlyft.com).
Poważną konkurencją dla Selenium jest bazujący na JavaScripcie
Cypress oraz rozwiązania typu codeless, które przez ostatnie lata
stały się bardzo popularne, a trend ten będzie wzrastał.
Pomimo tego, Selenium to wciąż mocny zawodnik.
ü darmowe,
ü daje duże możliwości w dostosowaniu do danego projektu,
ü ma ogromne wsparcie społeczności
27%
11%
10%
8%
44%
RYNEK AUTOMATYZACJI
TESTÓW
Selenium
Apache Jmeter
HP Unified
Functional Testing
HP Quality Center
Inne
dane wg enlyft.com
7
3. Pierwszy duży projekt – jak zacząć?
Co to znaczy “duży projekt”?
Na potrzeby niniejszej prezentacji, przyjmuję, że “duży projekt” to projekt oszacowany na co
najmniej 3 miesiące dla 2-osobowego zespołu QA, w którym od zera musimy wybrać
narzędzia, procedury czy metodykę.
Przykłady:
Ø automatyzacja funkcjonalnych testów regresywnych dla gotowego produktu, wraz z
zarządzaniem kontami, uprawnieniami wynikającymi z zakupionych abonamentów, pokrycie
od zera ścieżek krytycznych, typowych ścieżek czynności oraz najważniejszych ścieżek
pobocznych
Ø automatyzacja funkcjonalnych testów dymnych (smoke tests) dla bardzo rozbudowanego,
gotowego produktu, pokrycie typowych ścieżek czynności od zera
8
3. Pierwszy duży projekt – jak zacząć?
Wyzwania i pytania, które należy zadać zanim zaczniemy kodować:
ü określenie dostępnej dokumentacji,
ü określenie zakresu testów,
ü wybór narzędzi i infrastruktury,
ü wybór wzorców projektowych,
ü określenie flow projektowego,
ü procedura egzekucji testów,
ü określenie kolejności kodowania scenariuszy,
ü określenie postępowania po zakończeniu projektu
Komu zadać te
pytania?
- sobie
- w zespole
- seniorowi z innego
zespołu
- product menagerowi
- product ownerowi
3. Pierwszy duży projekt – jak zacząć?
Określenie dostępnej dokumentacji
• Czy jest dostępna dokumentacja
produktowa i testowa (np. specyfikacja,
oczekiwane rezultaty, czy scenariusze
wykonywane manualnie są spisane oraz
utrzymywane, kto jest za nie
odpowiedzialny)
• Czy znane są ścieżki krytyczne i inne
ważne ścieżki z biznesowego punktu
widzenia
Określenie zakresu testów
• Czy wiemy jaki jest główny cel naszego
projektu?
• Jakie biznesowe korzyści mają przynieść
nasze testy?
• Czemu dokładnie mają służyć nasze
testy? Co mają sprawdzać?
• Jakie platformy należy uwzględnić (web,
mobile, aplikacje mobilne)
Uwaga! Nierealne jest pokrycie
automatyzacją tzw. “wszystkiego”.
9
3. Pierwszy duży projekt – jak zacząć?
Wybór narzędzi i infrastruktury
• Jakie narzędzia do automatyzacji będą
najbardziej optymalne?
• Czy mamy zaplecze CI/CD oraz osoby
umiejące zintegrować kod z tymi
narzędziami?
• Środowiska lokalne, zdalne, Selenium
Grid, platformy typu BrowserStack,
SauceLabs
• Projekt powinien być gotowy do
uruchomienia już po zakodowaniu
pierwszego scenariusza
Wybór wzorców projektowych
• Jakie wzorce pozwolą nam na
skalowanie projektu i utrzymanie jego
czytelności?
• Czy przyjęta architektura nie
doprowadzi nas do spaghetti kodu lub
duplikowania kodu?
• Dane testowe, dane logowania – nie
hardkodujemy, nawet w początkowej
fazie „na szybko”.
10
3. Pierwszy duży projekt – jak zacząć?
Określenie flow projektowego
• Nawet do małych projektów warto
stworzyć repozytorium, pracować z GITem
i wypracować flow podobne jak w
przypadku tworzenia „zwykłego”
oprogramowania (code review, testowanie
testów)
• Zasady nazewnictwa branchy,
mergowania (kto będzie miał uprawnienia
merge do master?)
• Określenie wymagań dla kodu, który
będzie wykorzystywany produkcyjnie
(czytelność).
• Nie „przetrzymujemy” kodu u siebie
lokalnie, wszystkie zmiany powinny trafiać
do repozytorium
Procedura egzekucji testów
• Kto będzie uruchamiał testy (człowiek,
narzędzie)?
• Gdzie będą uruchamiane testy (lokalnie,
na zdalnym środowisku)?
• Na jakich środowiskach będą
uruchamiane testy (testowych,
produkcyjnym)?
11
3. Pierwszy duży projekt – jak zacząć?
Określenie kolejności kodowania
scenariuszy
• Określenie priorytetów w kodowaniu
scenariuszy – nie kodujemy „po kolei”
lub wg własnego uznania
• Jeśli nikt nie narzucił priorytetów
odgórnie, na pierwszy ogień powinny
iść:
• Wymagające najczęstszego powtarzania
• Określone przez product ownera (lub innego
przedstawiciela biznesu) jako krytyczne lub
priorytetowe
• Wymagające największego nakładu czasu
przy testowaniu manualnym
Określenie postępowania po
zakończeniu projektu
• Projekt ukończony i co dalej?
• Kto będzie utrzymywał testy, analizował
potencjalne false positivy i false
negativy
• Kto będzie modyfikował i dopisywał
nowe scenariusze w razie potrzeby?
12
4. Nie samym kodem tester żyje
W przypadku, gdy w naszym projekcie nie ma architekta testów,
menedżera testów i/lub pisarza technicznego, umiejętność
kodowania jest tylko (co najwyżej!) połową sukcesu.
Wybór narzędzi, zaprojektowanie architektury, zapewnienie danych testowych (generator,
baza danych), flow projektowe, współpraca z devopsami, developerami i biznesem, praca
koncepcyjna, sporządzanie dokumentacji – są tak samo ważne!
13
5. Dobre praktyki
- studium przypadku
5.1. Dobre praktyki – stosowanie PEP
PEP = Python Enhancement Proposal
Zbiór reguł dotyczących gramatyki Pythona, czyli jak pisać czytelny kod
PEP 8 - Style Guide for Python Code (reguły pisania kodu)
PEP 257 - Docstring Conventions (reguły pisania komentarzy do
segmentów kodu)
Gdzie znaleźć?
https://www.python.org/dev/peps/
15
5.1. Dobre praktyki – stosowanie PEP
PyCharm wspiera PEP – podpowiada, podkreśla
(np. odpowiednie odległości, duplikaty kodu, format komentarzy)
16
5.1. Dobre praktyki – PEP 257 - docstrings
17
5.2. Dobre praktyki – plik readme
Każdy projekt powinien zawierać plik readme z:
- strukturą plików
- opisem użytych technologii, bibliotek
- instrukcją konfiguracji (jeśli dotyczy)
- instrukcją uruchamiania testów, skryptów
- innymi przydatnymi informacjami
18
Całość: https://github.com/javaheri2016/parentland_tests_behave/blob/main/README.md
Wskazówki: https://www.makeareadme.com/
19
5.3. Dobre praktyki – plik gitignore
W pliku gitignore zamieszczamy przykładowo:
- pliki konfiguracyjne i systemowe,
- pliki z danymi testowymi (np. zawierające hasła)
- wszelkie pliki „śmieciowe”, cache
- lokalne raporty,
Przyjazny generator: https://gitignore.io/
20
5.4. Dobre praktyki – zarządzanie zależnościami
Plik requirements.txt z listą zależności, które są wymagane by
uruchomić projekt
Dopisywanie zależności ręcznie przy dużym projekcie jest
pracochłonne
Rozwiązanie na wpół automatyczne – pip-tools
https://github.com/jazzband/pip-tools
21
5.4. Dobre praktyki – zarządzanie zależnościami
22
5.5. Dobre praktyki – dane testowe, klucze
23
Nie hardkodujmy danych do kont testowych czy
kluczy w projekcie nawet jeśli nie są to dane niejawne
Ukrywajmy je w zmiennych środowiskowych
(lokalnie, w zmiennych w projekcie na GitLabie itp.)
5.5. Dobre praktyki – dane testowe, klucze
24
Źródło:
BrowserStack
5.6. Dobre praktyki – czekanie na element
- sleep w Pythonie 😒
25
• waity w Selenium (metody czekające) 🙂
5.7. Dobre praktyki – testy równoległe
Jeśli zakładamy wykonywanie testów równoległych, musimy tak
je zaprojektować, by były maksymalnie od siebie niezależne
Przykład test planu:
- 1. scenariusz logowania, zakupu i wylogowania
- 2. scenariusz zmiany hasła
Muszą opierać się na innych kontach użytkownika
26
5.8. Dobre praktyki – być na bieżąco
27
Warto monitorować update’y Pythona, Selenium i bibliotek
Mogą się zdarzyć ostrzeżenia (warnings), które mogą się
przerodzić w błędy (errors)
Przykład:
Selenium 3 + Python 3.9 + scenariusz z uploadem plików
5.8. Dobre praktyki – być na bieżąco
28
5.9. Dobre praktyki – raportowanie
29
Domyślne raportowanie w Pythonie i Selenium jest ubogie
Niejasne raporty opóźniają analizę problemów i identyfikację
wyników fałszywie negatywnych
Warto indywidualnie rozszerzyć raporty według potrzeb
Przykłady:
- PyTest HTML
- PyTest Cov
- Allure (dla PyTest, Behave, Nose)
- dostosowanie testów do narzędzi zewnętrznych (np. skryptami
JavaScript dla BrowserStacka)
5.10. Dobre praktyki – znajdowanie elementów
Stabilne i szybkie znajdowanie elementów to stabilne testy
Należy dobrze dobrać lokatory = wyszukiwanie po:
• ID CSS: find_element_by_id
• klasa CSS: find_element_by_class_name
• nazwa atrybutu: find_element_by_name
• xpath: find_element_by_xpath
• tekst w linku: find_element_by_link_text
• częściowy tekst w linku: find_element_by_partial_link_text
• tag: find_element_by_tag_name
30
5.10. Dobre praktyki – znajdowanie elementów
Xpath absolutny L
/html/body/div[1]/div[2]/div/img
Xpath relatywny J
//IMG[@class="lnXdpd"]
31
5.10. Dobre praktyki – znajdowanie elementów
Własne atrybuty do elementów
Np. data-testid na Facebooku
32
5.10. Dobre praktyki – znajdowanie elementów
Błędy „interception”
Wyskakujące okienka, zasłaniające elementy chat
czy pop-upy.
33
5.11. Dobre praktyki – WebDriver Manager
Wygodne rozwiązanie dla środowiska lokalnego
Zapomnij o aktualizacji driverów – wszystko zrobi się
samo
https://pypi.org/project/webdriver-manager/
34
5.11. Dobre praktyki – WebDriver Manager
35
5.11. Dobre praktyki – WebDriver Manager
36
Dziękuję za uwagę!
Katarzyna Javaheri-Szpak
@kjavaheri
37
Dziękujemy za oglądanie!
Zapraszamy do zadawania pytań
oraz oceny prelekcji pod nagraniem. ↘
www.WarszawskieDniInformatyki.pl

Weitere ähnliche Inhalte

Ähnlich wie WDI 2021 - Pierwszy duży projekt w Pythonie i Selenium - Katarzyna Javaheri-Szpak

10 Useful Testing Tools for Open Source Projects @ TuxCon 2015
10 Useful Testing Tools for Open Source Projects @ TuxCon 201510 Useful Testing Tools for Open Source Projects @ TuxCon 2015
10 Useful Testing Tools for Open Source Projects @ TuxCon 2015Peter Sabev
 
5 Steps to Jump Start Your Test Automation
5 Steps to Jump Start Your Test Automation5 Steps to Jump Start Your Test Automation
5 Steps to Jump Start Your Test AutomationSauce Labs
 
Встреча "QA: в каких направлениях может найти себя тестировщик?"
Встреча "QA: в каких направлениях может найти себя тестировщик?"Встреча "QA: в каких направлениях может найти себя тестировщик?"
Встреча "QA: в каких направлениях может найти себя тестировщик?"GoIT
 
Best Selenium Python Frameworks for Test automation.pdf
Best Selenium Python Frameworks for Test automation.pdfBest Selenium Python Frameworks for Test automation.pdf
Best Selenium Python Frameworks for Test automation.pdfpCloudy
 
The Professional Programmer
The Professional ProgrammerThe Professional Programmer
The Professional ProgrammerDave Cross
 
Testing and DevOps Culture: Lessons Learned
Testing and DevOps Culture: Lessons LearnedTesting and DevOps Culture: Lessons Learned
Testing and DevOps Culture: Lessons LearnedLB Denker
 
Making software development processes to work for you
Making software development processes to work for youMaking software development processes to work for you
Making software development processes to work for youAmbientia
 
KrishnaToolComparisionPPT.pdf
KrishnaToolComparisionPPT.pdfKrishnaToolComparisionPPT.pdf
KrishnaToolComparisionPPT.pdfQA or the Highway
 
Solving the 3 Biggest Questions in Continuous Testing
Solving the 3 Biggest Questions in Continuous TestingSolving the 3 Biggest Questions in Continuous Testing
Solving the 3 Biggest Questions in Continuous TestingPerfecto by Perforce
 
An Essential Guide to Effective Test Automation Leveraging Open Source
An Essential Guide to Effective Test Automation Leveraging Open SourceAn Essential Guide to Effective Test Automation Leveraging Open Source
An Essential Guide to Effective Test Automation Leveraging Open SourceRapidValue
 
20+ top free tools essential for every software tester
20+ top free tools essential for every software tester20+ top free tools essential for every software tester
20+ top free tools essential for every software testerPriyesh Sanghvi
 
Three Interviews About Static Code Analyzers
Three Interviews About Static Code AnalyzersThree Interviews About Static Code Analyzers
Three Interviews About Static Code AnalyzersAndrey Karpov
 
De weg naar Continuous Delivery
De weg naar Continuous DeliveryDe weg naar Continuous Delivery
De weg naar Continuous DeliveryDelta-N
 
Prototyping & User Testing
Prototyping & User TestingPrototyping & User Testing
Prototyping & User TestingLaura Levisay
 
DevOps - Boldly Go for Distro
DevOps - Boldly Go for DistroDevOps - Boldly Go for Distro
DevOps - Boldly Go for DistroPaul Boos
 
Building an Open Source AppSec Pipeline - 2015 Texas Linux Fest
Building an Open Source AppSec Pipeline - 2015 Texas Linux FestBuilding an Open Source AppSec Pipeline - 2015 Texas Linux Fest
Building an Open Source AppSec Pipeline - 2015 Texas Linux FestMatt Tesauro
 
Prometheus (Microsoft, 2016)
Prometheus (Microsoft, 2016)Prometheus (Microsoft, 2016)
Prometheus (Microsoft, 2016)Brian Brazil
 
System design for Web Application
System design for Web ApplicationSystem design for Web Application
System design for Web ApplicationMichael Choi
 
Data science tools of the trade
Data science tools of the tradeData science tools of the trade
Data science tools of the tradeFangda Wang
 
30 of the best free software test tools in 60 minutes by Jess Lancaster
30 of the best free software test tools in 60 minutes by Jess Lancaster30 of the best free software test tools in 60 minutes by Jess Lancaster
30 of the best free software test tools in 60 minutes by Jess LancasterQA or the Highway
 

Ähnlich wie WDI 2021 - Pierwszy duży projekt w Pythonie i Selenium - Katarzyna Javaheri-Szpak (20)

10 Useful Testing Tools for Open Source Projects @ TuxCon 2015
10 Useful Testing Tools for Open Source Projects @ TuxCon 201510 Useful Testing Tools for Open Source Projects @ TuxCon 2015
10 Useful Testing Tools for Open Source Projects @ TuxCon 2015
 
5 Steps to Jump Start Your Test Automation
5 Steps to Jump Start Your Test Automation5 Steps to Jump Start Your Test Automation
5 Steps to Jump Start Your Test Automation
 
Встреча "QA: в каких направлениях может найти себя тестировщик?"
Встреча "QA: в каких направлениях может найти себя тестировщик?"Встреча "QA: в каких направлениях может найти себя тестировщик?"
Встреча "QA: в каких направлениях может найти себя тестировщик?"
 
Best Selenium Python Frameworks for Test automation.pdf
Best Selenium Python Frameworks for Test automation.pdfBest Selenium Python Frameworks for Test automation.pdf
Best Selenium Python Frameworks for Test automation.pdf
 
The Professional Programmer
The Professional ProgrammerThe Professional Programmer
The Professional Programmer
 
Testing and DevOps Culture: Lessons Learned
Testing and DevOps Culture: Lessons LearnedTesting and DevOps Culture: Lessons Learned
Testing and DevOps Culture: Lessons Learned
 
Making software development processes to work for you
Making software development processes to work for youMaking software development processes to work for you
Making software development processes to work for you
 
KrishnaToolComparisionPPT.pdf
KrishnaToolComparisionPPT.pdfKrishnaToolComparisionPPT.pdf
KrishnaToolComparisionPPT.pdf
 
Solving the 3 Biggest Questions in Continuous Testing
Solving the 3 Biggest Questions in Continuous TestingSolving the 3 Biggest Questions in Continuous Testing
Solving the 3 Biggest Questions in Continuous Testing
 
An Essential Guide to Effective Test Automation Leveraging Open Source
An Essential Guide to Effective Test Automation Leveraging Open SourceAn Essential Guide to Effective Test Automation Leveraging Open Source
An Essential Guide to Effective Test Automation Leveraging Open Source
 
20+ top free tools essential for every software tester
20+ top free tools essential for every software tester20+ top free tools essential for every software tester
20+ top free tools essential for every software tester
 
Three Interviews About Static Code Analyzers
Three Interviews About Static Code AnalyzersThree Interviews About Static Code Analyzers
Three Interviews About Static Code Analyzers
 
De weg naar Continuous Delivery
De weg naar Continuous DeliveryDe weg naar Continuous Delivery
De weg naar Continuous Delivery
 
Prototyping & User Testing
Prototyping & User TestingPrototyping & User Testing
Prototyping & User Testing
 
DevOps - Boldly Go for Distro
DevOps - Boldly Go for DistroDevOps - Boldly Go for Distro
DevOps - Boldly Go for Distro
 
Building an Open Source AppSec Pipeline - 2015 Texas Linux Fest
Building an Open Source AppSec Pipeline - 2015 Texas Linux FestBuilding an Open Source AppSec Pipeline - 2015 Texas Linux Fest
Building an Open Source AppSec Pipeline - 2015 Texas Linux Fest
 
Prometheus (Microsoft, 2016)
Prometheus (Microsoft, 2016)Prometheus (Microsoft, 2016)
Prometheus (Microsoft, 2016)
 
System design for Web Application
System design for Web ApplicationSystem design for Web Application
System design for Web Application
 
Data science tools of the trade
Data science tools of the tradeData science tools of the trade
Data science tools of the trade
 
30 of the best free software test tools in 60 minutes by Jess Lancaster
30 of the best free software test tools in 60 minutes by Jess Lancaster30 of the best free software test tools in 60 minutes by Jess Lancaster
30 of the best free software test tools in 60 minutes by Jess Lancaster
 

Mehr von Katarzyna Javaheri-Szpak

BugHuntFest2024 - Mity o pracy testera (Katarzyna Javaheri)
BugHuntFest2024 - Mity o pracy testera (Katarzyna Javaheri)BugHuntFest2024 - Mity o pracy testera (Katarzyna Javaheri)
BugHuntFest2024 - Mity o pracy testera (Katarzyna Javaheri)Katarzyna Javaheri-Szpak
 
Podstawy testowania oprogramowania INCO 2023.pptx
Podstawy testowania oprogramowania INCO 2023.pptxPodstawy testowania oprogramowania INCO 2023.pptx
Podstawy testowania oprogramowania INCO 2023.pptxKatarzyna Javaheri-Szpak
 
Bezpieczeństwo stron opartych na popularnych systemach zarządzania treścią
Bezpieczeństwo stron opartych na popularnych systemach zarządzania treściąBezpieczeństwo stron opartych na popularnych systemach zarządzania treścią
Bezpieczeństwo stron opartych na popularnych systemach zarządzania treściąKatarzyna Javaheri-Szpak
 

Mehr von Katarzyna Javaheri-Szpak (6)

Testowanie automatyczne 2024 INCO Academy
Testowanie automatyczne 2024 INCO AcademyTestowanie automatyczne 2024 INCO Academy
Testowanie automatyczne 2024 INCO Academy
 
BugHuntFest2024 - Mity o pracy testera (Katarzyna Javaheri)
BugHuntFest2024 - Mity o pracy testera (Katarzyna Javaheri)BugHuntFest2024 - Mity o pracy testera (Katarzyna Javaheri)
BugHuntFest2024 - Mity o pracy testera (Katarzyna Javaheri)
 
Podstawy testowania oprogramowania INCO 2023.pptx
Podstawy testowania oprogramowania INCO 2023.pptxPodstawy testowania oprogramowania INCO 2023.pptx
Podstawy testowania oprogramowania INCO 2023.pptx
 
Testowanie na 101 sposobów
Testowanie na 101 sposobówTestowanie na 101 sposobów
Testowanie na 101 sposobów
 
WordPress dla początkujących
WordPress dla początkującychWordPress dla początkujących
WordPress dla początkujących
 
Bezpieczeństwo stron opartych na popularnych systemach zarządzania treścią
Bezpieczeństwo stron opartych na popularnych systemach zarządzania treściąBezpieczeństwo stron opartych na popularnych systemach zarządzania treścią
Bezpieczeństwo stron opartych na popularnych systemach zarządzania treścią
 

Kürzlich hochgeladen

Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceanilsa9823
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 

Kürzlich hochgeladen (20)

Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 

WDI 2021 - Pierwszy duży projekt w Pythonie i Selenium - Katarzyna Javaheri-Szpak

  • 1. Pierwszy duży projekt w Pythonie i Selenium Jak uniknąć pułapek? Katarzyna Javaheri-Szpak QA Automation Engineer, Promo.com www.WarszawskieDniInformatyki.pl
  • 2. 2 O mnie Katarzyna Javaheri-Szpak Obecnie pracuję jako tester automatyzujący w izraelskiej firmie Promo.com. Tworzę testy dla platformy do tworzenia krótkich filmów video. Na co dzień programuję w Pythonie. Miałam też przygodę z testami automatycznymi w Swifcie oraz z narzędziami wspomagającymi automatyzację jak Ranorex, Katalon czy Test Project. W branży IT pracuję prawie 5 lat. Zaczynałam jako WordPress administrator, a potem developer. Sentyment do WordPressa pozostał mi do dziś. Zapewnianiem jakości oprogramowania zajmuję się 3,5 roku, w tym 2,5 roku automatyzacją.
  • 3. 3 Agenda prezentacji 1. Dla kogo jest ta prezentacja? 2. Dlaczego Python i Selenium? 3. Pierwszy duży projekt – jak zacząć? 4. Nie samym kodem tester żyje 5. Dobre praktyki – stadium przypadku
  • 4. 4 1. Dla kogo jest ta prezentacja? J Najwięcej z mojej prezentacji wyniosą testerzy automatyzujący na poziomie początkującym i początkującym+, piszący w Pythonie oraz Selenium. Testerzy piszący w innych językach również mogą wykorzystać ogólne flow projektowe. Skorzystać mogą także inżynierowie bardziej zaawansowani programistycznie, ale nie mający doświadczenia w pracy zespołowej i projektowaniu rozwiązań od zera dla większych projektów. Prezentacja może być również instrukcją dla testerów manualnych, którzy chcą wprowadzić automatyzację w swoich zespołach lub firmach.
  • 5. 5 2. Dlaczego Python i Selenium? Python nie jest rynkowym liderem. Jest to język ze stosunkowo niskim progiem wejścia, ma intuicyjne frameworki do testów (PyTest) oraz mnóstwo dodatków I gotówców wspomagających pracę testera (https://pypi.org/). Dane z 2020 roku, z applitools.com dotyczące języków programowania używanych w testach UI. Python zajmuje 4. miejsce. Liderem jest Java. Ankieta StackOverflow z 2019 r. Python zajmuje: 2. miejsce w kategorii najbardziej kochanego języka ❤ 1. miejsce w kategorii najbardziej pożądanego języka 43% 35% 9% 8% 4% 1% JĘZYKI PROGRAMOWANIA W AUTOMATYZACJI TESTÓW Java JavaScript C# Python Ruby Inne https://insights.stackoverflow.com/survey/2019#most-loved-dreaded-and-wanted
  • 6. 6 2. Dlaczego Python i Selenium? Selenium WebDriver wraz z którymkolwiek ze wspieranych języków programowania (Python, Java, Ruby, C#, JavaScript) to najbardziej popularne narzędzie do automatyzacji testów (ok. 27% rynku wg raportu enlyft.com). Poważną konkurencją dla Selenium jest bazujący na JavaScripcie Cypress oraz rozwiązania typu codeless, które przez ostatnie lata stały się bardzo popularne, a trend ten będzie wzrastał. Pomimo tego, Selenium to wciąż mocny zawodnik. ü darmowe, ü daje duże możliwości w dostosowaniu do danego projektu, ü ma ogromne wsparcie społeczności 27% 11% 10% 8% 44% RYNEK AUTOMATYZACJI TESTÓW Selenium Apache Jmeter HP Unified Functional Testing HP Quality Center Inne dane wg enlyft.com
  • 7. 7 3. Pierwszy duży projekt – jak zacząć? Co to znaczy “duży projekt”? Na potrzeby niniejszej prezentacji, przyjmuję, że “duży projekt” to projekt oszacowany na co najmniej 3 miesiące dla 2-osobowego zespołu QA, w którym od zera musimy wybrać narzędzia, procedury czy metodykę. Przykłady: Ø automatyzacja funkcjonalnych testów regresywnych dla gotowego produktu, wraz z zarządzaniem kontami, uprawnieniami wynikającymi z zakupionych abonamentów, pokrycie od zera ścieżek krytycznych, typowych ścieżek czynności oraz najważniejszych ścieżek pobocznych Ø automatyzacja funkcjonalnych testów dymnych (smoke tests) dla bardzo rozbudowanego, gotowego produktu, pokrycie typowych ścieżek czynności od zera
  • 8. 8 3. Pierwszy duży projekt – jak zacząć? Wyzwania i pytania, które należy zadać zanim zaczniemy kodować: ü określenie dostępnej dokumentacji, ü określenie zakresu testów, ü wybór narzędzi i infrastruktury, ü wybór wzorców projektowych, ü określenie flow projektowego, ü procedura egzekucji testów, ü określenie kolejności kodowania scenariuszy, ü określenie postępowania po zakończeniu projektu Komu zadać te pytania? - sobie - w zespole - seniorowi z innego zespołu - product menagerowi - product ownerowi
  • 9. 3. Pierwszy duży projekt – jak zacząć? Określenie dostępnej dokumentacji • Czy jest dostępna dokumentacja produktowa i testowa (np. specyfikacja, oczekiwane rezultaty, czy scenariusze wykonywane manualnie są spisane oraz utrzymywane, kto jest za nie odpowiedzialny) • Czy znane są ścieżki krytyczne i inne ważne ścieżki z biznesowego punktu widzenia Określenie zakresu testów • Czy wiemy jaki jest główny cel naszego projektu? • Jakie biznesowe korzyści mają przynieść nasze testy? • Czemu dokładnie mają służyć nasze testy? Co mają sprawdzać? • Jakie platformy należy uwzględnić (web, mobile, aplikacje mobilne) Uwaga! Nierealne jest pokrycie automatyzacją tzw. “wszystkiego”. 9
  • 10. 3. Pierwszy duży projekt – jak zacząć? Wybór narzędzi i infrastruktury • Jakie narzędzia do automatyzacji będą najbardziej optymalne? • Czy mamy zaplecze CI/CD oraz osoby umiejące zintegrować kod z tymi narzędziami? • Środowiska lokalne, zdalne, Selenium Grid, platformy typu BrowserStack, SauceLabs • Projekt powinien być gotowy do uruchomienia już po zakodowaniu pierwszego scenariusza Wybór wzorców projektowych • Jakie wzorce pozwolą nam na skalowanie projektu i utrzymanie jego czytelności? • Czy przyjęta architektura nie doprowadzi nas do spaghetti kodu lub duplikowania kodu? • Dane testowe, dane logowania – nie hardkodujemy, nawet w początkowej fazie „na szybko”. 10
  • 11. 3. Pierwszy duży projekt – jak zacząć? Określenie flow projektowego • Nawet do małych projektów warto stworzyć repozytorium, pracować z GITem i wypracować flow podobne jak w przypadku tworzenia „zwykłego” oprogramowania (code review, testowanie testów) • Zasady nazewnictwa branchy, mergowania (kto będzie miał uprawnienia merge do master?) • Określenie wymagań dla kodu, który będzie wykorzystywany produkcyjnie (czytelność). • Nie „przetrzymujemy” kodu u siebie lokalnie, wszystkie zmiany powinny trafiać do repozytorium Procedura egzekucji testów • Kto będzie uruchamiał testy (człowiek, narzędzie)? • Gdzie będą uruchamiane testy (lokalnie, na zdalnym środowisku)? • Na jakich środowiskach będą uruchamiane testy (testowych, produkcyjnym)? 11
  • 12. 3. Pierwszy duży projekt – jak zacząć? Określenie kolejności kodowania scenariuszy • Określenie priorytetów w kodowaniu scenariuszy – nie kodujemy „po kolei” lub wg własnego uznania • Jeśli nikt nie narzucił priorytetów odgórnie, na pierwszy ogień powinny iść: • Wymagające najczęstszego powtarzania • Określone przez product ownera (lub innego przedstawiciela biznesu) jako krytyczne lub priorytetowe • Wymagające największego nakładu czasu przy testowaniu manualnym Określenie postępowania po zakończeniu projektu • Projekt ukończony i co dalej? • Kto będzie utrzymywał testy, analizował potencjalne false positivy i false negativy • Kto będzie modyfikował i dopisywał nowe scenariusze w razie potrzeby? 12
  • 13. 4. Nie samym kodem tester żyje W przypadku, gdy w naszym projekcie nie ma architekta testów, menedżera testów i/lub pisarza technicznego, umiejętność kodowania jest tylko (co najwyżej!) połową sukcesu. Wybór narzędzi, zaprojektowanie architektury, zapewnienie danych testowych (generator, baza danych), flow projektowe, współpraca z devopsami, developerami i biznesem, praca koncepcyjna, sporządzanie dokumentacji – są tak samo ważne! 13
  • 14. 5. Dobre praktyki - studium przypadku
  • 15. 5.1. Dobre praktyki – stosowanie PEP PEP = Python Enhancement Proposal Zbiór reguł dotyczących gramatyki Pythona, czyli jak pisać czytelny kod PEP 8 - Style Guide for Python Code (reguły pisania kodu) PEP 257 - Docstring Conventions (reguły pisania komentarzy do segmentów kodu) Gdzie znaleźć? https://www.python.org/dev/peps/ 15
  • 16. 5.1. Dobre praktyki – stosowanie PEP PyCharm wspiera PEP – podpowiada, podkreśla (np. odpowiednie odległości, duplikaty kodu, format komentarzy) 16
  • 17. 5.1. Dobre praktyki – PEP 257 - docstrings 17
  • 18. 5.2. Dobre praktyki – plik readme Każdy projekt powinien zawierać plik readme z: - strukturą plików - opisem użytych technologii, bibliotek - instrukcją konfiguracji (jeśli dotyczy) - instrukcją uruchamiania testów, skryptów - innymi przydatnymi informacjami 18
  • 20. 5.3. Dobre praktyki – plik gitignore W pliku gitignore zamieszczamy przykładowo: - pliki konfiguracyjne i systemowe, - pliki z danymi testowymi (np. zawierające hasła) - wszelkie pliki „śmieciowe”, cache - lokalne raporty, Przyjazny generator: https://gitignore.io/ 20
  • 21. 5.4. Dobre praktyki – zarządzanie zależnościami Plik requirements.txt z listą zależności, które są wymagane by uruchomić projekt Dopisywanie zależności ręcznie przy dużym projekcie jest pracochłonne Rozwiązanie na wpół automatyczne – pip-tools https://github.com/jazzband/pip-tools 21
  • 22. 5.4. Dobre praktyki – zarządzanie zależnościami 22
  • 23. 5.5. Dobre praktyki – dane testowe, klucze 23 Nie hardkodujmy danych do kont testowych czy kluczy w projekcie nawet jeśli nie są to dane niejawne Ukrywajmy je w zmiennych środowiskowych (lokalnie, w zmiennych w projekcie na GitLabie itp.)
  • 24. 5.5. Dobre praktyki – dane testowe, klucze 24 Źródło: BrowserStack
  • 25. 5.6. Dobre praktyki – czekanie na element - sleep w Pythonie 😒 25 • waity w Selenium (metody czekające) 🙂
  • 26. 5.7. Dobre praktyki – testy równoległe Jeśli zakładamy wykonywanie testów równoległych, musimy tak je zaprojektować, by były maksymalnie od siebie niezależne Przykład test planu: - 1. scenariusz logowania, zakupu i wylogowania - 2. scenariusz zmiany hasła Muszą opierać się na innych kontach użytkownika 26
  • 27. 5.8. Dobre praktyki – być na bieżąco 27 Warto monitorować update’y Pythona, Selenium i bibliotek Mogą się zdarzyć ostrzeżenia (warnings), które mogą się przerodzić w błędy (errors) Przykład: Selenium 3 + Python 3.9 + scenariusz z uploadem plików
  • 28. 5.8. Dobre praktyki – być na bieżąco 28
  • 29. 5.9. Dobre praktyki – raportowanie 29 Domyślne raportowanie w Pythonie i Selenium jest ubogie Niejasne raporty opóźniają analizę problemów i identyfikację wyników fałszywie negatywnych Warto indywidualnie rozszerzyć raporty według potrzeb Przykłady: - PyTest HTML - PyTest Cov - Allure (dla PyTest, Behave, Nose) - dostosowanie testów do narzędzi zewnętrznych (np. skryptami JavaScript dla BrowserStacka)
  • 30. 5.10. Dobre praktyki – znajdowanie elementów Stabilne i szybkie znajdowanie elementów to stabilne testy Należy dobrze dobrać lokatory = wyszukiwanie po: • ID CSS: find_element_by_id • klasa CSS: find_element_by_class_name • nazwa atrybutu: find_element_by_name • xpath: find_element_by_xpath • tekst w linku: find_element_by_link_text • częściowy tekst w linku: find_element_by_partial_link_text • tag: find_element_by_tag_name 30
  • 31. 5.10. Dobre praktyki – znajdowanie elementów Xpath absolutny L /html/body/div[1]/div[2]/div/img Xpath relatywny J //IMG[@class="lnXdpd"] 31
  • 32. 5.10. Dobre praktyki – znajdowanie elementów Własne atrybuty do elementów Np. data-testid na Facebooku 32
  • 33. 5.10. Dobre praktyki – znajdowanie elementów Błędy „interception” Wyskakujące okienka, zasłaniające elementy chat czy pop-upy. 33
  • 34. 5.11. Dobre praktyki – WebDriver Manager Wygodne rozwiązanie dla środowiska lokalnego Zapomnij o aktualizacji driverów – wszystko zrobi się samo https://pypi.org/project/webdriver-manager/ 34
  • 35. 5.11. Dobre praktyki – WebDriver Manager 35
  • 36. 5.11. Dobre praktyki – WebDriver Manager 36
  • 37. Dziękuję za uwagę! Katarzyna Javaheri-Szpak @kjavaheri 37
  • 38. Dziękujemy za oglądanie! Zapraszamy do zadawania pytań oraz oceny prelekcji pod nagraniem. ↘ www.WarszawskieDniInformatyki.pl