osom - performance in testing by jmeter

Post on 18-Dec-2014

451 Views

Category:

Documents

3 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

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

Prezinta:

Bogdan Moscaliuc

Radu Tighineanu

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

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.

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.

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.

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

API SERVER TESTS 2 Tier architecture o N Tier

architecture

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.

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)

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

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

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)

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

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

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 +

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 + +

JMETER IN PICTURES

JMETER IN PICTURES

JMETER IN PICTURES

JMETER IN PICTURES

PRACTICAL EXAMPLES

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

www.cinemarx.ro

OPEN SOURCE CONCLUSION

THE END

Thank you ! Questions …

top related