Analiza wydajności następnej generacji – przykłady Gliwice, 31.05.2014
Jun 23, 2015
Analiza wydajności następnej
generacji – przykłady
Gliwice, 31.05.2014
Wprowadzenie
Podstawowe informacje o testach wydajnościowych
OpenSource vs NeoLoad – z doświadczenia
Podsumowanie
Agenda
Soflab Technology
Soflab Technology jest spółką realizującą od ponad 5 lat usługi niezależnego testowania oprogramowania
Główne obszary działania firmy to:
Zarządzanie i realizacja testów
Zarządzanie jakością i ryzykiem w projektach IT
Wdrażanie narzędzi wsparcia testów
Naszym doświadczeniem wspieramy firmy posiadające rozbudowaną infrastrukturę IT w korzystaniu z usług dostawców oprogramowania
Naszym głównym celem jest dostarczanie usług i informacji, dzięki którym nasi Klienci mogą podejmować właściwe decyzje i egzekwować od dostawców IT wartości, które są istotne zarówno dla poszczególnych projektów informatycznych, jak i całej organizacji
Soflab Technology Podstawowe informacje o firmie
Soflab Technology Fakty i liczby
Aktualnie jesteśmy obecni w Warszawie, Łodzi, Krakowie, Wrocławiu, Trójmieście i Katowicach, realizujemy także projekty za granicą
Zespół Soflab liczy ponad 200 osób
Dotychczas zrealizowaliśmy ponad 750 projektów
Realizujemy projekty dla Klientów z takich branż jak: telekomunikacja, bankowość, media, ubezpieczenia, energetyka, jak również dla administracji publicznej
Mamy status Preferowanego Partnera firmy HP oraz jesteśmy jedynym w Polsce partnerem takich wiodących producentów narzędzi do testowania i zapewnienia jakości oprogramowania jak Neotys, Exact Solutions i Inflectra
Posiadamy ponad 100 certyfikatów ISTQB Certified Tester Foundation Level, 20 certyfikatów ISTQB Certified Tester Advanced Level oraz kilkadziesiąt innych certyfikatów IT (Prince2, PMI, ITIL, Professional Scrum Master itd.)
Testy Wydajnościowe
Testy Wydajnościowe Główne cele testów wydajnościowych
Weryfikacja spełnienia wymagań wydajnościowych
Wczesna identyfikacja problemów wydajnościowych
Poprawa wydajności systemu
Identyfikacja problemów niezwiązanych z wydajnością
Ewaluacja sprzętu/oprogramowania/konfiguracji (strojenie)
Inne
Cele
Testów Wydajnościowych
Testy Wydajnościowe Rodzaje testów wydajnościowych
Testy wydajnościowe
Weryfikacja czasów odpowiedzi krytycznych z punktu biznesowego funkcjonalności systemu
Weryfikacja czy przy zakładanym obciążeniu systemu poszczególne akcje są wykonywane w akceptowalnym (założonym) czasie
* Podział i definicje z ISO/IEC 29119
Stress testing
Load testing
Capacity testing
Endurance testing
Volume testing
Testy przeciążeniowe
Weryfikacja zachowania testowanego środowiska w sytuacji awaryjnej (zbyt wielu użytkowników, malejące zasoby systemowe etc.)
Testy obciążeniowe
Weryfikacja zachowania testowanego środowiska przy zwiększającym się obciążeniu.
Badanie zachowania środowiska przy minimalnym, standardowym i w tzw. „peak”-ach
Testy przepustowości
Weryfikacja poziomu na którym zwiększone obciążenie (użytkowników, transakcji, danych) powoduje brak utrzymania wymagań wydajnościowych
Testy wytrzymałościowe
Weryfikacja czy testowane środowisko jest w stanie stabilnie pracować przy ciągłym wymaganym obciążeniu w wymaganym przedziale czasowym
Testy objętościowe
Weryfikacja działania testowego środowiska pod kątem przetworzenia wyspecyfikowanego wolumenu danych w różnych aspektach
Performance testing
Testy Wydajnościowe Następnej generacji
Obecnie nie wystarczają już same testy przeprowadzenie lokalnie z użyciem niewielkich wolumenów obciążenia.
Wykonywanie realistycznych testów:
WWW, aplikacje Mobilne (native, hybrid, secured)
Symulowanie właściwości sieci
Symulowanie przeglądarek oraz ich możliwości
Symulowanie równoległych połączeń
Testy z lokalizacji z całego świata o wolumenie rzędu 1M VU
– takie obciążenie było kiedyś nieosiągalne
Gotowość do pracy w kilka minut
Praca w zamiennym środowisku np. Agile
Monitoring produkcji
Time to market
Testy Wydajnościowe Określenie zakresu
Profil Ruchu
VU
Środowisko Testowe i jego parametry
Dane testowe, generowanie, modyfikacja,
re-używalność, walidacje
Zaślepki
Wsparcie administracyjne i biznesowe
Koncepcja testów wydajnościowych Metodyka testów wydajnościowych
• Określenie sposobu osiągnięcia celu, wstępne określenie ram czasowych Projektu. Planowanie
• Analiza wymagań;
• Ocena systemu i architektury Analiza
• Określenie rodzaju testów wydajnościowych i profilu ruchu.
• Opracowanie skryptów w oparciu o cele, wymagania, architekturę; Projektowanie
• Przygotowanie środowiska, danych testowych, monitoringu. Implementacja
• Uruchomienie testów w oparciu o cele, wymagania, architekturę. Wykonanie
• Analiza w oparciu o cele – opracowanie zwięzłego podsumowania wyników zebranych w czasie uruchomienia testów;
• Przedstawienie w formie raportu wyników prac.
Analiza wyników i raportowanie
OpenSource vs NeoLoad –
z doświadczenia
JMeter – OpenSource
JMeter jest jednym z najpopularniejszych narzędzi przeznaczonym do przeprowadzania
testów wydajnościowych.
Narzędzie Neoload Neotys – profil firmy
Producent narzędzi do testów wydajnościowych:
Rok założenia: 2005;
Produkt: NeoLoad. FRANCE
• HQ;
• R&D;
• Technical Support;
• Operations.
USA
• Technical Support;
• Operations.
Germany
• Operations.
Neotys NeoLoad Architektura rozwiązania
Neotys NeoLoad Architektura rozwiązania
Neotys NeoLoad Badanie wydajność aplikacji mobilnych
Neload w pełni adresuje potrzeby następnej generacji. W kontekście testów wydajnościowych aplikacji umożliwia:
Symulacje wielu urządzeń mobilnych (Android, iOS, Blackberry) - możliwe jest odtworzenie ruchu zgodnego z produkcyjnym - np. 30% użytkowników korzysta z Samsunga z Android 4.x , 20% użytkowników korzysta z iPhone 5, etc
Symulowanie opóźnienia wynikającego z technologii wykorzystywanych do transmisji danych na urządzenia mobilne - LTE, 4G, 3G, EDGE etc.
Wykonywanie testów kompleksowych dla systemów posiadających kanał mobilny i www podczas uruchomienia
Neotys NeoLoad Cloud Nagrywanie dowolnej aplikacji na dowolnych urządzeniach
Narzędzie Neoload Neoload – Wspierane technologie
Wspierane technologie dla nagrywania skryptów:
Narzędzie Neoload Neoload – Wspierane technologie c.d.
Urządzenia mobilne:
Moduły monitorujące:
Możliwość integracji:
Narzędzie Neoload Neoload – architektura cd.
Kontroler (The Controller)
Dostarcza graficzny interfejs z poziomu którego użytkownik może nagrywać i odtwarzać skrypty, uruchamiać testy oraz dokonywać analizy wyników testów.
Monitoruje poszczególne komponenty infrastruktury testowanego środowiska
Generator ruchu (The Load Generator)
Symuluje działania użytkowników;
Zbiera informacje dotyczące zachowania aplikacji;
Może zostać zainstalowany na dowolnej ilości maszyn;
NeoLoad
Cloud Delivery • Amazon EC2
• HP Cloud
• Rackspace
APM • dynaTrace
• CA APM
• AppDynamics
Mobile • Integrated WAN Emulation
• Shunra
Test Management • Inflectra SpiraTeam
• HP Quality Center
• CloudSigma • Glesys • Joyent
Narzędzie Neoload Możliwości integracji
• Narzędzie posiada wiele wbudowanych funkcjonalności jednakże niektóre operacje wymagają dodatkowych pluginów lub/i kodowania,
• Nagrywanie i parametryzacja oraz konfiguracja dużego wolumenu obciążenia są czasochłonne,
• Niektóre funkcję nie są przyjazne użytkownikowi.
• Główne funkcjonalności narzędzia dostępne po zaledwie kilku kliknięciach,
• Interfejs przyjazny użytkownikowi,
• Narzędzie bardzo szybko gotowe do pracy.
• Możliwość modyfikacji liczby VU w trakcie wykonywania testu,
• 99% pracy możliwe do wykonania poprzez GUI (Scripting, Data),
• Zaawansowane raporty oraz SLA.
JMeter vs. NeoLoad – w praktyce Łatwość użycia
• Narzędzie wspiera HTTP/S oraz SOAP.
• Z pudełka dostępnych jest wiele protokołów: HTTP/S, AJAX Push, Web Socket, Flex, Forms, GWT, JAVA, RTMP, SOAP, Siebel…
JMeter vs. NeoLoad – w praktyce WEB Protocols
• Narzędzie nie posiada wbudowanego monitoringu.
• Wbudowany monitoring,
• Możliwość monitorowania wielu elementów architektury,
• Integracja z dynaTrace, CA APM, oraz AppDynamics,
• Możliwość pobrania danych z zewnętrznych źródeł oraz auto korelacja z wynikami oraz przebiegiem testów,
• Prekonfigurowane progi alertów.
JMeter vs. NeoLoad – w praktyce Monitoring
• Do 50% mniej wirtualnych użytkowników na jedną maszynę generująca ruch niż w przypadku NeoLoad,
• Dedykowane serwisy np. BlazeMeter umożliwiają wygenerowanie obciążenia maksymalnie do 100 000 jednoczesnych wirtualnych użytkowników.
• „Nieskończenie” skalowalne,
• Możliwość skorzystania z platformy NeotysCloud w celu generowania obciążenia.
JMeter vs. NeoLoad – w praktyce Skalowaloność
• Brak możliwości emulowania przepustowości.
• Możliwe bezpośrednie nagrywanie z urządzenia mobilnego,
• Emulowanie przeglądarki mobilnej w czasie nagrywania lub w trakcie testu,
• Generowanie realistycznego ruchu na serwerze poprzez emulowanie sieci WAN (przepustowość, opóźnienie, packet loss).
JMeter vs. NeoLoad – w praktyce Mobile
Podsumowanie
Podsumowanie Kiedy JMeter jest najlepszym wyborem?
Apache JMeter jest oprogramowaniem typu OpenSource
zaprojektowanym do testów obciążeniowych aplikacji
oraz do mierzenia wydajności. Zawsze najważniejszym
czynnikiem wyboru jest użycie odpowiedniego narzędzia
do wykonania odpowiedniej pracy. JMeter to najlepszy
wybór gdy:
- Architektura testowanej aplikacji nie jest
skomplikowana,
- Generowane obciążenie jest niewielkie,
- Nie ma presji czasu.
Podsumowanie Kiedy NeoLoad jest najlepszym wyborem?
NeoLoad jest narzędziem następnej generacji testów
wydajnościowych zaprojektowanym do testów aplikacji
mobilnych oraz webowych. Użycie NeoLoad pomaga
zwiększyć produktywność, testować więcej, szybciej .oraz
maksymalizując wydajność badanych aplikacji. Organizacje
powinny rozważyć wybór NeoLoad gdy:
- Badaniu podlegać mają aplikacje webowe oraz mobilne,
- SOA,
- Jest potrzeba odwzorowania rzeczywistego obciążenia,
- Niezbędne jest dynamiczne zwiększanie obciążenia,
- Projekt prowadzony jest metodyką Agile,
- Presja czasu.
Podsumowanie NeoLoad – narzędzie następnej generacji
Testy wydajnościowe systemów nowej generacji są w pełni wspierane przez Neotys Neoload. Wyzwania jakim należy sprostać to przede wszystkim:
Wielość urządzeń, systemów operacyjnych, na których używany może być system (realistyczne testy).
Innowacyjność - TTM (Time to Market) jest kluczowe,
Weryfikacja wydajnościowa systemu na środowisku docelowym (pre-produkcja, produkcja) z maksymalnym odwzorowaniem ruchu produkcyjnego. Neload Cloud daje możliwość symulowania nawet 1 miliona użytkowników, z wielu lokalizacji, w ciągu zaledwie kilku minut,
UX – doświadczenie użytkowników końcowych bez względu na ich lokalizację bez względu na urządzenie oraz technologię,
Monitoring środowisk produkcyjnych,
Dziękuję za uwagę
Soflab Technology Sp. z o.o.
ul. Ligocka 103
40-568 Katowice
tel.: +48 32 353 31 25
fax: +48 32 353 31 26
www.soflab.pl