Automation of functional tests using JMeter (in Polish)Tieto Corporation
油
Presentation from a webinar dedicated to a user who don't have previous experience with automation of web applications tests using JMeter tool. At this virtual meet up you will get basic theoretical knowledge about automation test and some practical examples of using JMeter tool.
The webinar on YouTube: http://youtu.be/3_o3IOJEcxw
Tomasz Stupak is Senior Test Engineer working for 5 years in Tieto. During his profession career he has experience with software and hardware testing.
Apache JMeter to otwarte oprogramowanie, napisane w Javie i dedykowane do wykonywania test坦w obci甜eniowych, wydajnociowych oraz funkcjonalnych. Oryginalnie byo projektowane i rozwijane przez Stefano Mazzocchi z Apache Software Foundation, kt坦ry napisa go do testowania wydajnoci Apache JServ (projektu, kt坦ry zosta zastpiony przez Apache Tomcat). Nastpnie JMeter zosta przeprojektowany i wyposa甜ony w GUI celem rozszerzenia jego zastosowa do test坦w funkcjonalnych. W listopadzie 2011 roku JMeter sta si projektem Apache najwy甜szego poziomu (ang. top level), co oznacza, 甜e zyska spoeczno odpowiedzialn za jego rozw坦j (ang. Project Management Commitee) oraz dedykowany serwis.
Apache JMeter jest u甜ywany do testowania wydajnoci statycznych oraz dynamicznych zasob坦w takich jak pliki, dynamiczne jzyki programowania serwis坦w internetowych, np. PHP, Java, ASP.NET, itp., obiekty Java, bazy danych i kwerendy, serwery FTP, itp. Z powodzeniem jest wykorzystywany do symulowania wzmo甜onego ruchu na serwerze, grupie serwer坦w, w sieci lub na hartowanym obiekcie. Su甜y r坦wnie甜 do analizowania cakowitej wydajnoci pod obci甜eniem r坦甜nego typu, np. do graficznej analizy cakowitej wydajnoci lub do testowania zachowania si serwera / skryptu / obiektu przy wzmo甜onym i zr坦wnoleglonym obci甜eniu.
Podsumowanie analizy narzdzia do zarzdzania testowaniem za rozsdn cen. Spor坦d dziesiteki kandydat坦w i finaowej czw坦rki: SpiratTest, TestLink, SynapseRT, TestRail ostatecznie wygrywa...
Apache JMeter to otwarte oprogramowanie, napisane w Javie i dedykowane do wykonywania test坦w obci甜eniowych, wydajnociowych oraz funkcjonalnych. Oryginalnie byo projektowane i rozwijane przez Stefano Mazzocchi z Apache Software Foundation, kt坦ry napisa go do testowania wydajnoci Apache JServ (projektu, kt坦ry zosta zastpiony przez Apache Tomcat). Nastpnie JMeter zosta przeprojektowany i wyposa甜ony w GUI celem rozszerzenia jego zastosowa do test坦w funkcjonalnych. W listopadzie 2011 roku JMeter sta si projektem Apache najwy甜szego poziomu (ang. top level), co oznacza, 甜e zyska spoeczno odpowiedzialn za jego rozw坦j (ang. Project Management Commitee) oraz dedykowany serwis.
Apache JMeter jest u甜ywany do testowania wydajnoci statycznych oraz dynamicznych zasob坦w takich jak pliki, dynamiczne jzyki programowania serwis坦w internetowych, np. PHP, Java, ASP.NET, itp., obiekty Java, bazy danych i kwerendy, serwery FTP, itp. Z powodzeniem jest wykorzystywany do symulowania wzmo甜onego ruchu na serwerze, grupie serwer坦w, w sieci lub na hartowanym obiekcie. Su甜y r坦wnie甜 do analizowania cakowitej wydajnoci pod obci甜eniem r坦甜nego typu, np. do graficznej analizy cakowitej wydajnoci lub do testowania zachowania si serwera / skryptu / obiektu przy wzmo甜onym i zr坦wnoleglonym obci甜eniu.
Testowanie aplikacji to temat najczciej pomijany przez programist坦w. Testowanie nie jest tak pasjonujce jak tworzenie program坦w czy poznawanie nowych narzdzi. Jest jednak niezbdne. Prawidowo przeprowadzony proces testowania mo甜e znacznie poprawi wydajno, podnie jako projektu i kodu, zmniejszy obci甜enia wynikajce z konserwacji kodu i pom坦c lepiej zaspokoi wymagania klient坦w, wsp坦pracownik坦w i kierownictwa. W powszechnie uznanych metodykach projektowych testowanie, szczeg坦lnie za pomoc test坦w automatycznych, jest niezwykle istotnym procesem.
Ksi甜ka "Perl. Testowanie. Zapiski programisty" to praktyczny przewodnik dla programist坦w Perla, kt坦rzy chc poprawi jako i wydajno tworzonych przez siebie program坦w. Opisuje metody tworzenia test坦w automatycznych, stosowania ich i interpretowania ich wynik坦w. Przedstawia sposoby testowania pojedynczych modu坦w, caych aplikacji, witryn WWW, baz danych, a nawet program坦w stworzonych w innych jzykach programowania. Zawiera r坦wnie甜 informacje o tym, jak dostosowa podstawowe narzdzia testujce do wasnego rodowiska i projekt坦w.
* Instalowanie modu坦w testujcych
* Pisanie test坦w
* Automatyzacja uruchamiania test坦w
* Analiza wynik坦w test坦w
* Dystrybucja test坦w
* Testy jednostkowe
* Testowanie baz danych
* Testowanie witryn WWW i kodu HTML
Dziki wiadomociom zawartym w tej ksi甜ce mo甜na zredukowa dugo cyklu tworzenia oprogramowania i zdecydowanie uatwi konserwacj gotowych system坦w.
Laravel Pozna Meetup #4 - EloquentSequence - Historia pewnej biblioteki Open...HighSolutions Sp. z o.o.
油
Prezentacja, kt坦ra miaa miejsce 2018-05-24 w Poznaniu. Wykonanie: Adam Matysiak (HighSolutions). Czemu tworzy biblioteki Open Source i jak je stworzy w Laravelu. Na przykadzie paczki Eloquent Sequence.
Core Java Servlets i JavaServer Pages. Tom II. Wydanie IIWydawnictwo Helion
油
Kompletny przewodnik po zaawansowanych mechanizmach oraz funkcjach serwlet坦w i JSP.
* Jak kontrolowa dziaanie aplikacji za porednictwem pliku deskryptora?
* Jakie s mo甜liwoci rozbudowy systemu zabezpiecze?
* Jak mo甜na wykorzysta obsug zdarze?
Platforma Java 2 jest najczciej wykorzystywan technologi do budowy komercyjnych aplikacji internetowych, dynamicznych witryn WWW oraz aplikacji i usug sieciowych. Jej podstaw s serwlety i strony JSP, kt坦re s obsugiwane — przy u甜yciu komponent坦w wbudowanych lub dodatkowych — na praktycznie wszystkich serwerach WWW, a jednoczenie stanowi poczenie midzy klientami internetowymi i aplikacjami dziaajcymi na serwerze.
Tom II prezentuje zaawansowane narzdzia i techniki su甜ce do tworzenia rozbudowanych i wysoko wydajnych aplikacji. Opisano w nim mechanizmy kontroli dziaania aplikacji za pomoc pliku web.xml, mo甜liwoci rozszerzenia systemu zabezpiecze metodami deklaratywnymi i programistycznymi, a tak甜e sposoby u甜ywania filtr坦w serwlet坦w i JSP. Przedstawiono tu tak甜e opis funkcji rzadziej u甜ywanych, lecz niezwykle przydatnych podczas tworzenia zo甜onych program坦w.
Ksi甜ka „Core Servlets i Java Server Pages. Tom II. Technologie zaawansowane. Wydanie drugie” to wyczerpujcy podrcznik dla programist坦w znajcych ju甜 podstawy technologiczne serwlet坦w i stron JSP, kt坦rzy chc pozna i wykorzysta ich zaawansowane mo甜liwoci.
Tom I zawiera szczeg坦owy opis serwlet坦w i stron JSP, w tym nag坦wki HTTP, pliki cookie, mechanizm ledzenia sesji, elementy skryptowe JSP, doczanie plik坦w, architektur Model-Widok-Kontroler (MVC) i jzyk wyra甜e JSP. Znajdziesz tam tak甜e opis formularzy HTML, JDBC oraz najlepsze praktyki projektowania i implementowania aplikacji.
Wykorzystaj wszystkie mo甜liwoci serwlet坦w i stron JSP, aby tworzy profesjonalne aplikacje!
* Deskryptor wdro甜enia
* Zabezpieczenia programistyczne i deklaratywne
* Filtry serwlet坦w i stron JSP
* Model i obsuga zdarze
* Wasne biblioteki znacznik坦w
* Platforma Apache Struts
W prezentacji przedstawi rozwizanie frameworka do automatyzacji test坦w, kt坦re zaprojektowaem, aby zapewni wydajn i tani w utrzymaniu automatyzacj test坦w dla aplikacji webowej.
Najwikszym wyzwaniem byo to, 甜e aplikacja skadaa si z wielu modu坦w, z kt坦rych ka甜dy by tworzony, podobnie jak testy dla niego, przez inn firm. Rozwizanie oparte o repozytorium binari坦w pozwala na szybkie dzielenie si wytworzonym kodem test坦w aplikacji pomidzy wszystkimi
zespoami, co przyspiesza i obni甜a koszt utrzymania test坦w automatycznych, oraz umo甜liwia szybkie pisanie test坦w przechodzcych przez wiele modu坦w aplikacji.
Automation of functional tests using JMeter (in Polish)Tieto Corporation
油
Presentation from a webinar dedicated to a user who don't have previous experience with automation of web applications tests using JMeter tool. At this virtual meet up you will get basic theoretical knowledge about automation test and some practical examples of using JMeter tool.
The webinar on YouTube: http://youtu.be/3_o3IOJEcxw
Tomasz Stupak is Senior Test Engineer working for 5 years in Tieto. During his profession career he has experience with software and hardware testing.
Apache JMeter to otwarte oprogramowanie, napisane w Javie i dedykowane do wykonywania test坦w obci甜eniowych, wydajnociowych oraz funkcjonalnych. Oryginalnie byo projektowane i rozwijane przez Stefano Mazzocchi z Apache Software Foundation, kt坦ry napisa go do testowania wydajnoci Apache JServ (projektu, kt坦ry zosta zastpiony przez Apache Tomcat). Nastpnie JMeter zosta przeprojektowany i wyposa甜ony w GUI celem rozszerzenia jego zastosowa do test坦w funkcjonalnych. W listopadzie 2011 roku JMeter sta si projektem Apache najwy甜szego poziomu (ang. top level), co oznacza, 甜e zyska spoeczno odpowiedzialn za jego rozw坦j (ang. Project Management Commitee) oraz dedykowany serwis.
Apache JMeter jest u甜ywany do testowania wydajnoci statycznych oraz dynamicznych zasob坦w takich jak pliki, dynamiczne jzyki programowania serwis坦w internetowych, np. PHP, Java, ASP.NET, itp., obiekty Java, bazy danych i kwerendy, serwery FTP, itp. Z powodzeniem jest wykorzystywany do symulowania wzmo甜onego ruchu na serwerze, grupie serwer坦w, w sieci lub na hartowanym obiekcie. Su甜y r坦wnie甜 do analizowania cakowitej wydajnoci pod obci甜eniem r坦甜nego typu, np. do graficznej analizy cakowitej wydajnoci lub do testowania zachowania si serwera / skryptu / obiektu przy wzmo甜onym i zr坦wnoleglonym obci甜eniu.
Podsumowanie analizy narzdzia do zarzdzania testowaniem za rozsdn cen. Spor坦d dziesiteki kandydat坦w i finaowej czw坦rki: SpiratTest, TestLink, SynapseRT, TestRail ostatecznie wygrywa...
Apache JMeter to otwarte oprogramowanie, napisane w Javie i dedykowane do wykonywania test坦w obci甜eniowych, wydajnociowych oraz funkcjonalnych. Oryginalnie byo projektowane i rozwijane przez Stefano Mazzocchi z Apache Software Foundation, kt坦ry napisa go do testowania wydajnoci Apache JServ (projektu, kt坦ry zosta zastpiony przez Apache Tomcat). Nastpnie JMeter zosta przeprojektowany i wyposa甜ony w GUI celem rozszerzenia jego zastosowa do test坦w funkcjonalnych. W listopadzie 2011 roku JMeter sta si projektem Apache najwy甜szego poziomu (ang. top level), co oznacza, 甜e zyska spoeczno odpowiedzialn za jego rozw坦j (ang. Project Management Commitee) oraz dedykowany serwis.
Apache JMeter jest u甜ywany do testowania wydajnoci statycznych oraz dynamicznych zasob坦w takich jak pliki, dynamiczne jzyki programowania serwis坦w internetowych, np. PHP, Java, ASP.NET, itp., obiekty Java, bazy danych i kwerendy, serwery FTP, itp. Z powodzeniem jest wykorzystywany do symulowania wzmo甜onego ruchu na serwerze, grupie serwer坦w, w sieci lub na hartowanym obiekcie. Su甜y r坦wnie甜 do analizowania cakowitej wydajnoci pod obci甜eniem r坦甜nego typu, np. do graficznej analizy cakowitej wydajnoci lub do testowania zachowania si serwera / skryptu / obiektu przy wzmo甜onym i zr坦wnoleglonym obci甜eniu.
Testowanie aplikacji to temat najczciej pomijany przez programist坦w. Testowanie nie jest tak pasjonujce jak tworzenie program坦w czy poznawanie nowych narzdzi. Jest jednak niezbdne. Prawidowo przeprowadzony proces testowania mo甜e znacznie poprawi wydajno, podnie jako projektu i kodu, zmniejszy obci甜enia wynikajce z konserwacji kodu i pom坦c lepiej zaspokoi wymagania klient坦w, wsp坦pracownik坦w i kierownictwa. W powszechnie uznanych metodykach projektowych testowanie, szczeg坦lnie za pomoc test坦w automatycznych, jest niezwykle istotnym procesem.
Ksi甜ka "Perl. Testowanie. Zapiski programisty" to praktyczny przewodnik dla programist坦w Perla, kt坦rzy chc poprawi jako i wydajno tworzonych przez siebie program坦w. Opisuje metody tworzenia test坦w automatycznych, stosowania ich i interpretowania ich wynik坦w. Przedstawia sposoby testowania pojedynczych modu坦w, caych aplikacji, witryn WWW, baz danych, a nawet program坦w stworzonych w innych jzykach programowania. Zawiera r坦wnie甜 informacje o tym, jak dostosowa podstawowe narzdzia testujce do wasnego rodowiska i projekt坦w.
* Instalowanie modu坦w testujcych
* Pisanie test坦w
* Automatyzacja uruchamiania test坦w
* Analiza wynik坦w test坦w
* Dystrybucja test坦w
* Testy jednostkowe
* Testowanie baz danych
* Testowanie witryn WWW i kodu HTML
Dziki wiadomociom zawartym w tej ksi甜ce mo甜na zredukowa dugo cyklu tworzenia oprogramowania i zdecydowanie uatwi konserwacj gotowych system坦w.
Laravel Pozna Meetup #4 - EloquentSequence - Historia pewnej biblioteki Open...HighSolutions Sp. z o.o.
油
Prezentacja, kt坦ra miaa miejsce 2018-05-24 w Poznaniu. Wykonanie: Adam Matysiak (HighSolutions). Czemu tworzy biblioteki Open Source i jak je stworzy w Laravelu. Na przykadzie paczki Eloquent Sequence.
Core Java Servlets i JavaServer Pages. Tom II. Wydanie IIWydawnictwo Helion
油
Kompletny przewodnik po zaawansowanych mechanizmach oraz funkcjach serwlet坦w i JSP.
* Jak kontrolowa dziaanie aplikacji za porednictwem pliku deskryptora?
* Jakie s mo甜liwoci rozbudowy systemu zabezpiecze?
* Jak mo甜na wykorzysta obsug zdarze?
Platforma Java 2 jest najczciej wykorzystywan technologi do budowy komercyjnych aplikacji internetowych, dynamicznych witryn WWW oraz aplikacji i usug sieciowych. Jej podstaw s serwlety i strony JSP, kt坦re s obsugiwane — przy u甜yciu komponent坦w wbudowanych lub dodatkowych — na praktycznie wszystkich serwerach WWW, a jednoczenie stanowi poczenie midzy klientami internetowymi i aplikacjami dziaajcymi na serwerze.
Tom II prezentuje zaawansowane narzdzia i techniki su甜ce do tworzenia rozbudowanych i wysoko wydajnych aplikacji. Opisano w nim mechanizmy kontroli dziaania aplikacji za pomoc pliku web.xml, mo甜liwoci rozszerzenia systemu zabezpiecze metodami deklaratywnymi i programistycznymi, a tak甜e sposoby u甜ywania filtr坦w serwlet坦w i JSP. Przedstawiono tu tak甜e opis funkcji rzadziej u甜ywanych, lecz niezwykle przydatnych podczas tworzenia zo甜onych program坦w.
Ksi甜ka „Core Servlets i Java Server Pages. Tom II. Technologie zaawansowane. Wydanie drugie” to wyczerpujcy podrcznik dla programist坦w znajcych ju甜 podstawy technologiczne serwlet坦w i stron JSP, kt坦rzy chc pozna i wykorzysta ich zaawansowane mo甜liwoci.
Tom I zawiera szczeg坦owy opis serwlet坦w i stron JSP, w tym nag坦wki HTTP, pliki cookie, mechanizm ledzenia sesji, elementy skryptowe JSP, doczanie plik坦w, architektur Model-Widok-Kontroler (MVC) i jzyk wyra甜e JSP. Znajdziesz tam tak甜e opis formularzy HTML, JDBC oraz najlepsze praktyki projektowania i implementowania aplikacji.
Wykorzystaj wszystkie mo甜liwoci serwlet坦w i stron JSP, aby tworzy profesjonalne aplikacje!
* Deskryptor wdro甜enia
* Zabezpieczenia programistyczne i deklaratywne
* Filtry serwlet坦w i stron JSP
* Model i obsuga zdarze
* Wasne biblioteki znacznik坦w
* Platforma Apache Struts
W prezentacji przedstawi rozwizanie frameworka do automatyzacji test坦w, kt坦re zaprojektowaem, aby zapewni wydajn i tani w utrzymaniu automatyzacj test坦w dla aplikacji webowej.
Najwikszym wyzwaniem byo to, 甜e aplikacja skadaa si z wielu modu坦w, z kt坦rych ka甜dy by tworzony, podobnie jak testy dla niego, przez inn firm. Rozwizanie oparte o repozytorium binari坦w pozwala na szybkie dzielenie si wytworzonym kodem test坦w aplikacji pomidzy wszystkimi
zespoami, co przyspiesza i obni甜a koszt utrzymania test坦w automatycznych, oraz umo甜liwia szybkie pisanie test坦w przechodzcych przez wiele modu坦w aplikacji.
Testy wydajnociowe to nie tylko JMeter. Podobnie jak w przypadku test坦w automatycznych, liczba framework坦w do badania wydajnoci stale ronie. Poza wprowadzeniem w tematyk test坦w wydajnociowych, w trakcie prezentacji przyjrzymy si ich implementacji we frameworku k6. Opowiemy r坦wnie甜 dlaczego w The Software House postawilimy na jego wyb坦r i jak dziki prostym skryptom testowym zoptymalizowalimy kilka naszych projekt坦w.
2. Plan prezentacji
1. Czym s testy integracyjne?
2. Przedstawienie frameworku Arquillian.
3. Implementacja test坦w integracyjnych
Arquilliana wykonywanych na zdalnym
serwerze WildFly.
4. Konfiguracja Arquilliana.
5. Przeprowadzanie test坦w integracyjnych.
www.proskar.pl 2 / 47
3. Czym s testy integracyjne?
Testy integracyjne su甜 testowaniu integracji
pomidzy dwoma moduami aplikacji, bd添
aplikacj a zewntrzn usug.
Testy integracyjne powinny by uruchamiane
na specjalnie przygotowywanym rodowisku
testowym, kt坦re maksymalnie
odwzorowywaoby rodowisko produkcyjne.
www.proskar.pl 3 / 47
4. Framework Arquillian
Arquillian to framework do przeprowadzenia
szeregu test坦w, r坦wnie甜 test坦w
integracyjnych, w symulowanym rodowisku
produkcyjnym.
G坦wnym celem, jest przygotowanie
testowanego kodu do postaci archiwum
i wykonanie test坦w na wybranym kontenerze
aplikacyjnym, kt坦ry mo甜e by obsugiwany
w jednym z trzech tryb坦w.
www.proskar.pl 4 / 47
5. Tryby kontenera aplikacyjnego
Wbudowany (embedded) Arquillian sam
uruchomi proces kontenera aplikacji w tym
samym rodowisku, co uruchamiane testy.
Po wykonaniu test坦w kontener zostanie
wyczony.
www.proskar.pl 5 / 47
6. Tryby kontenera aplikacyjnego
Zarzdzany (managed) Arquillian uruchomi
proces kontenera aplikacji jako oddzielny
proces na oddzielnej instancji JVM.
Po wykonaniu test坦w kontener zostanie
wyczony.
www.proskar.pl 6 / 47
7. Tryby kontenera aplikacyjnego
Zdalny (remote) Arquillian wymaga
uruchomionej instancji kontenera pod
adresem wskazanym w konfiguracji, aby m坦c
wysa testowany kod na serwer w celu
wykonania test坦w, po czym odbiera wyniki ich
wykonania. W tym trybie Arquillian w 甜aden
spos坦b nie zarzdza cyklem 甜ycia kontenera.
Testowanie w tym trybie najlepiej symuluje
rodowisko produkcyjne.
www.proskar.pl 7 / 47
8. Schemat przeprowadzania test坦w
Testowanie rozpoczyna si od uruchomienia
metody statycznej oznaczonej adnotacj
@Deployment, kt坦ra dostarcza archiwum
z testowanym rodowiskiem.
Wygenerowane przez autora testu archiwum
wysyane jest nastpnie do kontenera, gdzie
wykonywane s testy w tej klasie a ich wynik jest
odbierany po ich wykonaniu.
Nastpnie po wykonaniu test坦w archiwum jest
odczane od kontenera.
www.proskar.pl 8 / 47
9. Schemat przeprowadzania test坦w
Ka甜dy plik testowy wymaga wasnej adnotacji
@Deployment i wi甜e si z wygenerowaniem
oddzielnego archiwum, kt坦re zostanie
sekwencyjnie wdro甜one na serwer testowy.
W jednej chwili na raz testowana jest tylko
jedna klasa.
www.proskar.pl 9 / 47
11. Wymagane zale甜noci Maven
Wszystkie zale甜noci dodawane s w tagu
<dependencyManagement> g坦wnego POM'a,
gdzie okrela si wersje wszystkich
komponent坦w. W plikach POM modu坦w
definiuje si ju甜 tylko wymagane komponenty
bez definiowania wersji. Dziki takiemu
podejciu modyfikacja wersji frameworka jest
znacznie prostsza.
www.proskar.pl 11 / 47
13. Wymagane zale甜noci Maven
Wersjonowanie zale甜noci mo甜na rozwiza
poprzez parametry definiowane w POM'ie, co
dodatkowo pomo甜e uproci zarzdzanie
wersjami. ${arquillian-version} zdefiniowany
jest w czci properties:
www.proskar.pl 13 / 47
14. Wymagane zale甜noci Maven
Kolejnym wa甜nym krokiem jest zdefiniowanie
zale甜noci do kontenera.
www.proskar.pl 14 / 47
15. Wymagane zale甜noci Maven
Aby m坦c testowa integracj z baz danych,
nale甜y doda zale甜no do transakcyjnoci
Arquilliana.
www.proskar.pl 15 / 47
16. Wa甜ne!
Przedstawiona na poprzednim slajdzie musi by
umieszczona nad zale甜noci BOM'a Arquilliana.
Wynika to ze sposobu rozwizywania zale甜noci
przez Maven'a. W skr坦cie: je甜eli jaki artefakt
zostanie zdefiniowany w BOM'ie to zale甜no ta
zostanie zapamitana i p坦添niejsze wersje bd
pominite. U甜ywanie BOM'坦w niesie ze sob to
niebezpieczestwo, 甜e czasami do poprawnego
dziaania potrzebujemy zale甜noci w innych
wersjach ni甜 te, zdefiniowane w BOM'ie. Dlatego
nale甜y zdefiniowa je nad BOM'em.
www.proskar.pl 16 / 47
17. Wymagane zale甜noci Maven
Skoro g坦wny POM odpowiedzialny jest za
zarzdzanie wersjami zale甜noci, mo甜na te甜
zdefiniowa tam wersje plugin坦w
wykorzystywanych do budowania aplikacji.
Dziki tym definicjom ka甜dy z modu坦w
budowany bdzie w okrelony przez nas spos坦b.
Opr坦cz om坦wionych wczeniej zale甜noci nale甜y
doda pozostae, u甜yte w projekcie oraz w testach
(TestNG, PostgreSQL JodaTime i inne).
www.proskar.pl 17 / 47
18. Wymagane zale甜noci Maven
W testowanym module nale甜y w sekcji <dependencies>
doda zale甜nosci, kt坦re s u甜ywane w projekcie. Warto
zwr坦ci uwag na zasig (scope), kt坦ry wskazuje na
spos坦b dostarczenia zale甜noci przez kontener,
na kt坦rym uruchomiona ostanie nasza aplikacja.
www.proskar.pl 18 / 47
20. Wymagane zale甜noci Maven
Kolejny element to resolver ShrinkWrapa, aby
m坦c wygodnie budowa archiwa.
<scope>test</scope> gwarantuje, 甜e artefakt
dostpny bdzie tylko w trakcie test坦w i nie
zostanie doczony do archiwum aplikacji po
zbudowaniu.
www.proskar.pl 20 / 47
21. Wymagane zale甜noci Maven
Przysza kolej na zale甜noci, kt坦re dodaj
framework TestNG oraz rozszerzenie
Arquillianowe (wymagane do wykonywania
test坦w przy u甜yciu Arquilliana).
www.proskar.pl 21 / 47
22. Wymagane zale甜noci Maven
Dodajemy definicj kontenera, na kt坦rym
bdziemy wykonywa testy. W tym wypadku
jest to zdalny serwer .
www.proskar.pl 22 / 47
26. Plik konfiguracyjny
Plik, w kt坦rym jest umieszczana konfiguracja
Arquilliana nosi nazw arquillian.xml.
Powinien si on znajdowa w zasobach
testowych (Other Test Sources) w przypadku,
gdy wymagane jest nadpisanie domylnego
zachowania.
W przypadku testowania na serwerze zdalnym
wymagane jest zdefiniowanie informacji
o tym甜e serwerze.
www.proskar.pl 26 / 47
28. Plik konfiguracyjny
W listingu na poprzednim slajdzie
zamieszczono trzy istotne informacje:
defaultProtocol - opisuje jaki protok坦 ma by
u甜yty do wdra甜ania.
DeploymentExportPath bez tej opcji ShrinkWrap
bdzie umieszcza testowe archiwa
w systemowym folderze tymczasowym, skd
zostan usunite po wykonaniu test坦w
Container wildfly-remote okrela parametry
poczenia z serwerem zdalnym.
www.proskar.pl 28 / 47
29. Wa甜ne!
Po dodaniu zale甜noci i pliku konfiguracyjnego
Arquilliana projekt powinien si budowa, cho
nie bd wykonywane 甜adne testy. Je甜eli projekt
nie buduje si na tym etapie oznacza to mo甜e
nieprawidowoci w definiowaniu zale甜noci
bd添 konfiguracji Arquilliana. Nale甜y zwr坦ci
uwag r坦wnie甜, czy serwer zdalny jest dostpny
(uruchomiony).
www.proskar.pl 29 / 47
31. Tworzenie testu Arquilliana
Aby wykona testy w danej klasie niezbdne
jest:
Rozszerzenie klasy org.jboss.arquillian.testng.Arquillian,
Zdefiniowanie w tej klasie publicznej metody statycznej,
kt坦ra zwraca obiekt dziedziczcy po Archive,
Opatrzenie tej klasy adnotacj
org.jboss.arquillian.container.test.api.Deployment.
www.proskar.pl 31 / 47
32. Deployment przy pomocy
Zwracanie obiektu w przedstawionej wczeniej
metodzie jest mo甜liwe dziki zastosowaniu
biblioteki ShrinkWrap.
www.proskar.pl 32 / 47
33. Deployment przy pomocy
Aby generowa rozbudowane Archiwum
testowe mo甜na przygotowa klas, kt坦r
bdzie mo甜na u甜ywa w wielu testach.
www.proskar.pl 33 / 47
35. Wymagania dotyczce bazy danych
W trakcie test坦w nale甜y zapewni poczenie do
bazy testowej. Mo甜e to by 添r坦do zar坦wno JTA,
jak i lokalne. Nale甜y jednak zapewni, aby
czyo si do bazy w ten sam spos坦b co 添r坦do
produkcyjne. Testowa baza danych powinna by
utworzona na tej samej bazie danych.
W przeciwnym wypadku testy integracyjne nie
bd w peni prawidowo testowa integracji
z baz danych.
www.proskar.pl 35 / 47
38. Pisanie test坦w Arquilliana
Testy Arquilliana polegaj w g坦wnej mierze na
wykonywaniu testowanej metody oraz
por坦wnywaniu otrzymanego wyniku
z wartoci oczekiwan.
www.proskar.pl 38 / 47
39. Pisanie test坦w Arquilliana
Aby przetestowa obiekt Dao nale甜y go
wstrzykn tak jak poni甜ej:
www.proskar.pl 39 / 47
40. Pisanie test坦w Arquilliana
Kod wykonywany przed i po testach powinien
by umieszczony w publicznie dostpnych
metodach oznaczonych adnotacjami
@BeforeTest i @AfterTest.
www.proskar.pl 40 / 47
42. Klasa abstrakcyjna test坦w NG
Implementacje Arquilliana mo甜na
z powodzeniem ukry przy pomocy klasy
abstrakcyjnej, kt坦r rozszerzayby wszystkie
testy integracyjne i funkcjonalne.
W tym celu mo甜na stworzy klas
abstrakcyjn, kt坦ra rozszerza klas Arquillian.
www.proskar.pl 42 / 47
43. Metodyka przeprowadzania test坦w
integracyjnych z baz danych
Aby prawidowo przeprowadzi testy
integracyjne z baz danych testy powinny
sprawdza jak dziaaj wszystkie metody
obiekt坦w.
www.proskar.pl 43 / 47
44. Co nale甜y sprawdzi?
Manipulacja na danych. Czy cay CRUD dziaa prawidowo?
Walidacja p坦l unikalnych. Czy na pewno nie mo甜na doda
dw坦ch obiekt坦w o takiej samej wartoci?
Walidacja wartoci generowanych po stronie bazy. Je甜eli
metoda wykonuje akcj DML na obiekcie i w trakcie tej akcji
baza danych powinna modyfikowa jak warto obiektu,
to nale甜y sprawdzi, czy ta warto jest dostpna.
Test walidacji p坦l. Je甜eli w dano pole mo甜na wpisa tylko
warto o cile okrelonej semantyce, nale甜y sprawdzi czy
poprawna semantycznie warto mo甜e zosta zapisana oraz
czy nie istnieje jaka warto niepoprawna, kt坦ra mo甜e
zosta zapisana.
www.proskar.pl 44 / 47
45. Co nale甜y sprawdzi?
Je甜eli w projekcie istnieje DML wdro甜eniowy nale甜y sprawdzi, czy
wartoci znajduj si w bazie i s dostpne. Mo甜na sprawdzi ich
wartoci oraz liczno.
Je甜eli baza danych posiada jakie funkcje generujce wartoci nale甜y
sprawdzi, czy zwracane wartoci s poprawne semantycznie i s
zgodne z zao甜eniami projektowymi.
Je甜eli pole jest unikalne tylko w pewnym kontekcie, nale甜y
sprawdzi, czy unikalno jest tylko w tym kontekcie i nie
uniemo甜liwia nadawanie tych wartoci w innych kontekstach.
Je甜eli do pola testowego zapisywana jest jaka enumeracja, nale甜y
walidowa wprowadzanie wszystkich wartoci oraz wartoci spoza
enumeracji oczekujc bdu wstawienia.
www.proskar.pl 45 / 47
46. Wa甜ne!
Po ka甜dym tecie nastpuje wycofanie
transakcji.
Kolejno test坦w nie ma znaczenia.
www.proskar.pl 46 / 47