SlideShare a Scribd company logo
1 of 43
©2010TietoCorporation
Automatyzacja
testów
funkcjonalnych
z wykorzystaniem narzędzia JMeter
Tomasz Stupak
Senior Test Engineer
Tieto,
© 2010 Tieto Corporation
Table of contents
• Wstęp teoretyczny 4
• Czym jest testowanie funkcjonalne? 5
• Po co automatyzować testy funkcjonalne? 6
• Po co automatyzować testy funkcjonalne? 7
• Jak zautomatyzować proces testowania funkcjonalnego? 8
• Na co zwrócić uwagę przy wyborze narzędzia do automatyzacji? 9
• Czym jest JMeter? 10
• Czym jest JMeter? 11
• Co można zrobić za pomocą JMetera? 12
• Właściwości JMetera 13
• Elementy Test Planu 14
• Thread Group 15
• Thread Group 16
• Ramp-up Period 17
• Controllers 18
• Samplery 19
• Logic Controllers 20
• Listenery 21
• Timery 22
2 Tomasz Stupak 2013-09-27
© 2010 Tieto Corporation
Spis Treści
• Asercje 23
• Configuration Elements 24
• Pre-Processor Elements 25
• Post-Processor Elements 26
• Kolejność wykonywania 27
• Przykład 28
• Co będziemy testować? 29
• Pobranie i uruchomienie JMetera 30
• Konfiguracja liczby użytkowników 31
• Konfiguracja liczby użytkowników 32
• Dodanie HTTP Request Defaults 33
• Dodanie HTTP Request Defaults 34
• Obsługa Coockies 35
• Wysyłanie requestu 36
• Wysyłanie requestu 37
• Dodawanie Listenera 38
• Dodawanie Listenera 39
• Start / Stop Testu 40
• Wyniki testu 41
• W następnym odcinku 42
3 Tomasz Stupak 2013-09-27
©2010TietoCorporation
Wstęp
teoretyczny
4 2013-09-27
© 2010 Tieto Corporation
Czym jest testowanie
funkcjonalne?
• Integralna część procesu zapewniania jakości
– Stosowana w celu zweryfikowania czy aplikacja działa
zgodnie z przyjętymi wcześniej założeniami
• Ciąg testów emulujących interakcje pomiędzy
użytkownikiem a aplikacją
• Może obejmować testy manualne i automatyczne
© 2010 Tieto Corporation
Po co automatyzować testy
funkcjonalne?
• Czasochłonność testów manualnych
• Pobieżność i pomijanie części funkcjonalności
• Trudność wykonania testów regresyjnych
© 2010 Tieto Corporation
Po co automatyzować testy
funkcjonalne?
• Automatyzacja przyspiesza i polepsza jakość
• Długofalowe rezultaty:
– Możliwość ponownego wykorzystania
– Przewidywalność i metodyczność
– Produktywność
© 2010 Tieto Corporation
Jak zautomatyzować proces
testowania funkcjonalnego?
1. Ustalenie aplikacji, które powinny podlegać
automatyzacji
2. Wybranie właściwego podejścia testowego
3. Stworzenie planu testowania aplikacji
4. Stworzenie i wdrożenie testów automatycznych
© 2010 Tieto Corporation
Na co zwrócić uwagę przy wyborze
narzędzia do automatyzacji?
• Zintegrowane środowisko do automatyzacji testów
• Dobra adaptacja do ciągłych zmian wymagań
biznesowych
• Wsparcie wielu technologii
• Optymalizacja zapewnienia jakości w całym cyklu
tworzenia oprogramowania
• Rozwinięta społeczność użytkowników
• Odpowiedni poziom wsparcia i usług dodatkowych
©2010TietoCorporation
Czym jest
JMeter?
10 2013-09-27
© 2010 Tieto Corporation
Czym jest JMeter?
• Aplikacja typu open source napisana w języku Java
• Zaprojektowany do:
– Testów obciążeniowych
– Testów funkcjonalnych
– Mierzenia wydajności
• Pierwotnie zaprojektowany do testowania aplikacji
webowych
© 2010 Tieto Corporation
Co można zrobić za pomocą
JMetera?
• Testowanie statycznych i dynamicznych zasobów
– Pliki, Servlety, skrypty Perl, Obiekty Java, bazy danych i
zapytania do baz danych, serwery FTP i inne
• Symulacja wysokiego obciążenia w celu
przetestowania odporności
• Graficzna analiza wydajności
12 Tomasz Stupak 2013-09-27
© 2010 Tieto Corporation
Właściwości JMetera
• Testy na wielu typach serwerów:
– HTTP(S), SOAP, bazy danych (przez JDBC), LDAP,
JMS, poczta – SMTP, POP3 i IMAP
• Pełna przenaszalność
• Wielowątkowy framework
• Interfejs graficzny
• Analiza offline
• Elastoczność
– samplery, timery, wizualizacja, funkcje, skrypty
• JMeter nie jest przeglądarką!
13 Tomasz Stupak 2013-09-27
©2010TietoCorporation
Elementy Test
Planu
© 2010 Tieto Corporation
Thread Group
Test Plan (RMB) -> Add -> Threads (Users) -> Thread Group
• Punkt początkowy każdego test planu
• Kontroluje ilość wątków używanych przy wykonywaniu testu
• Symuluje wielu użytkowników łączących się z serwerem
• Pozwala:
• Okreslić liczbę wątków
• Określić czas uruchamiania
• Określić ilość iteracji testu
• Wszystkie kontrolery i samplery muszą być pod daną grupą
wątków
• Inne elementy mogą być umieszczone bezpośrednio pod
test planem (będą dotyczyć wszystkich grup wątków)
2013-09-2715 Tomasz Stupak
© 2010 Tieto Corporation
Thread Group
16 Tomasz Stupak 2013-09-27
Liczba
wątków
Czas
uruchamiania
Liczba
iteracji
© 2010 Tieto Corporation
Ramp-up Period
• Określa po jakim czasie uruchomią się wszystkie wątki.
• Przykład:
• Threads: 10
• Ramp-Up: 100 sekund
• Po 100 sekundach uruchomi się 10 wątków
• Każdy wątek będzie uruchamiał się 10 sekund po poprzednim
(100s/10)
• Czas musi być odpowiednio długi, żeby nie przeciążyć
JMetera już na początku
• Czas musi być odpowiednio krótki, żeby ostatni wątek
uruchomił się przed końcem działania pierwszego (chyba,
że taki scenariusz jest zamierzony)
17 Tomasz Stupak 2013-09-27
© 2010 Tieto Corporation
Controllers
• JMeter oferuje 2 rodzaje kontrolerów
• Samplery
• Logical Controllers (kontrolery logiczne)
• Samplery:
• Używane przez JMeter do wysyłania requestów do
serwera
• Można je dostosować za pomocą Configuration Elements
• Logical Controllers:
• Używane do określenia logiki decydującej o tym, kiedy
wysłać request
18 Tomasz Stupak 2013-09-27
© 2010 Tieto Corporation
Samplery
Thread Group-> Add -> Sampler
• Wysyła request i czeka na odpowiedź serwera
• Przetwarzane w kolejności położenia na drzewie
• Można je dostosować za pomocą kontrolerów logicznych
• Przykłady:
• FTP Request
• HTTP Request
• JDBC Request
• Java object request
• LDAP Request
• SOAP/XML-RPC Request
• WebService (SOAP) Request
19 Tomasz Stupak 2013-09-27
© 2010 Tieto Corporation
Logic Controllers
Thread Group -> Add -> Logic Controller
• Określają logikę decydującą o tym, kiedy wysłać request
• Mogą zmienić kolejność wykonywania requestów
• Mogą modyfikować requesty
• Mogą powodować powtórzenie wykonania requestów
• Można je łączyć w celu uzyskania danych rezultatów
• Przykłady:
• ForEach Controller
• If Controller
• Loop Controller
• Random Controller
• Recording Controller
20 Tomasz Stupak 2013-09-27
© 2010 Tieto Corporation
Listenery
Test Plan / Thread Group -> Add -> Listener
• Wyświetlają rezultaty wykonania zadań JMetera, takie jak
np:
• Czasy odpowiedzi
• Szczegóły zapytania i odpowiedź
• Możliwość zapisu danych do pliku
• Każdy listener przechowuje te same dane, róznica polega
na sposobie wyświetlania ich
• Przykłady:
• View Results Tree
• Graph Results
• Aggregate Report
21 Tomasz Stupak 2013-09-27
© 2010 Tieto Corporation
Timery
Test Plan / Thread Group -> Add -> Timer
• Używane do określenia przerw między wykonywaniem
requestów
• Domyślnie JMeter wysyła requesty bez przerw, co może
spowodować przeciążenie serwera
• Gdy użyty jest więcej niż jeden timer, JMeter sumuje ich
wartości
• Dodawane jako podelementy samplerów lub kontrolerów
• Przykłady:
• Constant Timer
• Gaussian Random Timer
• Synchronizing Timer
22 Tomasz Stupak 2013-09-27
© 2010 Tieto Corporation
Asercje
Test Plan / Thread Group -> Add -> Assertions
• Używane do sprawdzania poprawności odpowiedzi serwera
• „Testują” czy aplikacja zwraca wyniki zgodnie z
oczekiwaniami
• Przykład:
• Można sprawdzić, czy odpowiedź zawiera dany tekst
• Możliwość wykorzystania wyrażeń regularnych
• Dodawane jako podelementy Samplerów
• W celu wyświetlenia wyników asercji, używa się litenera:
Assertion Results
• Przykłady:
• Response Assertion
• Size Assertion
23 Tomasz Stupak 2013-09-27
© 2010 Tieto Corporation
Configuration Elements
Test Plan / Thread Group -> Add -> Config Element
• Łączą się z Samplerami
• Same z siebie nie wysyłają requestów, ale mogą je
modyfikować
• Mają zastosowanie tylko w głązi, w której są umieszczone
• Wyjątek: User Defined Variables, który przetwarzany jest na
początku testu, bez względu na to, gdzie jest umieszczony
• Przykłady:
• HTTP Coockie Manager
• HTTP Request Defaults
• HTTP Authorization Manager
• Counter
24 Tomasz Stupak 2013-09-27
© 2010 Tieto Corporation
Pre-Processor Elements
Test Plan / Thread Group -> Add -> Pre Processors
• Wykonują daną akcję przed danym requestem
• Gdy dodane jako podelement danego Samplera,
wykonuwane są przed nim
• Najczęściej używane do modyfikacji requestu przed
jego wykonaniem (przez np. zmianę wartości
zmiennej)
• Przykłady:
• User Parameters
• HTTP URL Re-writing Modifier
25 Tomasz Stupak 2013-09-27
© 2010 Tieto Corporation
Post-Processor Elements
Test Plan / Thread Group -> Add -> Post Processors
• Wykonują daną akcję po danym requeście
• Gdy dodane jako podelement danego Samplera,
wykonywane są po nim
• Najczęściej używane do przetwarzania danych z
odpowiedzi danego requestu, np. wyciągnięcia
wartości
• Przykłady:
• Regular Expression Extractor
• XPath Extractor
26 Tomasz Stupak 2013-09-27
© 2010 Tieto Corporation
Kolejność wykonywania
1. Configuration elements
2. Pre-Processors
3. Timery
4. Samplery
5. Post-Processors (o ile wynik requestu jest różny od nulla)
6. Asercje (o ile wynik requestu jest różny od nulla)
7. Listnery (o ile wynik requestu jest różny od nulla)
• Timery, Asercje, Pre i Post-Procesory wykonywane są tylko
wtedy, gdy są podelementem Samplera
• Samplery i Logic Controllers wykonywane są w kolejności
ułożenia na drzewie
27 Tomasz Stupak 2013-09-27
©2010TietoCorporation
Przykład
Podstawy JMeter – budowanie test
planu z użyciem podstawowych
elementów
28 2013-09-27
© 2010 Tieto Corporation
Co będziemy testować?
• Przykładowy Test Plan do testowania stron www
• 5 użytkowników wysyła requesty do 2 stron, użytkownicy
przeprowadzają test dwukrotnie (5 userów * 2 requesty * 2 =
20 requestów HTTP)
• Używane elementy:
• Thread Group
• HTTP request
• HTTP Request Defaults
• HTTP Coockie Manager
• Graph Results
• View Results Tree
• View Results in Table
• Aggregate Graph
© 2010 Tieto Corporation
Pobranie i uruchomienie JMetera
• Strona pobierania Jmetera
• Uruchomienie:
/bin/jmeter.bat
30 Tomasz Stupak 2013-09-27
© 2010 Tieto Corporation
Konfiguracja liczby użytkowników
• Test Plan -> Add -> Threads (users) -> Thread
Group
• Opcjonalnie można zmienić nazwę (pole Name)
• Numer of Threads (users): 5
• Ramp-Up Period (in seconds): 1
• Loop Count: 2
• UWAGA: W odróżnieniu od większości aplikacji
(gdzie zmiany trzeba potwierdzać), JMeter
automatycznie wprowadza wpisane zmiany
31 Tomasz Stupak 2013-09-27
© 2010 Tieto Corporation
Konfiguracja liczby użytkowników
32 Tomasz Stupak 2013-09-27
© 2010 Tieto Corporation
Dodanie HTTP Request Defaults
• Thread Group -> Add -> Config Element -> HTTP
Request Defaults
• Zapytania będą wysyłane do tego samego serwera,
więc:
Server Name or IP: bash.org.pl
• UWAGA: Element HTTP Request Defaults nie
wysyła requestów HTTP, tylko definiuje domyślne
wartości, używane przez elementy wysyłające takie
requesty
33 Tomasz Stupak 2013-09-27
© 2010 Tieto Corporation
Dodanie HTTP Request Defaults
34 Tomasz Stupak 2013-09-27
© 2010 Tieto Corporation
Obsługa Coockies
• Prawie wszystkie strony www używają plików
coockies
• Do obsługi coockies w JMeter do Test Planu
dodaje się HTTP Coockie Manager
• W ten sposób każdy wątek będzie miał swój plik
coockie, używany przez zawarte w nim HTTP
• Thread Group -> Add -> Config Element -> HTTP
Coockie Manager
35 Tomasz Stupak 2013-09-27
© 2010 Tieto Corporation
Wysyłanie requestu
• W naszym Test Planie wysyłamy 2 requesty HTTP:
• http://bash.org.pl/
• http://bash.org.pl/latest
• Thread Group -> Add -> Sampler -> HTTP Request
• Pole Server Name or IP pozostawiamy puste, gdyż adres
ustawiony jest w elemencie HTTP Request Defaults
• W pierwszym requeście pole Path zostawiamy puste, gdyż
wysyłamy zapytanie do strony głównej
• W drugim requeście ustawiamy odpowiednią ścieżkę:
• Patch: /latest
36 Tomasz Stupak 2013-09-27
© 2010 Tieto Corporation
Wysyłanie requestu
37 Tomasz Stupak 2013-09-27
© 2010 Tieto Corporation
Dodawanie Listenera
• Listner odpowiada za przechowywanie wyników
requestu HTTP i wyświetlanie ich w formie zależnej
od typu Listenera
• Test Plan -> Add -> Listener
• W naszym teście dodamy 4 różne Listenery:
• Graph Results
• View Results Tree
• View Results in Table
• Aggregate Report
38 Tomasz Stupak 2013-09-27
© 2010 Tieto Corporation
Dodawanie Listenera
39 Tomasz Stupak 2013-09-27
© 2010 Tieto Corporation
Start / Stop Testu
• Start testu:
• Run -> Start
• CTRL+R
• Stop testu:
• Run -> Stop
• CTRL+.
• Wyczyszczenie wyników
• Run -> Clear All
• CTRL+E
40 Tomasz Stupak 2013-09-27
© 2010 Tieto Corporation
Wyniki testu
41 Tomasz Stupak 2013-09-27
© 2010 Tieto Corporation
W następnym odcinku
• JMeter advanced – wykorzytanie bardziej
skomplikowanych elementów aplikacji:
• Nagrywanie skryptów za pomocą elementu HTTP Proxy
Server
• Parametryzacja testu
• Użycie asercji
• Użycie Logic Controllers
• Użycie Timerów
• Symulacja „żywych” użytkowników
42 Tomasz Stupak 2013-09-27
©2010TietoCorporation
Tomasz Stupak
Senior Tests Engineer
Tieto,

More Related Content

Viewers also liked

Anatomy of Disruption, Ahmad Qureshi
Anatomy of Disruption, Ahmad QureshiAnatomy of Disruption, Ahmad Qureshi
Anatomy of Disruption, Ahmad QureshiTieto Corporation
 
Capital Markets Day 2014- presentation panel, Google and Smart Capital
Capital Markets Day 2014- presentation panel, Google and Smart CapitalCapital Markets Day 2014- presentation panel, Google and Smart Capital
Capital Markets Day 2014- presentation panel, Google and Smart CapitalTieto Corporation
 
How to create successful service experience
How to create successful service experienceHow to create successful service experience
How to create successful service experienceTieto Corporation
 
Capital Markets Day 2014- presentation SEB Private Banking
Capital Markets Day 2014- presentation SEB Private BankingCapital Markets Day 2014- presentation SEB Private Banking
Capital Markets Day 2014- presentation SEB Private BankingTieto Corporation
 
Marketing transformation in an engineering company (Finnish)
Marketing transformation in an engineering company (Finnish)Marketing transformation in an engineering company (Finnish)
Marketing transformation in an engineering company (Finnish)Tieto Corporation
 
10 reasons why the cloud is great for the environment
10 reasons why the cloud is great for the environment10 reasons why the cloud is great for the environment
10 reasons why the cloud is great for the environmentTieto Corporation
 
Tieto Retail Experience - How will the retail remain relevant for all of us?
Tieto Retail Experience - How will the retail remain relevant for all of us?Tieto Retail Experience - How will the retail remain relevant for all of us?
Tieto Retail Experience - How will the retail remain relevant for all of us?Tieto Corporation
 
Capital Markets Day 2014- presentation Robin Teigland, Stockholm School of Ec...
Capital Markets Day 2014- presentation Robin Teigland, Stockholm School of Ec...Capital Markets Day 2014- presentation Robin Teigland, Stockholm School of Ec...
Capital Markets Day 2014- presentation Robin Teigland, Stockholm School of Ec...Tieto Corporation
 
Digitalisaatio Suomen yhteisellä agendalla
Digitalisaatio Suomen yhteisellä agendallaDigitalisaatio Suomen yhteisellä agendalla
Digitalisaatio Suomen yhteisellä agendallaTieto Corporation
 
Bankdagen 2018, Jacob Ståhle, Google
Bankdagen 2018, Jacob Ståhle, GoogleBankdagen 2018, Jacob Ståhle, Google
Bankdagen 2018, Jacob Ståhle, GoogleTieto Corporation
 
Bankdagen 2018, Daniel Akenine
Bankdagen 2018, Daniel AkenineBankdagen 2018, Daniel Akenine
Bankdagen 2018, Daniel AkenineTieto Corporation
 
Hur kan IT användas framgångsrikt i skolan?
Hur kan IT användas framgångsrikt i skolan?Hur kan IT användas framgångsrikt i skolan?
Hur kan IT användas framgångsrikt i skolan?Tieto Corporation
 
The digital customer - Design to influence experiences and behaviors
The digital customer - Design to influence experiences and behaviorsThe digital customer - Design to influence experiences and behaviors
The digital customer - Design to influence experiences and behaviorsTieto Corporation
 
Varautuminen EU-henkilötietosuoja-asetukseen
Varautuminen EU-henkilötietosuoja-asetukseenVarautuminen EU-henkilötietosuoja-asetukseen
Varautuminen EU-henkilötietosuoja-asetukseenTieto Corporation
 
Digitally Empowered Customer Experience
Digitally Empowered Customer ExperienceDigitally Empowered Customer Experience
Digitally Empowered Customer ExperienceTieto Corporation
 
Intelligent IoT Gateway on OpenWrt
Intelligent IoT Gateway on OpenWrtIntelligent IoT Gateway on OpenWrt
Intelligent IoT Gateway on OpenWrtTieto Corporation
 
The business value of cloud maturity
The business value of cloud maturityThe business value of cloud maturity
The business value of cloud maturityTieto Corporation
 

Viewers also liked (18)

Anatomy of Disruption, Ahmad Qureshi
Anatomy of Disruption, Ahmad QureshiAnatomy of Disruption, Ahmad Qureshi
Anatomy of Disruption, Ahmad Qureshi
 
Capital Markets Day 2014- presentation panel, Google and Smart Capital
Capital Markets Day 2014- presentation panel, Google and Smart CapitalCapital Markets Day 2014- presentation panel, Google and Smart Capital
Capital Markets Day 2014- presentation panel, Google and Smart Capital
 
How to create successful service experience
How to create successful service experienceHow to create successful service experience
How to create successful service experience
 
Capital Markets Day 2014- presentation SEB Private Banking
Capital Markets Day 2014- presentation SEB Private BankingCapital Markets Day 2014- presentation SEB Private Banking
Capital Markets Day 2014- presentation SEB Private Banking
 
Marketing transformation in an engineering company (Finnish)
Marketing transformation in an engineering company (Finnish)Marketing transformation in an engineering company (Finnish)
Marketing transformation in an engineering company (Finnish)
 
10 reasons why the cloud is great for the environment
10 reasons why the cloud is great for the environment10 reasons why the cloud is great for the environment
10 reasons why the cloud is great for the environment
 
Tieto Retail Experience - How will the retail remain relevant for all of us?
Tieto Retail Experience - How will the retail remain relevant for all of us?Tieto Retail Experience - How will the retail remain relevant for all of us?
Tieto Retail Experience - How will the retail remain relevant for all of us?
 
Capital Markets Day 2014- presentation Robin Teigland, Stockholm School of Ec...
Capital Markets Day 2014- presentation Robin Teigland, Stockholm School of Ec...Capital Markets Day 2014- presentation Robin Teigland, Stockholm School of Ec...
Capital Markets Day 2014- presentation Robin Teigland, Stockholm School of Ec...
 
Digitalisaatio Suomen yhteisellä agendalla
Digitalisaatio Suomen yhteisellä agendallaDigitalisaatio Suomen yhteisellä agendalla
Digitalisaatio Suomen yhteisellä agendalla
 
Bankdagen 2018, Jacob Ståhle, Google
Bankdagen 2018, Jacob Ståhle, GoogleBankdagen 2018, Jacob Ståhle, Google
Bankdagen 2018, Jacob Ståhle, Google
 
Bankdagen 2018, Daniel Akenine
Bankdagen 2018, Daniel AkenineBankdagen 2018, Daniel Akenine
Bankdagen 2018, Daniel Akenine
 
Hur kan IT användas framgångsrikt i skolan?
Hur kan IT användas framgångsrikt i skolan?Hur kan IT användas framgångsrikt i skolan?
Hur kan IT användas framgångsrikt i skolan?
 
Tieto Company Presentation
Tieto Company PresentationTieto Company Presentation
Tieto Company Presentation
 
The digital customer - Design to influence experiences and behaviors
The digital customer - Design to influence experiences and behaviorsThe digital customer - Design to influence experiences and behaviors
The digital customer - Design to influence experiences and behaviors
 
Varautuminen EU-henkilötietosuoja-asetukseen
Varautuminen EU-henkilötietosuoja-asetukseenVarautuminen EU-henkilötietosuoja-asetukseen
Varautuminen EU-henkilötietosuoja-asetukseen
 
Digitally Empowered Customer Experience
Digitally Empowered Customer ExperienceDigitally Empowered Customer Experience
Digitally Empowered Customer Experience
 
Intelligent IoT Gateway on OpenWrt
Intelligent IoT Gateway on OpenWrtIntelligent IoT Gateway on OpenWrt
Intelligent IoT Gateway on OpenWrt
 
The business value of cloud maturity
The business value of cloud maturityThe business value of cloud maturity
The business value of cloud maturity
 

Similar to Automation of functional tests using JMeter (in Polish)

Bezstratna kompresja listy przypadków testowych
Bezstratna kompresja listy przypadków testowychBezstratna kompresja listy przypadków testowych
Bezstratna kompresja listy przypadków testowychPiotr Piotrowski
 
PLNOG 9: Krzysztof Konkowski, Władysław Misztal - Skuteczne planowanie i czas...
PLNOG 9: Krzysztof Konkowski, Władysław Misztal - Skuteczne planowanie i czas...PLNOG 9: Krzysztof Konkowski, Władysław Misztal - Skuteczne planowanie i czas...
PLNOG 9: Krzysztof Konkowski, Władysław Misztal - Skuteczne planowanie i czas...PROIDEA
 
XIII Targi eHandlu - AtomStore - Łukasz Plutecki
XIII Targi eHandlu - AtomStore - Łukasz PluteckiXIII Targi eHandlu - AtomStore - Łukasz Plutecki
XIII Targi eHandlu - AtomStore - Łukasz Pluteckiecommerce poland expo
 
Analiza TestLink - narzędzie do zarzadzania testowaniem
Analiza TestLink - narzędzie do zarzadzania testowaniemAnaliza TestLink - narzędzie do zarzadzania testowaniem
Analiza TestLink - narzędzie do zarzadzania testowaniemRadoslaw Smilgin
 
Porażka nie wchodzi w grę, czyli o niezawodności
Porażka nie wchodzi w grę, czyli o niezawodnościPorażka nie wchodzi w grę, czyli o niezawodności
Porażka nie wchodzi w grę, czyli o niezawodnościKamil Grabowski
 
Strategie automatyzacji testow
Strategie automatyzacji testowStrategie automatyzacji testow
Strategie automatyzacji testowWiktor Żołnowski
 
Tech cafe Microservices
Tech cafe MicroservicesTech cafe Microservices
Tech cafe MicroservicesKonrad Król
 
DATA CENTER CONVERGED 2012 WARSAW
DATA CENTER CONVERGED 2012 WARSAWDATA CENTER CONVERGED 2012 WARSAW
DATA CENTER CONVERGED 2012 WARSAWPawel Wawrzyniak
 
Angular 4 pragmatycznie
Angular 4 pragmatycznieAngular 4 pragmatycznie
Angular 4 pragmatycznieSages
 
Analiza wydajności następnej generacji - przykłady.
Analiza wydajności następnej generacji - przykłady.Analiza wydajności następnej generacji - przykłady.
Analiza wydajności następnej generacji - przykłady.Future Processing
 
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
 
DevOps - what I have learnt so far
DevOps - what I have learnt so far DevOps - what I have learnt so far
DevOps - what I have learnt so far Wojciech Barczyński
 
TGT#17 - Efektywne testy oprogramowania w środowisku Scrumowym - Marcin Kubecki
TGT#17 - Efektywne testy oprogramowania w środowisku Scrumowym - Marcin KubeckiTGT#17 - Efektywne testy oprogramowania w środowisku Scrumowym - Marcin Kubecki
TGT#17 - Efektywne testy oprogramowania w środowisku Scrumowym - Marcin KubeckiTrójmiejska Grupa Testerska
 
Jak nie narobić sobie problemów korzystając z EntityFramework
Jak nie narobić sobie problemów korzystając z EntityFrameworkJak nie narobić sobie problemów korzystając z EntityFramework
Jak nie narobić sobie problemów korzystając z EntityFrameworkHighWheelSoftware
 

Similar to Automation of functional tests using JMeter (in Polish) (20)

Bezstratna kompresja listy przypadków testowych
Bezstratna kompresja listy przypadków testowychBezstratna kompresja listy przypadków testowych
Bezstratna kompresja listy przypadków testowych
 
JMeter - narzędzie testera - notatki
JMeter - narzędzie testera - notatkiJMeter - narzędzie testera - notatki
JMeter - narzędzie testera - notatki
 
Jak używać Magento Developer Toolbar?
Jak używać Magento Developer Toolbar?Jak używać Magento Developer Toolbar?
Jak używać Magento Developer Toolbar?
 
Dlaczego flopsar
Dlaczego flopsarDlaczego flopsar
Dlaczego flopsar
 
PLNOG 9: Krzysztof Konkowski, Władysław Misztal - Skuteczne planowanie i czas...
PLNOG 9: Krzysztof Konkowski, Władysław Misztal - Skuteczne planowanie i czas...PLNOG 9: Krzysztof Konkowski, Władysław Misztal - Skuteczne planowanie i czas...
PLNOG 9: Krzysztof Konkowski, Władysław Misztal - Skuteczne planowanie i czas...
 
XIII Targi eHandlu - AtomStore - Łukasz Plutecki
XIII Targi eHandlu - AtomStore - Łukasz PluteckiXIII Targi eHandlu - AtomStore - Łukasz Plutecki
XIII Targi eHandlu - AtomStore - Łukasz Plutecki
 
Analiza TestLink - narzędzie do zarzadzania testowaniem
Analiza TestLink - narzędzie do zarzadzania testowaniemAnaliza TestLink - narzędzie do zarzadzania testowaniem
Analiza TestLink - narzędzie do zarzadzania testowaniem
 
[TestWarez 2017] Zen testów wydajnościowych
[TestWarez 2017] Zen testów wydajnościowych[TestWarez 2017] Zen testów wydajnościowych
[TestWarez 2017] Zen testów wydajnościowych
 
Porażka nie wchodzi w grę, czyli o niezawodności
Porażka nie wchodzi w grę, czyli o niezawodnościPorażka nie wchodzi w grę, czyli o niezawodności
Porażka nie wchodzi w grę, czyli o niezawodności
 
Strategie automatyzacji testow
Strategie automatyzacji testowStrategie automatyzacji testow
Strategie automatyzacji testow
 
Tech cafe Microservices
Tech cafe MicroservicesTech cafe Microservices
Tech cafe Microservices
 
DATA CENTER CONVERGED 2012 WARSAW
DATA CENTER CONVERGED 2012 WARSAWDATA CENTER CONVERGED 2012 WARSAW
DATA CENTER CONVERGED 2012 WARSAW
 
Angular 4 pragmatycznie
Angular 4 pragmatycznieAngular 4 pragmatycznie
Angular 4 pragmatycznie
 
Analiza wydajności następnej generacji - przykłady.
Analiza wydajności następnej generacji - przykłady.Analiza wydajności następnej generacji - przykłady.
Analiza wydajności następnej generacji - przykłady.
 
8
88
8
 
Podstawy testowania oprogramowania INCO 2023.pptx
Podstawy testowania oprogramowania INCO 2023.pptxPodstawy testowania oprogramowania INCO 2023.pptx
Podstawy testowania oprogramowania INCO 2023.pptx
 
Flopsar high cpu-problem
Flopsar high cpu-problemFlopsar high cpu-problem
Flopsar high cpu-problem
 
DevOps - what I have learnt so far
DevOps - what I have learnt so far DevOps - what I have learnt so far
DevOps - what I have learnt so far
 
TGT#17 - Efektywne testy oprogramowania w środowisku Scrumowym - Marcin Kubecki
TGT#17 - Efektywne testy oprogramowania w środowisku Scrumowym - Marcin KubeckiTGT#17 - Efektywne testy oprogramowania w środowisku Scrumowym - Marcin Kubecki
TGT#17 - Efektywne testy oprogramowania w środowisku Scrumowym - Marcin Kubecki
 
Jak nie narobić sobie problemów korzystając z EntityFramework
Jak nie narobić sobie problemów korzystając z EntityFrameworkJak nie narobić sobie problemów korzystając z EntityFramework
Jak nie narobić sobie problemów korzystając z EntityFramework
 

More from Tieto Corporation

Vad blir nästä steg mot den smarta försäkringsindustrin
Vad blir nästä steg mot den smarta försäkringsindustrinVad blir nästä steg mot den smarta försäkringsindustrin
Vad blir nästä steg mot den smarta försäkringsindustrinTieto Corporation
 
Tieto Future Perspectives Report
Tieto Future Perspectives Report Tieto Future Perspectives Report
Tieto Future Perspectives Report Tieto Corporation
 
How to build a modern cloud environment
How to build a modern cloud environmentHow to build a modern cloud environment
How to build a modern cloud environmentTieto Corporation
 
Smartare affärer genom det bästa från molnet
Smartare affärer genom det bästa från molnetSmartare affärer genom det bästa från molnet
Smartare affärer genom det bästa från molnetTieto Corporation
 
Foresight 2020 - Industry trends and scenarios
Foresight 2020 - Industry trends and scenariosForesight 2020 - Industry trends and scenarios
Foresight 2020 - Industry trends and scenariosTieto Corporation
 
The cloud story in an infographic nutshell
The cloud story in an infographic nutshellThe cloud story in an infographic nutshell
The cloud story in an infographic nutshellTieto Corporation
 
Webinarie 2014 11-24 mer tid åt lärandet
Webinarie 2014 11-24 mer tid åt lärandetWebinarie 2014 11-24 mer tid åt lärandet
Webinarie 2014 11-24 mer tid åt lärandetTieto Corporation
 
Capital Markets Day 2014- presentation Radar
Capital Markets Day 2014- presentation RadarCapital Markets Day 2014- presentation Radar
Capital Markets Day 2014- presentation RadarTieto Corporation
 
Bankdagen 2018, Mia Söderlund och Jan Thungren, Tieto
Bankdagen 2018, Mia Söderlund och Jan Thungren, TietoBankdagen 2018, Mia Söderlund och Jan Thungren, Tieto
Bankdagen 2018, Mia Söderlund och Jan Thungren, TietoTieto Corporation
 
Bankdagen 2018, Maria José Jorda Garcia, BBVA
Bankdagen 2018, Maria José Jorda Garcia, BBVABankdagen 2018, Maria José Jorda Garcia, BBVA
Bankdagen 2018, Maria José Jorda Garcia, BBVATieto Corporation
 
Bankdagen 2018, Robin Teigland, Stockholm School of Economics
Bankdagen 2018, Robin Teigland, Stockholm School of EconomicsBankdagen 2018, Robin Teigland, Stockholm School of Economics
Bankdagen 2018, Robin Teigland, Stockholm School of EconomicsTieto Corporation
 
Bankdagen 2018, Johan Hallberg, IDC
Bankdagen 2018, Johan Hallberg, IDCBankdagen 2018, Johan Hallberg, IDC
Bankdagen 2018, Johan Hallberg, IDCTieto Corporation
 
Bankdagen 2018, Charlotte Svensson, Bonnier News
Bankdagen 2018, Charlotte Svensson, Bonnier NewsBankdagen 2018, Charlotte Svensson, Bonnier News
Bankdagen 2018, Charlotte Svensson, Bonnier NewsTieto Corporation
 

More from Tieto Corporation (14)

Vad blir nästä steg mot den smarta försäkringsindustrin
Vad blir nästä steg mot den smarta försäkringsindustrinVad blir nästä steg mot den smarta försäkringsindustrin
Vad blir nästä steg mot den smarta försäkringsindustrin
 
Tieto Future Perspectives Report
Tieto Future Perspectives Report Tieto Future Perspectives Report
Tieto Future Perspectives Report
 
How to build a modern cloud environment
How to build a modern cloud environmentHow to build a modern cloud environment
How to build a modern cloud environment
 
Smartare affärer genom det bästa från molnet
Smartare affärer genom det bästa från molnetSmartare affärer genom det bästa från molnet
Smartare affärer genom det bästa från molnet
 
Foresight 2020 - Industry trends and scenarios
Foresight 2020 - Industry trends and scenariosForesight 2020 - Industry trends and scenarios
Foresight 2020 - Industry trends and scenarios
 
Tieto digitalization story
Tieto digitalization storyTieto digitalization story
Tieto digitalization story
 
The cloud story in an infographic nutshell
The cloud story in an infographic nutshellThe cloud story in an infographic nutshell
The cloud story in an infographic nutshell
 
Webinarie 2014 11-24 mer tid åt lärandet
Webinarie 2014 11-24 mer tid åt lärandetWebinarie 2014 11-24 mer tid åt lärandet
Webinarie 2014 11-24 mer tid åt lärandet
 
Capital Markets Day 2014- presentation Radar
Capital Markets Day 2014- presentation RadarCapital Markets Day 2014- presentation Radar
Capital Markets Day 2014- presentation Radar
 
Bankdagen 2018, Mia Söderlund och Jan Thungren, Tieto
Bankdagen 2018, Mia Söderlund och Jan Thungren, TietoBankdagen 2018, Mia Söderlund och Jan Thungren, Tieto
Bankdagen 2018, Mia Söderlund och Jan Thungren, Tieto
 
Bankdagen 2018, Maria José Jorda Garcia, BBVA
Bankdagen 2018, Maria José Jorda Garcia, BBVABankdagen 2018, Maria José Jorda Garcia, BBVA
Bankdagen 2018, Maria José Jorda Garcia, BBVA
 
Bankdagen 2018, Robin Teigland, Stockholm School of Economics
Bankdagen 2018, Robin Teigland, Stockholm School of EconomicsBankdagen 2018, Robin Teigland, Stockholm School of Economics
Bankdagen 2018, Robin Teigland, Stockholm School of Economics
 
Bankdagen 2018, Johan Hallberg, IDC
Bankdagen 2018, Johan Hallberg, IDCBankdagen 2018, Johan Hallberg, IDC
Bankdagen 2018, Johan Hallberg, IDC
 
Bankdagen 2018, Charlotte Svensson, Bonnier News
Bankdagen 2018, Charlotte Svensson, Bonnier NewsBankdagen 2018, Charlotte Svensson, Bonnier News
Bankdagen 2018, Charlotte Svensson, Bonnier News
 

Automation of functional tests using JMeter (in Polish)

  • 2. © 2010 Tieto Corporation Table of contents • Wstęp teoretyczny 4 • Czym jest testowanie funkcjonalne? 5 • Po co automatyzować testy funkcjonalne? 6 • Po co automatyzować testy funkcjonalne? 7 • Jak zautomatyzować proces testowania funkcjonalnego? 8 • Na co zwrócić uwagę przy wyborze narzędzia do automatyzacji? 9 • Czym jest JMeter? 10 • Czym jest JMeter? 11 • Co można zrobić za pomocą JMetera? 12 • Właściwości JMetera 13 • Elementy Test Planu 14 • Thread Group 15 • Thread Group 16 • Ramp-up Period 17 • Controllers 18 • Samplery 19 • Logic Controllers 20 • Listenery 21 • Timery 22 2 Tomasz Stupak 2013-09-27
  • 3. © 2010 Tieto Corporation Spis Treści • Asercje 23 • Configuration Elements 24 • Pre-Processor Elements 25 • Post-Processor Elements 26 • Kolejność wykonywania 27 • Przykład 28 • Co będziemy testować? 29 • Pobranie i uruchomienie JMetera 30 • Konfiguracja liczby użytkowników 31 • Konfiguracja liczby użytkowników 32 • Dodanie HTTP Request Defaults 33 • Dodanie HTTP Request Defaults 34 • Obsługa Coockies 35 • Wysyłanie requestu 36 • Wysyłanie requestu 37 • Dodawanie Listenera 38 • Dodawanie Listenera 39 • Start / Stop Testu 40 • Wyniki testu 41 • W następnym odcinku 42 3 Tomasz Stupak 2013-09-27
  • 5. © 2010 Tieto Corporation Czym jest testowanie funkcjonalne? • Integralna część procesu zapewniania jakości – Stosowana w celu zweryfikowania czy aplikacja działa zgodnie z przyjętymi wcześniej założeniami • Ciąg testów emulujących interakcje pomiędzy użytkownikiem a aplikacją • Może obejmować testy manualne i automatyczne
  • 6. © 2010 Tieto Corporation Po co automatyzować testy funkcjonalne? • Czasochłonność testów manualnych • Pobieżność i pomijanie części funkcjonalności • Trudność wykonania testów regresyjnych
  • 7. © 2010 Tieto Corporation Po co automatyzować testy funkcjonalne? • Automatyzacja przyspiesza i polepsza jakość • Długofalowe rezultaty: – Możliwość ponownego wykorzystania – Przewidywalność i metodyczność – Produktywność
  • 8. © 2010 Tieto Corporation Jak zautomatyzować proces testowania funkcjonalnego? 1. Ustalenie aplikacji, które powinny podlegać automatyzacji 2. Wybranie właściwego podejścia testowego 3. Stworzenie planu testowania aplikacji 4. Stworzenie i wdrożenie testów automatycznych
  • 9. © 2010 Tieto Corporation Na co zwrócić uwagę przy wyborze narzędzia do automatyzacji? • Zintegrowane środowisko do automatyzacji testów • Dobra adaptacja do ciągłych zmian wymagań biznesowych • Wsparcie wielu technologii • Optymalizacja zapewnienia jakości w całym cyklu tworzenia oprogramowania • Rozwinięta społeczność użytkowników • Odpowiedni poziom wsparcia i usług dodatkowych
  • 11. © 2010 Tieto Corporation Czym jest JMeter? • Aplikacja typu open source napisana w języku Java • Zaprojektowany do: – Testów obciążeniowych – Testów funkcjonalnych – Mierzenia wydajności • Pierwotnie zaprojektowany do testowania aplikacji webowych
  • 12. © 2010 Tieto Corporation Co można zrobić za pomocą JMetera? • Testowanie statycznych i dynamicznych zasobów – Pliki, Servlety, skrypty Perl, Obiekty Java, bazy danych i zapytania do baz danych, serwery FTP i inne • Symulacja wysokiego obciążenia w celu przetestowania odporności • Graficzna analiza wydajności 12 Tomasz Stupak 2013-09-27
  • 13. © 2010 Tieto Corporation Właściwości JMetera • Testy na wielu typach serwerów: – HTTP(S), SOAP, bazy danych (przez JDBC), LDAP, JMS, poczta – SMTP, POP3 i IMAP • Pełna przenaszalność • Wielowątkowy framework • Interfejs graficzny • Analiza offline • Elastoczność – samplery, timery, wizualizacja, funkcje, skrypty • JMeter nie jest przeglądarką! 13 Tomasz Stupak 2013-09-27
  • 15. © 2010 Tieto Corporation Thread Group Test Plan (RMB) -> Add -> Threads (Users) -> Thread Group • Punkt początkowy każdego test planu • Kontroluje ilość wątków używanych przy wykonywaniu testu • Symuluje wielu użytkowników łączących się z serwerem • Pozwala: • Okreslić liczbę wątków • Określić czas uruchamiania • Określić ilość iteracji testu • Wszystkie kontrolery i samplery muszą być pod daną grupą wątków • Inne elementy mogą być umieszczone bezpośrednio pod test planem (będą dotyczyć wszystkich grup wątków) 2013-09-2715 Tomasz Stupak
  • 16. © 2010 Tieto Corporation Thread Group 16 Tomasz Stupak 2013-09-27 Liczba wątków Czas uruchamiania Liczba iteracji
  • 17. © 2010 Tieto Corporation Ramp-up Period • Określa po jakim czasie uruchomią się wszystkie wątki. • Przykład: • Threads: 10 • Ramp-Up: 100 sekund • Po 100 sekundach uruchomi się 10 wątków • Każdy wątek będzie uruchamiał się 10 sekund po poprzednim (100s/10) • Czas musi być odpowiednio długi, żeby nie przeciążyć JMetera już na początku • Czas musi być odpowiednio krótki, żeby ostatni wątek uruchomił się przed końcem działania pierwszego (chyba, że taki scenariusz jest zamierzony) 17 Tomasz Stupak 2013-09-27
  • 18. © 2010 Tieto Corporation Controllers • JMeter oferuje 2 rodzaje kontrolerów • Samplery • Logical Controllers (kontrolery logiczne) • Samplery: • Używane przez JMeter do wysyłania requestów do serwera • Można je dostosować za pomocą Configuration Elements • Logical Controllers: • Używane do określenia logiki decydującej o tym, kiedy wysłać request 18 Tomasz Stupak 2013-09-27
  • 19. © 2010 Tieto Corporation Samplery Thread Group-> Add -> Sampler • Wysyła request i czeka na odpowiedź serwera • Przetwarzane w kolejności położenia na drzewie • Można je dostosować za pomocą kontrolerów logicznych • Przykłady: • FTP Request • HTTP Request • JDBC Request • Java object request • LDAP Request • SOAP/XML-RPC Request • WebService (SOAP) Request 19 Tomasz Stupak 2013-09-27
  • 20. © 2010 Tieto Corporation Logic Controllers Thread Group -> Add -> Logic Controller • Określają logikę decydującą o tym, kiedy wysłać request • Mogą zmienić kolejność wykonywania requestów • Mogą modyfikować requesty • Mogą powodować powtórzenie wykonania requestów • Można je łączyć w celu uzyskania danych rezultatów • Przykłady: • ForEach Controller • If Controller • Loop Controller • Random Controller • Recording Controller 20 Tomasz Stupak 2013-09-27
  • 21. © 2010 Tieto Corporation Listenery Test Plan / Thread Group -> Add -> Listener • Wyświetlają rezultaty wykonania zadań JMetera, takie jak np: • Czasy odpowiedzi • Szczegóły zapytania i odpowiedź • Możliwość zapisu danych do pliku • Każdy listener przechowuje te same dane, róznica polega na sposobie wyświetlania ich • Przykłady: • View Results Tree • Graph Results • Aggregate Report 21 Tomasz Stupak 2013-09-27
  • 22. © 2010 Tieto Corporation Timery Test Plan / Thread Group -> Add -> Timer • Używane do określenia przerw między wykonywaniem requestów • Domyślnie JMeter wysyła requesty bez przerw, co może spowodować przeciążenie serwera • Gdy użyty jest więcej niż jeden timer, JMeter sumuje ich wartości • Dodawane jako podelementy samplerów lub kontrolerów • Przykłady: • Constant Timer • Gaussian Random Timer • Synchronizing Timer 22 Tomasz Stupak 2013-09-27
  • 23. © 2010 Tieto Corporation Asercje Test Plan / Thread Group -> Add -> Assertions • Używane do sprawdzania poprawności odpowiedzi serwera • „Testują” czy aplikacja zwraca wyniki zgodnie z oczekiwaniami • Przykład: • Można sprawdzić, czy odpowiedź zawiera dany tekst • Możliwość wykorzystania wyrażeń regularnych • Dodawane jako podelementy Samplerów • W celu wyświetlenia wyników asercji, używa się litenera: Assertion Results • Przykłady: • Response Assertion • Size Assertion 23 Tomasz Stupak 2013-09-27
  • 24. © 2010 Tieto Corporation Configuration Elements Test Plan / Thread Group -> Add -> Config Element • Łączą się z Samplerami • Same z siebie nie wysyłają requestów, ale mogą je modyfikować • Mają zastosowanie tylko w głązi, w której są umieszczone • Wyjątek: User Defined Variables, który przetwarzany jest na początku testu, bez względu na to, gdzie jest umieszczony • Przykłady: • HTTP Coockie Manager • HTTP Request Defaults • HTTP Authorization Manager • Counter 24 Tomasz Stupak 2013-09-27
  • 25. © 2010 Tieto Corporation Pre-Processor Elements Test Plan / Thread Group -> Add -> Pre Processors • Wykonują daną akcję przed danym requestem • Gdy dodane jako podelement danego Samplera, wykonuwane są przed nim • Najczęściej używane do modyfikacji requestu przed jego wykonaniem (przez np. zmianę wartości zmiennej) • Przykłady: • User Parameters • HTTP URL Re-writing Modifier 25 Tomasz Stupak 2013-09-27
  • 26. © 2010 Tieto Corporation Post-Processor Elements Test Plan / Thread Group -> Add -> Post Processors • Wykonują daną akcję po danym requeście • Gdy dodane jako podelement danego Samplera, wykonywane są po nim • Najczęściej używane do przetwarzania danych z odpowiedzi danego requestu, np. wyciągnięcia wartości • Przykłady: • Regular Expression Extractor • XPath Extractor 26 Tomasz Stupak 2013-09-27
  • 27. © 2010 Tieto Corporation Kolejność wykonywania 1. Configuration elements 2. Pre-Processors 3. Timery 4. Samplery 5. Post-Processors (o ile wynik requestu jest różny od nulla) 6. Asercje (o ile wynik requestu jest różny od nulla) 7. Listnery (o ile wynik requestu jest różny od nulla) • Timery, Asercje, Pre i Post-Procesory wykonywane są tylko wtedy, gdy są podelementem Samplera • Samplery i Logic Controllers wykonywane są w kolejności ułożenia na drzewie 27 Tomasz Stupak 2013-09-27
  • 28. ©2010TietoCorporation Przykład Podstawy JMeter – budowanie test planu z użyciem podstawowych elementów 28 2013-09-27
  • 29. © 2010 Tieto Corporation Co będziemy testować? • Przykładowy Test Plan do testowania stron www • 5 użytkowników wysyła requesty do 2 stron, użytkownicy przeprowadzają test dwukrotnie (5 userów * 2 requesty * 2 = 20 requestów HTTP) • Używane elementy: • Thread Group • HTTP request • HTTP Request Defaults • HTTP Coockie Manager • Graph Results • View Results Tree • View Results in Table • Aggregate Graph
  • 30. © 2010 Tieto Corporation Pobranie i uruchomienie JMetera • Strona pobierania Jmetera • Uruchomienie: /bin/jmeter.bat 30 Tomasz Stupak 2013-09-27
  • 31. © 2010 Tieto Corporation Konfiguracja liczby użytkowników • Test Plan -> Add -> Threads (users) -> Thread Group • Opcjonalnie można zmienić nazwę (pole Name) • Numer of Threads (users): 5 • Ramp-Up Period (in seconds): 1 • Loop Count: 2 • UWAGA: W odróżnieniu od większości aplikacji (gdzie zmiany trzeba potwierdzać), JMeter automatycznie wprowadza wpisane zmiany 31 Tomasz Stupak 2013-09-27
  • 32. © 2010 Tieto Corporation Konfiguracja liczby użytkowników 32 Tomasz Stupak 2013-09-27
  • 33. © 2010 Tieto Corporation Dodanie HTTP Request Defaults • Thread Group -> Add -> Config Element -> HTTP Request Defaults • Zapytania będą wysyłane do tego samego serwera, więc: Server Name or IP: bash.org.pl • UWAGA: Element HTTP Request Defaults nie wysyła requestów HTTP, tylko definiuje domyślne wartości, używane przez elementy wysyłające takie requesty 33 Tomasz Stupak 2013-09-27
  • 34. © 2010 Tieto Corporation Dodanie HTTP Request Defaults 34 Tomasz Stupak 2013-09-27
  • 35. © 2010 Tieto Corporation Obsługa Coockies • Prawie wszystkie strony www używają plików coockies • Do obsługi coockies w JMeter do Test Planu dodaje się HTTP Coockie Manager • W ten sposób każdy wątek będzie miał swój plik coockie, używany przez zawarte w nim HTTP • Thread Group -> Add -> Config Element -> HTTP Coockie Manager 35 Tomasz Stupak 2013-09-27
  • 36. © 2010 Tieto Corporation Wysyłanie requestu • W naszym Test Planie wysyłamy 2 requesty HTTP: • http://bash.org.pl/ • http://bash.org.pl/latest • Thread Group -> Add -> Sampler -> HTTP Request • Pole Server Name or IP pozostawiamy puste, gdyż adres ustawiony jest w elemencie HTTP Request Defaults • W pierwszym requeście pole Path zostawiamy puste, gdyż wysyłamy zapytanie do strony głównej • W drugim requeście ustawiamy odpowiednią ścieżkę: • Patch: /latest 36 Tomasz Stupak 2013-09-27
  • 37. © 2010 Tieto Corporation Wysyłanie requestu 37 Tomasz Stupak 2013-09-27
  • 38. © 2010 Tieto Corporation Dodawanie Listenera • Listner odpowiada za przechowywanie wyników requestu HTTP i wyświetlanie ich w formie zależnej od typu Listenera • Test Plan -> Add -> Listener • W naszym teście dodamy 4 różne Listenery: • Graph Results • View Results Tree • View Results in Table • Aggregate Report 38 Tomasz Stupak 2013-09-27
  • 39. © 2010 Tieto Corporation Dodawanie Listenera 39 Tomasz Stupak 2013-09-27
  • 40. © 2010 Tieto Corporation Start / Stop Testu • Start testu: • Run -> Start • CTRL+R • Stop testu: • Run -> Stop • CTRL+. • Wyczyszczenie wyników • Run -> Clear All • CTRL+E 40 Tomasz Stupak 2013-09-27
  • 41. © 2010 Tieto Corporation Wyniki testu 41 Tomasz Stupak 2013-09-27
  • 42. © 2010 Tieto Corporation W następnym odcinku • JMeter advanced – wykorzytanie bardziej skomplikowanych elementów aplikacji: • Nagrywanie skryptów za pomocą elementu HTTP Proxy Server • Parametryzacja testu • Użycie asercji • Użycie Logic Controllers • Użycie Timerów • Symulacja „żywych” użytkowników 42 Tomasz Stupak 2013-09-27