Analiza wydajności następnej generacji - przykłady.

Post on 23-Jun-2015

800 views 1 download

description

Prezentacja Karola Mioduszewskiego z III edycji konferencji Quality Excites.

Transcript of Analiza wydajności następnej generacji - przykłady.

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