How execute perfomance tests in a continuous delivery environment
Upcoming SlideShare
Loading in...5
×
 

How execute perfomance tests in a continuous delivery environment

on

  • 118 views

 

Statistics

Views

Total Views
118
Views on SlideShare
115
Embed Views
3

Actions

Likes
1
Downloads
0
Comments
0

1 Embed 3

https://www.linkedin.com 3

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

How execute perfomance tests in a continuous delivery environment How execute perfomance tests in a continuous delivery environment Presentation Transcript

  • 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
  • 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
  • ROME 11-12 april 2014 - Andrea Bozzoni Un tipico scenario di progetto Continuous Integration Jenkins Perfomance JMeter Gatling Live Demo View slide
  • ROME 11-12 april 2014 - Speaker’s name Scenario alla consegna di un progetto software View slide
  • ROME 11-12 april 2014 - Speaker’s name Quello di cui aveva bisogno
  • ROME 11-12 april 2014 - Speaker’s name Quello che gli abbiamo consegnato
  • ROME 11-12 april 2014 - Speaker’s name
  • ROME 11-12 april 2014 - Andrea Bozzoni Agile Software Development
  • 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
  • ROME 11-12 april 2014 - Andrea Bozzoni • Pratiche agili • Domain drive design • Pair programming • Refactoring • Test driven development • Continuous integration • … Agile Software Development
  • ROME 11-12 april 2014 - Speaker’s name One shot integration
  • ROME 11-12 april 2014 - Speaker’s name Notevole sforzo
  • ROME 11-12 april 2014 - Andrea Bozzoni Risultato garantito
  • 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
  • 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
  • ROME 11-12 april 2014 - Andrea Bozzoni Continuous integration environment
  • ROME 11-12 april 2014 - Andrea Bozzoni Integrazioni complesse senza sforzo
  • 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
  • ROME 11-12 april 2014 - Andrea Bozzoni Project delivery pipeline
  • 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
  • ROME 11-12 april 2014 - Andrea Bozzoni Performance - Costi
  • ROME 11-12 april 2014 - Andrea Bozzoni Performance - Costi
  • ROME 11-12 april 2014 - Andrea Bozzoni Performance - Development
  • 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)
  • ROME 11-12 april 2014 - Andrea Bozzoni Performance • Scenari di business con l’utente
  • ROME 11-12 april 2014 - Andrea Bozzoni Performance • Scenari di business con l’utente
  • ROME 11-12 april 2014 - Andrea Bozzoni Stress Tools
  • 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
  • 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
  • ROME 11-12 april 2014 - Andrea Bozzoni Dotati entrambi di HTTP Recorder
  • ROME 11-12 april 2014 - Andrea Bozzoni
  • ROME 11-12 april 2014 - Andrea Bozzoni
  • ROME 11-12 april 2014 - Andrea Bozzoni Jenkins + Jmeter/Gatling • Maven plugin • JMeter plugin • Gatling plugin • Jenkins plugin • Performance plugin • Gatling plugin
  • ROME 11-12 april 2014 - Andrea Bozzoni Live Demo
  • ROME 11-12 april 2014 - Andrea Bozzoni Q&A
  • ROME 11-12 april 2014 - Andrea Bozzoni Grazie per l’attenzione