Upload
marcela-oniga
View
448
Download
3
Embed Size (px)
DESCRIPTION
OSOM - Open Source Open Mind Conference 2010 www.osom.ro
Citation preview
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 …