23
THINGS THEY SAY OPEN SOURCE TOOLS CAN’T DO – APACHE JMETER Prezinta: Bogdan Moscaliuc Radu Tighineanu

OSOM - Performance in testing by jmeter

Embed Size (px)

DESCRIPTION

OSOM - Open Source Open Mind Conference 2010 www.osom.ro

Citation preview

Page 1: OSOM - Performance in testing by jmeter

THINGS THEY SAY OPEN SOURCE TOOLS CAN’T DO – APACHE JMETER

Prezinta:

Bogdan Moscaliuc

Radu Tighineanu

Page 2: OSOM - Performance in testing by jmeter

DE CE TESTARE AUTOMATA?

Testarea Automata – Save time and money Testele sunt executate automat Timpii de test scad dramatic Partea negativa: implementarea si mentenanta

scripturilor presupun un efort ridicat Testarea automata imbunatateste acuratetea

testelor Anumite erori pot fi introduse in timpul testarii manuale Testele automatizate executa pasii de testare precis si

ofera detalii suplimentare comparat cu testarea manuala

Page 3: OSOM - Performance in testing by jmeter

DE CE TESTARE AUTOMATA?

Testarea automata creste Test Coverage-ul Testarea automata creste profunzimea si sfera de aplicare a testelor

pentru a ajuta la îmbunătăţirea calităţii software-ului Testele de lungă durată sunt adesea evitate în timpul

testării manual Prin testarea automata se pot face teste care sunt

foarte dificile la nivel de testare manuala Teste de performanta, load, stress: Chiar şi cel mai

dezvoltat departament software nu poate efectua un test manual controlat, cu mii de utilizatori, pentru aplicaţii web.

Page 4: OSOM - Performance in testing by jmeter

METODE DE TESTARE AUTOMATA

Code driven testing: Accesul la module de cod, librarii, functii prin argumentele de input

pentru a valida faptul că rezultatele care sunt returnate sunt corecte.

Unit testing API (Application Programmable Interface) testing Test Driven Development (TDD- Agile):

GUI testing: Evenimentele si interactiunile cu GUI-ul aplicatiei sunt inregistrate

prin utilizarea unui tool de test cu scopul de a le modifica si a testa impactul asupra aplicatiei sau configuratiilor sistemului.

Page 5: OSOM - Performance in testing by jmeter

UNIT TESTING

Testarea codului presupune fragmentarea acestuia in unitati cat mai mici de cod, acestea integrandu-se apoi in componente si workflow-uri

Asertii: un predicat software atasat unei functii sau unei componente pentru a indica faptul ca functia sau componenta face ceea ce indica predicatul.

Page 6: OSOM - Performance in testing by jmeter

API TESTING

API = Application Programmable Interface Interfata implementata de un

program software ce ii ofera posibilitatea de a interactiona cu alte entitati software

API testing Se verifica si se valideaza

comunicarea dintre 2 sau mai multe entitati software

Rezultatele testelor sunt reflectate prin succesul sau esecul asertiilor

Unite testing outside the code

Page 7: OSOM - Performance in testing by jmeter

API SERVER TESTS 2 Tier architecture o N Tier

architecture

Page 8: OSOM - Performance in testing by jmeter

TEST DRIVEN DEVELOPMENT

Tehnica de development software Agile ce se bazeaza pe repetitia unui scurt ciclu de implementare

Testul este implementat inaintea functionalitatii. Va esua pana cand functionalitatea va fi completa.

Page 9: OSOM - Performance in testing by jmeter

TEST AUTOMATION TOOLS

Unit testing: Junit, Cubic test, Cxx, Selenium, TestNG

API testing: Jmeter, Junit, Poster, Grinder GUI tests:

Web: Selenium, Watir, iMacros, PushtoTest, Jmeter, TestGen4Web, Grinder, etc

Desktop: Eggplant, Phantom, FitNesse (not open source)

Page 10: OSOM - Performance in testing by jmeter

APACHE JMETER

Open source – Apache Jakarta project Se bazeaza pe structura XML Implementat in Java, poate fi extins cu usurinta (ex. BadBoy) Potrivit pentru teste de API client-server, Aplicatii Web,

Performance, DataBase, WebServices Ofera suport in testare pentru diferite protocoale sau API-uri:

Web - HTTP, HTTPS FTP SOAP - WSDL (Web Services) Database via JDBC connection JMS Mail - POP3(S) si IMAP(S) LDAP Conexiuni TCP generice

Page 11: OSOM - Performance in testing by jmeter

APACHE JMETER

Ofera o multitudine de pluggin-uri pentru raportarea rezultatelor, pluginuri pentru analiza datelor sau plugin-uri de vizualizare Ex. http://code.google.com/p/jmeter-plugins/

Poate fi configurat pentru a rula in mod distribuit pentru testele de performanta

Poate monitoriza functionalitatea sau disponibilitatea unor aplicatii, servicii web sau servere

Page 12: OSOM - Performance in testing by jmeter

CE SE POATE TESTA SI CUM ?

API: Simularea comunicarii Client- Server

Exemplu: registration, activation Simularea comportamentului unui component intr-un workflow

Exemplu: Substituirea componentului respectiv la nivel de comunicare pentru a studia comportamentul sistemului

DataBase: Exista posibilitatea de a rula orice SQL statement direct din script Permite conexiune la orice tip de DB SQL Se pot face diff-uri pe diferite db-uri

Servicii Web: Simularea la nivel de comportament si comunicare Este compatibil cu SOAP si cu anumite tooluri pt testarea WS

(SoapUI)

Page 13: OSOM - Performance in testing by jmeter

CE SE POATE TESTA SI CUM ?

Web application GUI: Functionalitate Record/Playback Ofera suport pentru Rich Internet Application (ex.:CSS,

Ajax) Suport pentru HTTPS

Performance Load, Stress, Scalability, Performance monitoring Check response times, load balancing, DB integrity

Page 14: OSOM - Performance in testing by jmeter

SUPORT PENTRU SCRIPTING

Suport pentru scriptingBeanshell (Java scripting language) sau pure

JavaBuilt-in JavaScriptBatch filesStyleSheet XML for result conversionSuportul poate fi extins prin plugin-uri

Page 15: OSOM - Performance in testing by jmeter

JMETER VS. LOADRUNNER

Item Apache Jmeter Load Runner

Ease – installation + neutral

Ease - scripting + -

Ease – Running tests + +

Ease – Results reporting

neutral +

External libs usable + +

Cross platform + -

Cost + -

Technical Level + +

Stability neutral +

Page 16: OSOM - Performance in testing by jmeter

JMETER VS. LOADRUNNER

Item Apache Jmeter Load Runner

Batch mode + -

Custom protocols + +

Out of the box protocols

neutral +

Unlimited load generation

+ -

Load scheduling + +

Load tests - Agent management

+ +

Real –time Test monitoring

+ +

Real- time load adjustment

- +

Script management + +

Page 17: OSOM - Performance in testing by jmeter

JMETER IN PICTURES

Page 18: OSOM - Performance in testing by jmeter

JMETER IN PICTURES

Page 19: OSOM - Performance in testing by jmeter

JMETER IN PICTURES

Page 20: OSOM - Performance in testing by jmeter

JMETER IN PICTURES

Page 21: OSOM - Performance in testing by jmeter

PRACTICAL EXAMPLES

Exemplu API : Google Maps Exemplu Web service: Weather in USA Web application – record&playback:

www.cinemarx.ro

Page 22: OSOM - Performance in testing by jmeter

OPEN SOURCE CONCLUSION

Page 23: OSOM - Performance in testing by jmeter

THE END

Thank you ! Questions …