Post on 14-Jul-2015
Cloud Testing di applicazioni web utilizzando Python ed Amazon EC2
Fabio Falcinelli, Marco Immediato
f.falcinelli@k-tech.it , m.immediato@k-tech.it – k-tech
Fabio Falcinelli, Marco Immediatof.falcinelli@k-tech.it, m.immediato@k-tech.it – k-tech
2
Di cosa parleremo
Come pianificare il "Load & Performance Test" di una applicazione web in maniera semplice e veloce
Cloud Testingsimulare un carico reale
utilizzare la piattaforma cloud Amazon EC2
Sviluppare rapidamente i casi di test con Python
Fabio Falcinelli, Marco Immediatof.falcinelli@k-tech.it, m.immediato@k-tech.it – k-tech
3
Caso reale
Certificazione ambiente di produzioneOltre 1000000 di accessi al giornoTest end to endSimulare accessi da diverse località geografiche
Fabio Falcinelli, Marco Immediatof.falcinelli@k-tech.it, m.immediato@k-tech.it – k-tech
4
Combinare assieme le tecnologie
Fabio Falcinelli, Marco Immediatof.falcinelli@k-tech.it, m.immediato@k-tech.it – k-tech
5
Schieramento...
4 nodi del cloud Amazon EC2Large Instances
7.5 GB of memory, 4 EC2 Compute Units, 850 GB of local storage, 64-bit platform
OS Ubuntu 10.04 LTS a 64bit
Fabio Falcinelli, Marco Immediatof.falcinelli@k-tech.it, m.immediato@k-tech.it – k-tech
6
Strategia di test...
Studiare il nemico prevedendone le mosse (registrazione navigazione con funkload)
Distribuire le strategie alle truppe alleate (distribuzione tramite il master con funkload)
Attacco! (esecuzione dei test funkload)
Fabio Falcinelli, Marco Immediatof.falcinelli@k-tech.it, m.immediato@k-tech.it – k-tech
7
...Fuoco!
"Don't worry if it doesn't work right. If everything did, you'd be out of a
job." (Mosher's Law of Software
Engineering)
Fabio Falcinelli, Marco Immediatof.falcinelli@k-tech.it, m.immediato@k-tech.it – k-tech
8
Perché Amazon EC2?
Possibilità di scegliere le AMI (Amazon Machine Image) in base alle esigenzeCaratteristiche hardware (Small, Large, Extra Large instances)
Sistema operativo (Possibilità di importare la propria VM)
Scalabilità del numero dei nodi
Possibilità di scegliere le regioni geografiche da cui avviare i test
Monitoring del consumo di risorse (CPU, Network, Storage)
Fabio Falcinelli, Marco Immediatof.falcinelli@k-tech.it, m.immediato@k-tech.it – k-tech
9
Perché Python?
Innanzitutto, ci piace :-)Rende rapido lo sviluppo softwareDispone di due librerie che fanno proprio al caso
nostro:FabricFunkload
"Good code is its own best documentation."(Steve McConnell)
Fabio Falcinelli, Marco Immediatof.falcinelli@k-tech.it, m.immediato@k-tech.it – k-tech
10
Fabric
Consente di definire ed automatizzare script complessi su un insieme di macchine remote
Richiede solo la possibilità di accedere in SSH sulle macchine
Fabio Falcinelli, Marco Immediatof.falcinelli@k-tech.it, m.immediato@k-tech.it – k-tech
11
Funkload (FUNctional & LOAD)
Registrazione dei casi di test da navigazione su browser
Esecuzione automatizzata e distribuita del test e rilevazione delle statistiche
Produzione di un report esaustivo su tutte le risorse visitate dai test
Fabio Falcinelli, Marco Immediatof.falcinelli@k-tech.it, m.immediato@k-tech.it – k-tech
12
CastFabio Falcinelli
Marco Immediato
Executive producerK-Tech
Special guestsAmazon EC2 - http://aws.amazon.com/ec2/
Funkload - http://funkload.nuxeo.org/
Fabric - http://fabfile.org