SlideShare una empresa de Scribd logo
1 de 40
Performance TestsPerformance Tests
Najlepsze praktykiNajlepsze praktyki
Największe wpadkiNajwiększe wpadki
wydajnościowe w Polscewydajnościowe w Polsce
w 2014w 2014
System PKW – Wybory Samorządowe 2014
Główne wyzwania/pytaniaGłówne wyzwania/pytania
● Jak mierzyć wydajność ?
● Gdzie zmierzyć wydajność ?
● Czym zmierzyć wydajność ?
● Kto powinien przeprowadzać testy wydajności ?
● Kto powinien interpetować wyniki testów ?
● Jak skalować wyniki testów ?
Rodzaje testówRodzaje testów
Load
Testing
Stress
Testing
Testy
wolumenowe
Testy
komponentów
Badają zachowanie aplikacji podczas normalnej
eksploatacji
Wykrywają granicy wydajnościową aplikacji
Określąją ilości użytkowników/danych przy której
pracuje stabilnie
Badają zachowanie poszczególnych warstw aplikacji
Czas odpowiedzi Jaki jest czas odpowiedzi ?
Jak stabilny jest system ?
Jaka konfiguracja jest najlepsza ?
W jakim momencie aplikacja zaczyna
zwalniać ?
Jaki jest powód „bottlenecka” ?
Czy nowa wersja aplikacji ma wpływ
na czasy odpowiedzi ?
Jaki jest najlepszy sprzęt dla
aplikacji ?
Główne cele testówGłówne cele testów
wydajnościowychwydajnościowych
Stabilność
Konfigurację
Pojemność
Identyfikacja wąskich gardeł
Porównanie
Skalowanie sprzętu
Jak mierzyć wydajność ?Jak mierzyć wydajność ?
TRANSAKCJETRANSAKCJE
MIARY TECHNICZNEMIARY TECHNICZNE
(Liczniki)(Liczniki)
TransakcjaTransakcja
● Jest to zmiana stanu aplikcji
● Jest to sekwencja kroków w przypadku
testowym
Numer kroku Krok Oczekiwany rezultat
1 W pole login wpisz login Pole zostało wypełnione
2 W pole hasło wpisz hasło Pole zostało wypełnione
3 Wcisnij Przycisk zaloguj Widzimy „Ekran powitania
zalogowanego
użytkownika”
Przykład transakcjiPrzykład transakcji
Zaloguj
Podaj Login Kuba
Podaj Hasło ***************
ZalogujZaloguj
Witaj Jakub
Przykład transakcjiPrzykład transakcji
Zaloguj
Podaj Login Kuba
Podaj Hasło ***************
ZalogujZaloguj
Witaj Jakub
Transaction TimeTransaction Time
User TimeUser Time
Miary techniczneMiary techniczne
(Liczniki)(Liczniki)
● Zużycie zasobów systemowych
(CPU, Pamięć, Dyski, Ilość procesów oczekujących, Context Switch )
● Zużycie zasobów serwerów aplikacyjnych
(mechanizmy GC, zużycie przestrzeni pamięci w JVM, pule połączeń
do bazy danych ….)
Monitorowanie a ProfilowanieMonitorowanie a Profilowanie
MonitorowanieMonitorowanie
Jest metodą badania nie inwazyjną dla systemu
ProfilowanieProfilowanie
Jest metodą badania inwazyjną dla systemu
Czym monitorować miaryCzym monitorować miary
techniczne ?techniczne ?
Czym profilować ?Czym profilować ?
Diagnostic Server
Czym profilować ?Czym profilować ?
Visual JVM
Gdzie mierzyć wydajność ?Gdzie mierzyć wydajność ?
Środowisko do testówŚrodowisko do testów
wydajnościowychwydajnościowych
● Musi być zbliżone architekturą do środowiska
produkcyjnego
● Musi posiadać identyczne ilości danych w
bazach jak na systemie produkcyjnym
● Musi posiadać wsparcie i obsługę
administratorów
● Musi być STABILNE !!!!STABILNE !!!!
Architektura wzorzecArchitektura wzorzec
ProdukcjaProdukcja TestyTesty
Linux Red Hat
Sun Solaris
WebSphere
Application Server
Enterprice Service Bus
Linux Red Hat
Oracle Database 11
8 GB
4 CPU
8 GB
8 CPU
8 GB
16 CPU
Linux Red Hat
Sun Solaris
WebSphere
Application Server
Enterprice Service Bus
Linux Red Hat
Oracle Database 11
8 GB
4 CPU
8 GB
8 CPU
8 GB
16 CPU
Linux Red Hat
Sun Solaris
Architektura antywzorzecArchitektura antywzorzec
WebSphere
Application Server
Enterprice Service Bus
Linux Red Hat
Oracle Database 11
ProdukcjaProdukcja
Windows
JBoss
Oracle XE
TestyTesty
MockUp
8 GB
4 CPU
8 GB
8 CPU
8 GB
16 CPU
2 GB 4 CPU
Architektura – dobra praktykaArchitektura – dobra praktyka
Linux Red Hat
Sun Solaris
WebSphere
Application Server
Enterprice Service Bus
Linux Red Hat
Oracle Database 11
8 GB
4 CPU
8 GB
8 CPU
8 GB
16 CPU
Linux
Linux
WebSphere
Application Server
Enterprice Service Bus
Linux
Oracle Database 11
8 GB
4 CPU
4 GB
4 CPU
4 GB
4 CPU
ProdukcjaProdukcja TestyTesty
Wsparcie środowiskaWsparcie środowiska
Obowiązki podczas testów:
● Monitoring zasobów
● Profilowanie środowiska
● Restarty środowiska
● Przebudowa i informowanie o zmianach
Stabilne środowiskoStabilne środowisko
Cechy stabilnego środowiska:
● Znamy liczbę użytkowników jaką to środowisko
jest wstanie wytrzymać
● Środowiska działa zgodnie z umową SLA
Jak zbadać stabilnośćJak zbadać stabilność
środowiska ?środowiska ?
Pre-Testy
Scenariusz 1 – chcemy aby przez 1 godzinę wykonało się 10000 tys. transakcji
IlośćTransakcji
Kolejne pre-Testy
1
2
3
4
5
6
300 VUserów 250 VUserów 200 VUserów 200 VUserów 180 VUserów 150 VUserów
7
150 VUserów
3
Czym testować ?Czym testować ?
Testerzy
Load Generation System Under Test
Czy mam takie zasoby ?
• Ludzie
• Komputery
Jak synchronizować testerów?
Jak zbierać i analizować ?
Jak zrobić potwarzalny test?
Analiza?
123.20
Wciskamy
„Zapisz” !!
!
Dawno dawno temu …..Dawno dawno temu …..
Web server Database
server
Koordynator
Dobre, używane i za darmoDobre, używane i za darmo
Zalety:
1. Jest darmowy
2. Dodatkowe pluginy
3. Możliwość testowania Usług
SOAP/REST
4. Wykorzystanie XSLT do
raportów
Wady:
1. Serwisowanie skryptów
2. Zużycie pamięci
Bardzo dobre używane i nie zaBardzo dobre używane i nie za
darmodarmo
Zalety:
1. Obsługa wielu technologii
2. Gotowy monitoring
3. Możliwość programowanie
automatów
Wady:
1. Cena
2. System licencyjny
Bardzo dobre używane i nie zaBardzo dobre używane i nie za
darmodarmo
Zalety:
1. Obsługa wielu technologii
2. Gotowy monitoring
3. Obsługa usług REST/SOAP
4. Obsługa wielu języków
Wady:
1. Cena
2. System licencyjny
Nowy, za darmo z przyszłościąNowy, za darmo z przyszłością
Zalety:
1. Obsługa języka Scala
2. Raportowanie Wady:
1. Brak wsparcia Load
Balancerów
2. Wsparcie tylko systemów
WWW
Narzędzie do testów usługNarzędzie do testów usług
SOAP/RESTSOAP/REST
Zalety:
Testowanie usług REST/SOAP
Prosty interfejs
Obługa języka groovy
Łatwe zarządzanie zmianą
Wady:
Brak
Jak interpretować wyniki oraz jakJak interpretować wyniki oraz jak
je skalować ?je skalować ?
Test referencyjny/TestTest referencyjny/Test
porównawczyporównawczy
MetodaMetoda
TR/TPTR/TP
Ilość transakcji
IlośćTransakcji
Kolejne Testy
1
2
3
4
5
6
Test referencyjny 1
01-2014
Test referencyjny 2
01-2014
Test referencyjny 3
01-2014
Trend
Test powtórkowy 1
01-2014
Test powtórkowy 2
01-2014
Test powtórkowy 3
01-2014
Przykład 1Przykład 1
Ilość transakcji
IlośćTransakcji
Kolejne Testy
1
2
3
4
5
6
Test referencyjny 1
01-2014
Test referencyjny 2
01-2014
Test referencyjny 3
01-2014
Trend
Test powtórkowy 1
01-2014
Test powtórkowy 2
01-2014
Test powtórkowy 3
01-2014
Zużycie CPU
[%]Zużycia
Kolejne Testy
1
2
3 4
5
6
Test referencyjny 1
01-2014
Test referencyjny 2
01-2014
Test referencyjny 3
01-2014
Trend
Test powtórkowy 1
01-2014
Test powtórkowy 2
01-2014
Test powtórkowy 3
01-2014
Przykład 2Przykład 2
Na jakich statystykach oprzećNa jakich statystykach oprzeć
trend ?trend ?
Statystyki biznesoweStatystyki biznesowe
●
Performance/RepeatabilityPerformance/Repeatability - Czas odpowiedzi
transakcji [s]
●
AvailabilityAvailability - Ilość transakcji na sekundę
● Stability – ilość błędów (time-out,
niezkończone transakcje) [il]
● Capacity – ilość wykonanych transakcji [il]
Kto powinienKto powinien
przeprowadzać testy ?przeprowadzać testy ?
Tester wydajnościTester wydajności
● Powinien znać bardzo dobrze narzędzia do testów
wydajnościowych
● Powinien znać bardzo dobrze architekturę systemu
● Powinien opanować sztukę monitoringu
● Powinien być w kontakcie z administratorami jak i
programistami
Kto powinien interpetowaćKto powinien interpetować
wyniki ?wyniki ?
Administratorzy i developerzyAdministratorzy i developerzy
Miary techniczne
BiznesBiznes
TransakcjeTransakcje
Praktyczny pokaz testu
wydajnościowego
KONIEC
PYTANIA ?

Más contenido relacionado

La actualidad más candente

Software Configuration Management
Software Configuration ManagementSoftware Configuration Management
Software Configuration ManagementJeyanthiR
 
Webinar: Selenium WebDriver - Automation Uncomplicated
Webinar: Selenium WebDriver - Automation UncomplicatedWebinar: Selenium WebDriver - Automation Uncomplicated
Webinar: Selenium WebDriver - Automation UncomplicatedEdureka!
 
Infrastructure optimization for seismic processing (eng)
Infrastructure optimization for seismic processing (eng)Infrastructure optimization for seismic processing (eng)
Infrastructure optimization for seismic processing (eng)Vsevolod Shabad
 
Performance testing and j meter
Performance testing and j meterPerformance testing and j meter
Performance testing and j meterPurna Chandar
 
Performance and load testing
Performance and load testingPerformance and load testing
Performance and load testingsonukalpana
 
Simplifying QA Process With Jira
Simplifying QA Process With JiraSimplifying QA Process With Jira
Simplifying QA Process With JiraICHOFU VICTOR
 
Jenkins for java world
Jenkins for java worldJenkins for java world
Jenkins for java worldAshok Kumar
 

La actualidad más candente (13)

Automation test scripting guidelines
Automation test scripting guidelines Automation test scripting guidelines
Automation test scripting guidelines
 
Software Configuration Management
Software Configuration ManagementSoftware Configuration Management
Software Configuration Management
 
Webinar: Selenium WebDriver - Automation Uncomplicated
Webinar: Selenium WebDriver - Automation UncomplicatedWebinar: Selenium WebDriver - Automation Uncomplicated
Webinar: Selenium WebDriver - Automation Uncomplicated
 
Infrastructure optimization for seismic processing (eng)
Infrastructure optimization for seismic processing (eng)Infrastructure optimization for seismic processing (eng)
Infrastructure optimization for seismic processing (eng)
 
Performance testing and j meter
Performance testing and j meterPerformance testing and j meter
Performance testing and j meter
 
Performance and load testing
Performance and load testingPerformance and load testing
Performance and load testing
 
J Meter Intro
J Meter IntroJ Meter Intro
J Meter Intro
 
Performance Engineering Basics
Performance Engineering BasicsPerformance Engineering Basics
Performance Engineering Basics
 
Selenium introduction
Selenium introductionSelenium introduction
Selenium introduction
 
Simplifying QA Process With Jira
Simplifying QA Process With JiraSimplifying QA Process With Jira
Simplifying QA Process With Jira
 
Jenkins for java world
Jenkins for java worldJenkins for java world
Jenkins for java world
 
How google tests software
How google tests softwareHow google tests software
How google tests software
 
Introduction to qualitia software
Introduction to qualitia softwareIntroduction to qualitia software
Introduction to qualitia software
 

Destacado

Integracja środowiska testowego z użyciem Robot Framework, TrojQA 2014-12-16
Integracja środowiska testowego z użyciem Robot Framework, TrojQA 2014-12-16Integracja środowiska testowego z użyciem Robot Framework, TrojQA 2014-12-16
Integracja środowiska testowego z użyciem Robot Framework, TrojQA 2014-12-16Krzysztof Synak
 
Automation of functional tests using JMeter (in Polish)
Automation of functional tests using JMeter (in Polish)Automation of functional tests using JMeter (in Polish)
Automation of functional tests using JMeter (in Polish)Tieto Corporation
 
Środowisko testowe pod REST-a
Środowisko testowe pod REST-aŚrodowisko testowe pod REST-a
Środowisko testowe pod REST-aFuture Processing
 
JavaStart - kurs Java Podstawy
JavaStart - kurs Java PodstawyJavaStart - kurs Java Podstawy
JavaStart - kurs Java PodstawyJavaStart
 
Magento implementation - by Divante.co
Magento implementation - by Divante.coMagento implementation - by Divante.co
Magento implementation - by Divante.coDivante
 

Destacado (8)

Integracja środowiska testowego z użyciem Robot Framework, TrojQA 2014-12-16
Integracja środowiska testowego z użyciem Robot Framework, TrojQA 2014-12-16Integracja środowiska testowego z użyciem Robot Framework, TrojQA 2014-12-16
Integracja środowiska testowego z użyciem Robot Framework, TrojQA 2014-12-16
 
Automation of functional tests using JMeter (in Polish)
Automation of functional tests using JMeter (in Polish)Automation of functional tests using JMeter (in Polish)
Automation of functional tests using JMeter (in Polish)
 
Dodatkowe narzędzia do testów wydajnościowych
Dodatkowe narzędzia do testów wydajnościowychDodatkowe narzędzia do testów wydajnościowych
Dodatkowe narzędzia do testów wydajnościowych
 
Test manager - who is that?
Test manager - who is that?Test manager - who is that?
Test manager - who is that?
 
Środowisko testowe pod REST-a
Środowisko testowe pod REST-aŚrodowisko testowe pod REST-a
Środowisko testowe pod REST-a
 
Telecom OSS/BSS - Automation
Telecom OSS/BSS - Automation Telecom OSS/BSS - Automation
Telecom OSS/BSS - Automation
 
JavaStart - kurs Java Podstawy
JavaStart - kurs Java PodstawyJavaStart - kurs Java Podstawy
JavaStart - kurs Java Podstawy
 
Magento implementation - by Divante.co
Magento implementation - by Divante.coMagento implementation - by Divante.co
Magento implementation - by Divante.co
 

Similar a Testy wydajnościowe - najlepsze praktyki - Kuba Gajda

[Quality Meetup#12] P. Podsiadlik, R. Peroń - Testy regresji z perspektywy pi...
[Quality Meetup#12] P. Podsiadlik, R. Peroń - Testy regresji z perspektywy pi...[Quality Meetup#12] P. Podsiadlik, R. Peroń - Testy regresji z perspektywy pi...
[Quality Meetup#12] P. Podsiadlik, R. Peroń - Testy regresji z perspektywy pi...Future Processing
 
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
 
Wprowadzenie do testów wydajnościowych w k6
Wprowadzenie do testów wydajnościowych w k6Wprowadzenie do testów wydajnościowych w k6
Wprowadzenie do testów wydajnościowych w k6The Software House
 
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
 
Produkcja aplikacji internetowych
Produkcja aplikacji internetowychProdukcja aplikacji internetowych
Produkcja aplikacji internetowychTomasz Borowski
 
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
 
Perl. Testowanie. Zapiski programisty
Perl. Testowanie. Zapiski programistyPerl. Testowanie. Zapiski programisty
Perl. Testowanie. Zapiski programistyWydawnictwo Helion
 
Jak zapewnić jakość aplikacjom na sfragmentowanego Androida?
Jak zapewnić jakość aplikacjom na sfragmentowanego Androida?Jak zapewnić jakość aplikacjom na sfragmentowanego Androida?
Jak zapewnić jakość aplikacjom na sfragmentowanego Androida?Damian Szczurek
 
Automatyczne testy end-to-end aplikacji JavaScript.
Automatyczne testy end-to-end aplikacji JavaScript.Automatyczne testy end-to-end aplikacji JavaScript.
Automatyczne testy end-to-end aplikacji JavaScript.Future Processing
 
Cometari Dedicated Solutions Oferta ogólna
Cometari Dedicated Solutions Oferta ogólnaCometari Dedicated Solutions Oferta ogólna
Cometari Dedicated Solutions Oferta ogólnaJakub Hajek
 
GET.NET - Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...
GET.NET -  Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...GET.NET -  Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...
GET.NET - Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...Michal Furmankiewicz
 
Jak stworzyć udany system informatyczny
Jak stworzyć udany system informatycznyJak stworzyć udany system informatyczny
Jak stworzyć udany system informatycznyqbeuek
 
Marek Sokołowski @ "Usługi PaaS oraz IaaS - przegląd dostępnego osprzętu i am...
Marek Sokołowski @ "Usługi PaaS oraz IaaS - przegląd dostępnego osprzętu i am...Marek Sokołowski @ "Usługi PaaS oraz IaaS - przegląd dostępnego osprzętu i am...
Marek Sokołowski @ "Usługi PaaS oraz IaaS - przegląd dostępnego osprzętu i am...Ewa Stepien
 
KraQA #22, Filip Cynarski - Selenium Grid w chmurze Amazon Web Services
KraQA #22, Filip Cynarski -  Selenium Grid w chmurze Amazon Web ServicesKraQA #22, Filip Cynarski -  Selenium Grid w chmurze Amazon Web Services
KraQA #22, Filip Cynarski - Selenium Grid w chmurze Amazon Web Serviceskraqa
 

Similar a Testy wydajnościowe - najlepsze praktyki - Kuba Gajda (20)

university day 1
university day 1university day 1
university day 1
 
[Quality Meetup#12] P. Podsiadlik, R. Peroń - Testy regresji z perspektywy pi...
[Quality Meetup#12] P. Podsiadlik, R. Peroń - Testy regresji z perspektywy pi...[Quality Meetup#12] P. Podsiadlik, R. Peroń - Testy regresji z perspektywy pi...
[Quality Meetup#12] P. Podsiadlik, R. Peroń - Testy regresji z perspektywy pi...
 
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.
 
Dlaczego flopsar
Dlaczego flopsarDlaczego flopsar
Dlaczego flopsar
 
[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
 
Wprowadzenie do testów wydajnościowych w k6
Wprowadzenie do testów wydajnościowych w k6Wprowadzenie do testów wydajnościowych w k6
Wprowadzenie do testów wydajnościowych w k6
 
Strategie automatyzacji testow
Strategie automatyzacji testowStrategie automatyzacji testow
Strategie automatyzacji testow
 
Testowanie na 101 sposobów
Testowanie na 101 sposobówTestowanie na 101 sposobów
Testowanie na 101 sposobów
 
Tech cafe Microservices
Tech cafe MicroservicesTech cafe Microservices
Tech cafe Microservices
 
Produkcja aplikacji internetowych
Produkcja aplikacji internetowychProdukcja aplikacji internetowych
Produkcja aplikacji internetowych
 
Podstawy testowania oprogramowania INCO 2023.pptx
Podstawy testowania oprogramowania INCO 2023.pptxPodstawy testowania oprogramowania INCO 2023.pptx
Podstawy testowania oprogramowania INCO 2023.pptx
 
Perl. Testowanie. Zapiski programisty
Perl. Testowanie. Zapiski programistyPerl. Testowanie. Zapiski programisty
Perl. Testowanie. Zapiski programisty
 
Jak zapewnić jakość aplikacjom na sfragmentowanego Androida?
Jak zapewnić jakość aplikacjom na sfragmentowanego Androida?Jak zapewnić jakość aplikacjom na sfragmentowanego Androida?
Jak zapewnić jakość aplikacjom na sfragmentowanego Androida?
 
Testowanie automatyczne 2024 INCO Academy
Testowanie automatyczne 2024 INCO AcademyTestowanie automatyczne 2024 INCO Academy
Testowanie automatyczne 2024 INCO Academy
 
Automatyczne testy end-to-end aplikacji JavaScript.
Automatyczne testy end-to-end aplikacji JavaScript.Automatyczne testy end-to-end aplikacji JavaScript.
Automatyczne testy end-to-end aplikacji JavaScript.
 
Cometari Dedicated Solutions Oferta ogólna
Cometari Dedicated Solutions Oferta ogólnaCometari Dedicated Solutions Oferta ogólna
Cometari Dedicated Solutions Oferta ogólna
 
GET.NET - Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...
GET.NET -  Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...GET.NET -  Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...
GET.NET - Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...
 
Jak stworzyć udany system informatyczny
Jak stworzyć udany system informatycznyJak stworzyć udany system informatyczny
Jak stworzyć udany system informatyczny
 
Marek Sokołowski @ "Usługi PaaS oraz IaaS - przegląd dostępnego osprzętu i am...
Marek Sokołowski @ "Usługi PaaS oraz IaaS - przegląd dostępnego osprzętu i am...Marek Sokołowski @ "Usługi PaaS oraz IaaS - przegląd dostępnego osprzętu i am...
Marek Sokołowski @ "Usługi PaaS oraz IaaS - przegląd dostępnego osprzętu i am...
 
KraQA #22, Filip Cynarski - Selenium Grid w chmurze Amazon Web Services
KraQA #22, Filip Cynarski -  Selenium Grid w chmurze Amazon Web ServicesKraQA #22, Filip Cynarski -  Selenium Grid w chmurze Amazon Web Services
KraQA #22, Filip Cynarski - Selenium Grid w chmurze Amazon Web Services
 

Testy wydajnościowe - najlepsze praktyki - Kuba Gajda

  • 1. Performance TestsPerformance Tests Najlepsze praktykiNajlepsze praktyki
  • 2. Największe wpadkiNajwiększe wpadki wydajnościowe w Polscewydajnościowe w Polsce w 2014w 2014 System PKW – Wybory Samorządowe 2014
  • 3. Główne wyzwania/pytaniaGłówne wyzwania/pytania ● Jak mierzyć wydajność ? ● Gdzie zmierzyć wydajność ? ● Czym zmierzyć wydajność ? ● Kto powinien przeprowadzać testy wydajności ? ● Kto powinien interpetować wyniki testów ? ● Jak skalować wyniki testów ?
  • 4. Rodzaje testówRodzaje testów Load Testing Stress Testing Testy wolumenowe Testy komponentów Badają zachowanie aplikacji podczas normalnej eksploatacji Wykrywają granicy wydajnościową aplikacji Określąją ilości użytkowników/danych przy której pracuje stabilnie Badają zachowanie poszczególnych warstw aplikacji
  • 5. Czas odpowiedzi Jaki jest czas odpowiedzi ? Jak stabilny jest system ? Jaka konfiguracja jest najlepsza ? W jakim momencie aplikacja zaczyna zwalniać ? Jaki jest powód „bottlenecka” ? Czy nowa wersja aplikacji ma wpływ na czasy odpowiedzi ? Jaki jest najlepszy sprzęt dla aplikacji ? Główne cele testówGłówne cele testów wydajnościowychwydajnościowych Stabilność Konfigurację Pojemność Identyfikacja wąskich gardeł Porównanie Skalowanie sprzętu
  • 6. Jak mierzyć wydajność ?Jak mierzyć wydajność ? TRANSAKCJETRANSAKCJE MIARY TECHNICZNEMIARY TECHNICZNE (Liczniki)(Liczniki)
  • 7. TransakcjaTransakcja ● Jest to zmiana stanu aplikcji ● Jest to sekwencja kroków w przypadku testowym Numer kroku Krok Oczekiwany rezultat 1 W pole login wpisz login Pole zostało wypełnione 2 W pole hasło wpisz hasło Pole zostało wypełnione 3 Wcisnij Przycisk zaloguj Widzimy „Ekran powitania zalogowanego użytkownika”
  • 8. Przykład transakcjiPrzykład transakcji Zaloguj Podaj Login Kuba Podaj Hasło *************** ZalogujZaloguj Witaj Jakub
  • 9. Przykład transakcjiPrzykład transakcji Zaloguj Podaj Login Kuba Podaj Hasło *************** ZalogujZaloguj Witaj Jakub Transaction TimeTransaction Time User TimeUser Time
  • 10. Miary techniczneMiary techniczne (Liczniki)(Liczniki) ● Zużycie zasobów systemowych (CPU, Pamięć, Dyski, Ilość procesów oczekujących, Context Switch ) ● Zużycie zasobów serwerów aplikacyjnych (mechanizmy GC, zużycie przestrzeni pamięci w JVM, pule połączeń do bazy danych ….)
  • 11. Monitorowanie a ProfilowanieMonitorowanie a Profilowanie MonitorowanieMonitorowanie Jest metodą badania nie inwazyjną dla systemu ProfilowanieProfilowanie Jest metodą badania inwazyjną dla systemu
  • 12. Czym monitorować miaryCzym monitorować miary techniczne ?techniczne ?
  • 13. Czym profilować ?Czym profilować ? Diagnostic Server
  • 14. Czym profilować ?Czym profilować ? Visual JVM
  • 15. Gdzie mierzyć wydajność ?Gdzie mierzyć wydajność ?
  • 16. Środowisko do testówŚrodowisko do testów wydajnościowychwydajnościowych ● Musi być zbliżone architekturą do środowiska produkcyjnego ● Musi posiadać identyczne ilości danych w bazach jak na systemie produkcyjnym ● Musi posiadać wsparcie i obsługę administratorów ● Musi być STABILNE !!!!STABILNE !!!!
  • 17. Architektura wzorzecArchitektura wzorzec ProdukcjaProdukcja TestyTesty Linux Red Hat Sun Solaris WebSphere Application Server Enterprice Service Bus Linux Red Hat Oracle Database 11 8 GB 4 CPU 8 GB 8 CPU 8 GB 16 CPU Linux Red Hat Sun Solaris WebSphere Application Server Enterprice Service Bus Linux Red Hat Oracle Database 11 8 GB 4 CPU 8 GB 8 CPU 8 GB 16 CPU
  • 18. Linux Red Hat Sun Solaris Architektura antywzorzecArchitektura antywzorzec WebSphere Application Server Enterprice Service Bus Linux Red Hat Oracle Database 11 ProdukcjaProdukcja Windows JBoss Oracle XE TestyTesty MockUp 8 GB 4 CPU 8 GB 8 CPU 8 GB 16 CPU 2 GB 4 CPU
  • 19. Architektura – dobra praktykaArchitektura – dobra praktyka Linux Red Hat Sun Solaris WebSphere Application Server Enterprice Service Bus Linux Red Hat Oracle Database 11 8 GB 4 CPU 8 GB 8 CPU 8 GB 16 CPU Linux Linux WebSphere Application Server Enterprice Service Bus Linux Oracle Database 11 8 GB 4 CPU 4 GB 4 CPU 4 GB 4 CPU ProdukcjaProdukcja TestyTesty
  • 20. Wsparcie środowiskaWsparcie środowiska Obowiązki podczas testów: ● Monitoring zasobów ● Profilowanie środowiska ● Restarty środowiska ● Przebudowa i informowanie o zmianach
  • 21. Stabilne środowiskoStabilne środowisko Cechy stabilnego środowiska: ● Znamy liczbę użytkowników jaką to środowisko jest wstanie wytrzymać ● Środowiska działa zgodnie z umową SLA
  • 22. Jak zbadać stabilnośćJak zbadać stabilność środowiska ?środowiska ? Pre-Testy Scenariusz 1 – chcemy aby przez 1 godzinę wykonało się 10000 tys. transakcji IlośćTransakcji Kolejne pre-Testy 1 2 3 4 5 6 300 VUserów 250 VUserów 200 VUserów 200 VUserów 180 VUserów 150 VUserów 7 150 VUserów 3
  • 23. Czym testować ?Czym testować ?
  • 24. Testerzy Load Generation System Under Test Czy mam takie zasoby ? • Ludzie • Komputery Jak synchronizować testerów? Jak zbierać i analizować ? Jak zrobić potwarzalny test? Analiza? 123.20 Wciskamy „Zapisz” !! ! Dawno dawno temu …..Dawno dawno temu ….. Web server Database server Koordynator
  • 25. Dobre, używane i za darmoDobre, używane i za darmo Zalety: 1. Jest darmowy 2. Dodatkowe pluginy 3. Możliwość testowania Usług SOAP/REST 4. Wykorzystanie XSLT do raportów Wady: 1. Serwisowanie skryptów 2. Zużycie pamięci
  • 26. Bardzo dobre używane i nie zaBardzo dobre używane i nie za darmodarmo Zalety: 1. Obsługa wielu technologii 2. Gotowy monitoring 3. Możliwość programowanie automatów Wady: 1. Cena 2. System licencyjny
  • 27. Bardzo dobre używane i nie zaBardzo dobre używane i nie za darmodarmo Zalety: 1. Obsługa wielu technologii 2. Gotowy monitoring 3. Obsługa usług REST/SOAP 4. Obsługa wielu języków Wady: 1. Cena 2. System licencyjny
  • 28. Nowy, za darmo z przyszłościąNowy, za darmo z przyszłością Zalety: 1. Obsługa języka Scala 2. Raportowanie Wady: 1. Brak wsparcia Load Balancerów 2. Wsparcie tylko systemów WWW
  • 29. Narzędzie do testów usługNarzędzie do testów usług SOAP/RESTSOAP/REST Zalety: Testowanie usług REST/SOAP Prosty interfejs Obługa języka groovy Łatwe zarządzanie zmianą Wady: Brak
  • 30. Jak interpretować wyniki oraz jakJak interpretować wyniki oraz jak je skalować ?je skalować ?
  • 32. Ilość transakcji IlośćTransakcji Kolejne Testy 1 2 3 4 5 6 Test referencyjny 1 01-2014 Test referencyjny 2 01-2014 Test referencyjny 3 01-2014 Trend Test powtórkowy 1 01-2014 Test powtórkowy 2 01-2014 Test powtórkowy 3 01-2014 Przykład 1Przykład 1 Ilość transakcji IlośćTransakcji Kolejne Testy 1 2 3 4 5 6 Test referencyjny 1 01-2014 Test referencyjny 2 01-2014 Test referencyjny 3 01-2014 Trend Test powtórkowy 1 01-2014 Test powtórkowy 2 01-2014 Test powtórkowy 3 01-2014
  • 33. Zużycie CPU [%]Zużycia Kolejne Testy 1 2 3 4 5 6 Test referencyjny 1 01-2014 Test referencyjny 2 01-2014 Test referencyjny 3 01-2014 Trend Test powtórkowy 1 01-2014 Test powtórkowy 2 01-2014 Test powtórkowy 3 01-2014 Przykład 2Przykład 2
  • 34. Na jakich statystykach oprzećNa jakich statystykach oprzeć trend ?trend ?
  • 35. Statystyki biznesoweStatystyki biznesowe ● Performance/RepeatabilityPerformance/Repeatability - Czas odpowiedzi transakcji [s] ● AvailabilityAvailability - Ilość transakcji na sekundę ● Stability – ilość błędów (time-out, niezkończone transakcje) [il] ● Capacity – ilość wykonanych transakcji [il]
  • 36. Kto powinienKto powinien przeprowadzać testy ?przeprowadzać testy ?
  • 37. Tester wydajnościTester wydajności ● Powinien znać bardzo dobrze narzędzia do testów wydajnościowych ● Powinien znać bardzo dobrze architekturę systemu ● Powinien opanować sztukę monitoringu ● Powinien być w kontakcie z administratorami jak i programistami
  • 38. Kto powinien interpetowaćKto powinien interpetować wyniki ?wyniki ? Administratorzy i developerzyAdministratorzy i developerzy Miary techniczne BiznesBiznes TransakcjeTransakcje