Tato repository obsahuje materiály pro Digitální akademii: Testování v Javě s použitím knihovny Selenium a JUnit.
-
Seznámení se Seleniem
- Lokátory
- Klikání na WebElementy
-
Selenium za hranice úplných základů.
- List
- Složitější lokátory (XPath a podobně)
-
JUnit a poprvé skutečný automatický test
- Obohacení projektu o JUnit (Maven)
- Testovací metody místo
main(...)
- Assert a koncept ověření (Given-when-then)
- Zadání domácího úkolu
-
Pokročilejší témata z JUnit a Selenia
- Jak se vyznat v chybových hlášeních a výjimkách
- Koncept čekání na elementy doplněné asynchronně JavaScriptem
- Cokoliv dalšího, co studenty zajímá
-
Práce na trošku složitější appce
- Ukázka složitějšího scénáře
- Rozbor domácího úkolu
- Bonus: Sémantické metody
- Bonus: Vzor Page object
Po zkušenostech z minula jsme se rozhodli sémantické metody od studentů nevyžadovat, jen jim je významně doporučit. Vzor Page object je pro úplné začátčníky už docela složitý, takže ten jsme si jen ukázali a jen malé procento studentek si jej zapracovalo do domácího úkolu.
Průběh každé lekce je nastaven zhruba takto (obsahuje 5 projektů)
-
Nejprve demo projekt se vším, co se v lekci bude probírat, aby studenti měli představu, kam chceme dojít. Jde jen o ukázku s vysvětlením, co je v kódu zapsáno. Do tohoto projektu je vhodné nic neprogramovat (nepřidávat), ale jen staticky ukazovat. Studenti by se měli jen dívat, aby pochopili myšlenku.
-
Výchozí projekt (
***-Zadani
), do kterého lektor může demonstrativně dopsat řešení. Studenti ho mohou následovat nebo se mohou pouze dívat. Pokud jde o něco složitějšího, je možné to dokonce projít dvakrát. Tedy, poprvé nechat studenty jen koukat, pak řešení vzít zpět, a podruhé studenty pobídnout, ať si zkoušejí kroky podle lektora. -
Řešení předchozího projektu (
***-Reseni
). Primárně pro lektora, aby věděl, kam dojít. -
Výchozí projekt pro samostatnou práci (v breakout rooms nebo s kouči).
-
Řešení samostatné práce.
Instalační instrukce jsou zde:
https://javainstall.czechitas.cz/selenium/
Poznámka: Předpokládá se úspěšná instalace z Programování (předchozí části Digitální akademie: Testování).
Tedy že studenti mají funkční OpenJDK, IntelliJ IDEA a Maven podle instalačních instrukcí:
https://javainstall.czechitas.cz/community/
Lekce 1 – 4 používá jednoduchý web Automation Playground nasazený na Repl.it.
Autorem je Vojtěch Červený z Ostravy a já (Kamil Ševeček) jsem web mírně přizpůsobil.
Jeho zdrojový text je zde:
https://github.com/czechitas/da-test-automation-playground/
Nasazený je zde:
https://automation-playground.czechitas.repl.co/
Lekce 5 a domácí úkol pracují s rozsáhlejší aplikací Přihlašování na tábory.
Aplikace je napsána v PHP a autorem je Pavel Kutáč z Ostravy.
Zdroj je k dispozici na:
https://github.com/czechitas/da-test-webapp.
Pro inspiraci je možné se podívat, jak jsem lekce vedl já (Kamil Ševeček):
- Lekce (jaro 2021): https://www.youtube.com/watch?v=-EllizohDCA
- Lekce (jaro 2021): https://www.youtube.com/watch?v=gVQbSaQ8t4g
- Lekce (jaro 2021): https://www.youtube.com/watch?v=90P4DatHneo
- Lekce (jaro 2021): https://www.youtube.com/watch?v=alNjq2rE62E
- Lekce (jaro 2021): https://www.youtube.com/watch?v=9m8O--gpgIw
-
Udělejte si fork materiálů z Githubu a pracujte se svým forkem.
-
Upravte si v projektech cokoliv uznáte za vhodné a nahrávejte studentkám pouze svoje upravené projekty.
Nikdy ne ty z kanonické repository na
github.com/czechitas
, protože ty nemůžete operativně měnit. -
Podobně si udělejte fork Automation Playground na Repl.itu a do projektů vepište adresu na váš fork místo
https://automation-playground.czechitas.repl.co/
. -
Nakonec si udělejte fork webové appky Přihlašování na tábory
https://github.com/czechitas/da-test-webapp
, kterou je potom třeba nasadit, například zdarma na Heroku.Pro první pokusy: Moje nasazení je na https://cz-test-dva.herokuapp.com/.
Postup nasazování je na wiki v Githubu a úvodní info je v README.md. Školení o nasazování appky: https://www.youtube.com/watch?v=1jtc2uWhCkE.
Je to trochu pracné, ale jde to zvládnout. Pro nasazení je nutné mít ještě cloudovou databázi MariaDB/MySQL (lze také zdarma na Heroku) a souborové úložiště (na Azure). Souborové úložiště na Azure je bohužel placená služba, která alespoň umožňuje zdarma trial na rok.
-
Jakékoliv změny v materiálech jsou vítané. Buď po kurzu připravte merge requesty nebo se alespoň spojte s aktuálním správcem repository a dodejte mu odkaz na svoje změny.