際際滷

際際滷Share a Scribd company logo
THINGS THEY SAY OPEN
SOURCE TOOLS CANT 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 樽mbunt釘irea calit釘ii software-ului
     Testele de lung durat sunt adesea evitate 樽n timpul testrii
      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 scripting
     Beanshell (Java scripting language) sau pure Java
     Built-in JavaScript
     Batch files
     StyleSheet XML for result conversion
     Suportul poate fi extins prin plugin-uri
JMETER VS. LOADRUNNER
Item                   Apache Jmeter   Load Runner
Ease  installation            +             neutral
Ease - scripting               +                -
Ease  Running tests           +               +
Ease  Results               neutral           +
reporting
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

More Related Content

OSOM - Performance in testing by jmeter

  • 1. THINGS THEY SAY OPEN SOURCE TOOLS CANT DO APACHE JMETER Prezinta: Bogdan Moscaliuc Radu Tighineanu
  • 2. 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
  • 3. DE CE TESTARE AUTOMATA? Testarea automata creste Test Coverage-ul Testarea automata creste profunzimea si sfera de aplicare a testelor pentru a ajuta la 樽mbunt釘irea calit釘ii software-ului Testele de lung durat sunt adesea evitate 樽n timpul testrii 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.
  • 4. 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.
  • 5. 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.
  • 6. 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
  • 7. API SERVER TESTS 2 Tier architecture o N Tier architecture
  • 8. 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.
  • 9. 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)
  • 10. 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
  • 11. 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
  • 12. 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)
  • 13. 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
  • 14. SUPORT PENTRU SCRIPTING Suport pentru scripting Beanshell (Java scripting language) sau pure Java Built-in JavaScript Batch files StyleSheet XML for result conversion Suportul poate fi extins prin plugin-uri
  • 15. JMETER VS. LOADRUNNER Item Apache Jmeter Load Runner Ease installation + neutral Ease - scripting + - Ease Running tests + + Ease Results neutral + reporting External libs usable + + Cross platform + - Cost + - Technical Level + + Stability neutral +
  • 16. 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 + +
  • 21. PRACTICAL EXAMPLES Exemplu API : Google Maps Exemplu Web service: Weather in USA Web application record&playback: www.cinemarx.ro
  • 23. THE END Thank you ! Questions