How execute perfomance tests in a continuous delivery environment

276 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
276
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
2
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

How execute perfomance tests in a continuous delivery environment

  1. 1. ROME 11-12 april 2014ROME 11-12 april 2014 How to execute the performance tests during a build in a Continuous delivery environment andrea.bozzoni@gmail.com it.linkedin.com/pub/andrea-bozzoni/3/2b/911/ Andrea Bozzoni
  2. 2. ROME 11-12 april 2014 - Andrea Bozzoni A few words about me • Developer with a special passion for architectures, continuous integration and delivery • Fifteen years of experience in the development of applications for the some Italian Public Administrations (INPS, Poste Italiane, Consip, Ministero del Lavoro, etc…) • Now working for the European Commission in Bruxelles
  3. 3. ROME 11-12 april 2014 - Andrea Bozzoni Un tipico scenario di progetto Continuous Integration Jenkins Perfomance JMeter Gatling Live Demo
  4. 4. ROME 11-12 april 2014 - Speaker’s name Scenario alla consegna di un progetto software
  5. 5. ROME 11-12 april 2014 - Speaker’s name Quello di cui aveva bisogno
  6. 6. ROME 11-12 april 2014 - Speaker’s name Quello che gli abbiamo consegnato
  7. 7. ROME 11-12 april 2014 - Speaker’s name
  8. 8. ROME 11-12 april 2014 - Andrea Bozzoni Agile Software Development
  9. 9. ROME 11-12 april 2014 - Andrea Bozzoni • Metodi agili • Agile Modeling • Agile Unified Process • Extreme Programming (XP) • Feature Driven Development • Lean software development • Scrum • … Agile Software Development
  10. 10. ROME 11-12 april 2014 - Andrea Bozzoni • Pratiche agili • Domain drive design • Pair programming • Refactoring • Test driven development • Continuous integration • … Agile Software Development
  11. 11. ROME 11-12 april 2014 - Speaker’s name One shot integration
  12. 12. ROME 11-12 april 2014 - Speaker’s name Notevole sforzo
  13. 13. ROME 11-12 april 2014 - Andrea Bozzoni Risultato garantito
  14. 14. ROME 11-12 april 2014 - Andrea Bozzoni Continuous integration Continuous Integration (CI) is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily - leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible. Many teams find that this approach leads to significantly reduced integration problems and allows a team to develop cohesive software more rapidly. Martin Fowler, http://martinfowler.com/articles/continuousIntegration.html
  15. 15. ROME 11-12 april 2014 - Andrea Bozzoni Continuous integration • Vantaggi • Verifica costante di eventuali problemi di integrazione • Verifica costante dei test unitari • Verifica costante della qualità del codice • Disponibilità costante di una build (test, demo e release) • Svantaggi • Occorre un investimento iniziale (individuazione degli steps da automatizzare, cambio di cultura nel team) • Occorre un’ottima suite di test
  16. 16. ROME 11-12 april 2014 - Andrea Bozzoni Continuous integration environment
  17. 17. ROME 11-12 april 2014 - Andrea Bozzoni Integrazioni complesse senza sforzo
  18. 18. ROME 11-12 april 2014 - Andrea Bozzoni • Continuous integration server open source scritto in java • Supporta la maggior parte dei linguaggi (NET, Ruby, Groovy, Grails, PHP, …) • Esistono distribuzioni per la maggior parte degli ambienti • Ha un’interfaccia semplice ed intuitiva (bassa curva di apprendimento) • Architettura estendibie (plugins) • Consente di effettuare build distribuite
  19. 19. ROME 11-12 april 2014 - Andrea Bozzoni Project delivery pipeline
  20. 20. ROME 11-12 april 2014 - Andrea Bozzoni Performance In software engineering, performance testing is in general testing performed to determine how a system performs in terms of responsiveness and stability under a particular workload. It can also serve to investigate, measure, validate or verify other quality attributes of the system, such as scalability, reliability and resource usage. Load testing Is the simplest form of performance testing. A load test is usually conducted to understand the behavior of the system under a specific expected load. This load can be the expected concurrent number of users on the application performing a specific number of transactions within the set duration. Stress testing Is normally used to understand the upper limits of capacity within the system. Wikipedia, http://http://en.wikipedia.org/wiki/Software_performance_testing
  21. 21. ROME 11-12 april 2014 - Andrea Bozzoni Performance - Costi
  22. 22. ROME 11-12 april 2014 - Andrea Bozzoni Performance - Costi
  23. 23. ROME 11-12 april 2014 - Andrea Bozzoni Performance - Development
  24. 24. ROME 11-12 april 2014 - Andrea Bozzoni Performance • Definire gli obiettivi • Velocità • Stabilità • Efficienza rispetto alle risorse • Verificare l’aderenza agli obiettivi • Acquisizione dati (SO, JVM, Network, Stress tool)
  25. 25. ROME 11-12 april 2014 - Andrea Bozzoni Performance • Scenari di business con l’utente
  26. 26. ROME 11-12 april 2014 - Andrea Bozzoni Performance • Scenari di business con l’utente
  27. 27. ROME 11-12 april 2014 - Andrea Bozzoni Stress Tools
  28. 28. ROME 11-12 april 2014 - Andrea Bozzoni • Dotato di una semplice GUI • Consente in modo semplice di effettuare test su diverse tipologie di server: • Web (HTTP/S), Database, SOAP, JMS, Mail • Portabile (scritto interamente in java) • Recorder scenario (HTTP Recorder) • Facilmente estendibile • Visualizzazione in tempo reale dei test
  29. 29. ROME 11-12 april 2014 - Andrea Bozzoni • DSL specifico per la scrittura degli scenari di tests • Recorder scenario (HTTP Recorder) • Consente l’esecuzione di più scenari in un singolo test • HTML reports per la visualizzazione dei risultati dei tests • Implementato in Scala • Usa Async Http Client and Netty for non blocking HTTP • Usa Akka for actions (requests, pauses, assertions, etc...) modeling and orchestration
  30. 30. ROME 11-12 april 2014 - Andrea Bozzoni Dotati entrambi di HTTP Recorder
  31. 31. ROME 11-12 april 2014 - Andrea Bozzoni
  32. 32. ROME 11-12 april 2014 - Andrea Bozzoni
  33. 33. ROME 11-12 april 2014 - Andrea Bozzoni Jenkins + Jmeter/Gatling • Maven plugin • JMeter plugin • Gatling plugin • Jenkins plugin • Performance plugin • Gatling plugin
  34. 34. ROME 11-12 april 2014 - Andrea Bozzoni Live Demo
  35. 35. ROME 11-12 april 2014 - Andrea Bozzoni Q&A
  36. 36. ROME 11-12 april 2014 - Andrea Bozzoni Grazie per l’attenzione

×