SlideShare une entreprise Scribd logo
1  sur  27
Télécharger pour lire hors ligne
Tests de montée en charge avec Tsung
Rodolphe Quiédeville
10e Journées Du Logiciel Libre
Lyon
17 et 18 octobre 2008
Rodolphe Quiédeville (Bearstech) Tests de montée en charge avec Tsung 17 et 18 octobre 2008 1 / 27
Introduction
1 Introduction
Bearstech
Moi et mon ego
2 Tsung
Présentation générale
Le fichier de configuration
3 Les résultats
4 Conclusion
Rodolphe Quiédeville (Bearstech) Tests de montée en charge avec Tsung 17 et 18 octobre 2008 2 / 27
Introduction Bearstech
Hébergements à valeurs ajoutés
Événementiel (SFR, Inrocks, ...)
Multiplateforme (PHP, Python, Ruby, ...)
Recherche et développement
Hackable devices
Openmoko
Green IT
Rodolphe Quiédeville (Bearstech) Tests de montée en charge avec Tsung 17 et 18 octobre 2008 3 / 27
Introduction Moi et mon ego
Administrateur système et réseaux
Logiciel libre et uniquement cela depuis 10 ans
Chez Bearstech depuis 6 mois
Relié au net 360 jours par an
Debianiste convaincu
Emacsien devant l’éternel
Rodolphe Quiédeville (Bearstech) Tests de montée en charge avec Tsung 17 et 18 octobre 2008 4 / 27
Tsung Présentation générale
Parlons de Tsung
Projet Libre GPL v2
7 ans
Ecrit par Nicolas Niclausse
Né chez Idealx (IDX-Tsunami), Jabber
Erlang
1.3.0 septembre 2008
Rodolphe Quiédeville (Bearstech) Tests de montée en charge avec Tsung 17 et 18 octobre 2008 5 / 27
Tsung Présentation générale
Dans la technique
Multi-protocole (jabber, HTTP, PostgreSQL et MySQL, ...)
Distribué
Hautes performances (10k users, Gigabit, ...)
Support SSL
Multi IP par client (passage de load-balancer, ...)
Configuration par fichier XML
Scénarios dynamiques
Répartition non linéaire
Rodolphe Quiédeville (Bearstech) Tests de montée en charge avec Tsung 17 et 18 octobre 2008 6 / 27
Tsung Présentation générale
Coté HTTP
HTTP/1.0 et HTTP/1.1
GET, POST, PUT, DELETE et HEAD
Gestion automatique des Cookies
Sait faire du ’GET If-modified since’
WWW-authentication Basic
Mode Proxy pour enregistrer un scénario
SOAP
HTTP server or proxy server load testing.
Rodolphe Quiédeville (Bearstech) Tests de montée en charge avec Tsung 17 et 18 octobre 2008 7 / 27
Tsung Le fichier de configuration
Les sections
Les clients
Les serveurs
La charge
Les options
Les sessions
Rodolphe Quiédeville (Bearstech) Tests de montée en charge avec Tsung 17 et 18 octobre 2008 8 / 27
Tsung Le fichier de configuration
Les clients
<!-- Client side setup -->
<clients>
<client host="tsung0" />
</clients>
Rodolphe Quiédeville (Bearstech) Tests de montée en charge avec Tsung 17 et 18 octobre 2008 9 / 27
Tsung Le fichier de configuration
Les clients
<!-- Client side setup -->
<clients>
<client host="ts1" weight="1" maxusers="800">
<ip value="10.9.195.12"></ip>
<ip value="10.9.195.13"></ip>
</client>
<client host="ts2" weight="3" maxusers="600" cpu="2">
<ip value="10.9.195.14"></ip>
</client>
</clients>
Rodolphe Quiédeville (Bearstech) Tests de montée en charge avec Tsung 17 et 18 octobre 2008 10 / 27
Tsung Le fichier de configuration
Les serveurs
Cas simple
<!-- Server side setup -->
<servers>
<server host="192.168.56.2" port="80" type="tcp"/>
</servers>
Rodolphe Quiédeville (Bearstech) Tests de montée en charge avec Tsung 17 et 18 octobre 2008 11 / 27
Tsung Le fichier de configuration
Les serveurs
Round robin
Round robin intégré dans tsung
<!-- Server side setup -->
<servers>
<server host="www1" port="80" type="tcp"/>
<server host="www2" port="80" type="tcp"/>
<server host="www3" port="80" type="tcp"/>
</servers>
Rodolphe Quiédeville (Bearstech) Tests de montée en charge avec Tsung 17 et 18 octobre 2008 12 / 27
Tsung Le fichier de configuration
La charge
définition
La définition de la “charge”
phase
duration
unit
Rodolphe Quiédeville (Bearstech) Tests de montée en charge avec Tsung 17 et 18 octobre 2008 13 / 27
Tsung Le fichier de configuration
La charge
Charge simple
Charge à phase unique
<load>
<arrivalphase phase="1" duration="60" unit="second">
<users interarrival="10" unit="second"></users>
</arrivalphase>
</load>
Rodolphe Quiédeville (Bearstech) Tests de montée en charge avec Tsung 17 et 18 octobre 2008 14 / 27
Tsung Le fichier de configuration
La charge
Charge montante
Charge à phases multiples
<load>
<arrivalphase phase="1" duration="60" unit="second">
<users interarrival="10" unit="second"></users>
</arrivalphase>
<arrivalphase phase="2" duration="60" unit="second">
<users interarrival="5" unit="second"></users>
</arrivalphase>
<arrivalphase phase="3" duration="60" unit="second">
<users interarrival="1" unit="second"></users>
</arrivalphase>
</load>
Rodolphe Quiédeville (Bearstech) Tests de montée en charge avec Tsung 17 et 18 octobre 2008 15 / 27
Tsung Le fichier de configuration
Les options
Thinktime
Temps de pause
<options>
<option name="thinktime" value="3" random="true"
override="false"></option>
</options>
Rodolphe Quiédeville (Bearstech) Tests de montée en charge avec Tsung 17 et 18 octobre 2008 16 / 27
Tsung Le fichier de configuration
Les options
Thinktime
User agent
<options>
<option type="ts_http" name="user_agent">
<user_agent probability="80">Mozilla/5.0 (X11; U;
Linux i686; en-US; rv:1.7.8) Gecko/20050513
Galeon/1.3.21</user_agent>
<user_agent probability="20">Mozilla/5.0 (Windows;
U; Windows NT 5.2; fr-FR; rv:1.7.8) Gecko/20050511
Firefox/1.0.4</user_agent>
</option>
</options>
Rodolphe Quiédeville (Bearstech) Tests de montée en charge avec Tsung 17 et 18 octobre 2008 17 / 27
Tsung Le fichier de configuration
Les sessions
Les sessions (le scénario)
<sessions>
<session name=’read’ probability=’100’ type=’ts_http’>
<request>
<http url=’/index.html’ version=’1.1’ method=’GET’ />
</request>
</session>
</sessions>
Rodolphe Quiédeville (Bearstech) Tests de montée en charge avec Tsung 17 et 18 octobre 2008 18 / 27
Tsung Le fichier de configuration
Les sessions
Les transactions
<sessions>
<session name=’read’ probability=’100’ type=’ts_http’>
<request>
<http url=’/index.html’ version=’1.1’ method=’GET’ />
</request>
<transaction name=’images’>
<request><http url=’/one.png’ version=’1.1’ method=’GET’
<request><http url=’/two.png’ version=’1.1’ method=’GET’
</transaction>
</session>
</sessions>
Rodolphe Quiédeville (Bearstech) Tests de montée en charge avec Tsung 17 et 18 octobre 2008 19 / 27
Tsung Le fichier de configuration
Les fonctions avancées
Substitution
<request subst="true">
<http url=’get.php?’
contents=’%%readcsv:user%%&amp;lang=FR’
version=’1.1’
method=’POST’></http>
</request>
readcsv est un module erlang qui renvoit une chaîne "login=LOGIN"
Rodolphe Quiédeville (Bearstech) Tests de montée en charge avec Tsung 17 et 18 octobre 2008 20 / 27
Tsung Le fichier de configuration
Les fonctions avancées
La boucle for
<for from="1" to="30" incr="1" var="counter">
<transaction name="index_request">
<request>
<http url=’/?last_read=1’
version=’1.1’
method=’GET’></http>
</request>
</transaction>
<thinktime value="5"/>
</for>
Rodolphe Quiédeville (Bearstech) Tests de montée en charge avec Tsung 17 et 18 octobre 2008 21 / 27
Tsung Le fichier de configuration
Les fonctions avancées
Test du résultat
<request>
<match do="continue" when="match">Welcome !</match>
<http url=’/login.php’ version=’1.0’ method=’POST’
contents=’username=nic&amp;user_password=sesame’
content_type=’application/x-www-form-urlencoded’ >
</request>
Rodolphe Quiédeville (Bearstech) Tests de montée en charge avec Tsung 17 et 18 octobre 2008 22 / 27
Les résultats
Log et HTML
log à tous les étages
output complet du traffic
pages htmls avec compteurs
graphs
Rodolphe Quiédeville (Bearstech) Tests de montée en charge avec Tsung 17 et 18 octobre 2008 23 / 27
Les résultats
Log et HTML
ALT + F2
Rodolphe Quiédeville (Bearstech) Tests de montée en charge avec Tsung 17 et 18 octobre 2008 24 / 27
Conclusion
Ce n’est qu’un début
Juste un aperçu
Réelle modularité (MySQL)
Grande réactivité de Nicolas
Rodolphe Quiédeville (Bearstech) Tests de montée en charge avec Tsung 17 et 18 octobre 2008 25 / 27
Conclusion
What else ?
Les autres outils libres
ab
httperf
Siege
Using free software for HTTP load testing By Leslie P. Polzer on August 12,
2008
http://www.linux.com/feature/143896
Rodolphe Quiédeville (Bearstech) Tests de montée en charge avec Tsung 17 et 18 octobre 2008 26 / 27
Conclusion
Contact
Merci
Questions ?
Rodolphe Quiédeville
rquiedeville@bearstech.com
http://www.bearstech.com/
Rodolphe Quiédeville (Bearstech) Tests de montée en charge avec Tsung 17 et 18 octobre 2008 27 / 27

Contenu connexe

En vedette

Tests ihm automatises avec selenium
Tests ihm automatises avec seleniumTests ihm automatises avec selenium
Tests ihm automatises avec seleniumsojavawest
 
Tests & recette - Les fondamentaux
Tests & recette - Les fondamentauxTests & recette - Les fondamentaux
Tests & recette - Les fondamentauxCOMPETENSIS
 
Cycles de vie d'un logiciel
Cycles de vie d'un logicielCycles de vie d'un logiciel
Cycles de vie d'un logicielRabia AZIZA
 
A theory on how the Cheops Pyramid was built. No aliens needed !
A theory on how the Cheops Pyramid was built. No aliens needed ! A theory on how the Cheops Pyramid was built. No aliens needed !
A theory on how the Cheops Pyramid was built. No aliens needed ! Andrei S
 
Procès verbal assemblée de copropriété
Procès verbal assemblée de copropriétéProcès verbal assemblée de copropriété
Procès verbal assemblée de copropriétéFishimmo
 
Eric Moreau: Fluent interfaces
Eric Moreau: Fluent interfacesEric Moreau: Fluent interfaces
Eric Moreau: Fluent interfacesMSDEVMTL
 
FR Webinar Sept 2014 - Comment créer un site web
FR Webinar Sept 2014 - Comment créer un site webFR Webinar Sept 2014 - Comment créer un site web
FR Webinar Sept 2014 - Comment créer un site webWebnode
 
Terminale 3.
Terminale 3.Terminale 3.
Terminale 3.bombonia
 
Catálogo 2014 luxe exclusive line Hartmann Tresore
Catálogo 2014 luxe exclusive line Hartmann TresoreCatálogo 2014 luxe exclusive line Hartmann Tresore
Catálogo 2014 luxe exclusive line Hartmann TresoreHartman Tresore France
 
We ❤ dance.powerpoint
We ❤ dance.powerpointWe ❤ dance.powerpoint
We ❤ dance.powerpointAnnagarcia103
 
Dialogues cruciaux chapitre1
Dialogues cruciaux chapitre1Dialogues cruciaux chapitre1
Dialogues cruciaux chapitre1Johan Roels
 
Gulet cruises by images
Gulet cruises by imagesGulet cruises by images
Gulet cruises by imagesgoolets
 
Règlement sakifo2012 france_final
Règlement sakifo2012 france_finalRèglement sakifo2012 france_final
Règlement sakifo2012 france_finalpartenariatsdeezer
 
دليل انتخاب ممثلي الموظفين في اللجان الثنائية
دليل انتخاب ممثلي الموظفين في اللجان الثنائيةدليل انتخاب ممثلي الموظفين في اللجان الثنائية
دليل انتخاب ممثلي الموظفين في اللجان الثنائيةعابر السبيل
 
Article achats magazine entreprendre - mars 2014
Article achats   magazine entreprendre - mars 2014Article achats   magazine entreprendre - mars 2014
Article achats magazine entreprendre - mars 2014DavidWUST
 

En vedette (20)

Tests ihm automatises avec selenium
Tests ihm automatises avec seleniumTests ihm automatises avec selenium
Tests ihm automatises avec selenium
 
Ingénierie du test 0.9
Ingénierie du test 0.9Ingénierie du test 0.9
Ingénierie du test 0.9
 
Tests & recette - Les fondamentaux
Tests & recette - Les fondamentauxTests & recette - Les fondamentaux
Tests & recette - Les fondamentaux
 
Cycles de vie d'un logiciel
Cycles de vie d'un logicielCycles de vie d'un logiciel
Cycles de vie d'un logiciel
 
A theory on how the Cheops Pyramid was built. No aliens needed !
A theory on how the Cheops Pyramid was built. No aliens needed ! A theory on how the Cheops Pyramid was built. No aliens needed !
A theory on how the Cheops Pyramid was built. No aliens needed !
 
Rapport vérifié au 31 mars 2014
Rapport vérifié au 31 mars 2014Rapport vérifié au 31 mars 2014
Rapport vérifié au 31 mars 2014
 
Blue hour
Blue hourBlue hour
Blue hour
 
Procès verbal assemblée de copropriété
Procès verbal assemblée de copropriétéProcès verbal assemblée de copropriété
Procès verbal assemblée de copropriété
 
Eric Moreau: Fluent interfaces
Eric Moreau: Fluent interfacesEric Moreau: Fluent interfaces
Eric Moreau: Fluent interfaces
 
FR Webinar Sept 2014 - Comment créer un site web
FR Webinar Sept 2014 - Comment créer un site webFR Webinar Sept 2014 - Comment créer un site web
FR Webinar Sept 2014 - Comment créer un site web
 
Terminale 3.
Terminale 3.Terminale 3.
Terminale 3.
 
Catálogo 2014 luxe exclusive line Hartmann Tresore
Catálogo 2014 luxe exclusive line Hartmann TresoreCatálogo 2014 luxe exclusive line Hartmann Tresore
Catálogo 2014 luxe exclusive line Hartmann Tresore
 
We ❤ dance.powerpoint
We ❤ dance.powerpointWe ❤ dance.powerpoint
We ❤ dance.powerpoint
 
Don du sang
Don du sangDon du sang
Don du sang
 
Dialogues cruciaux chapitre1
Dialogues cruciaux chapitre1Dialogues cruciaux chapitre1
Dialogues cruciaux chapitre1
 
Gulet cruises by images
Gulet cruises by imagesGulet cruises by images
Gulet cruises by images
 
01
0101
01
 
Règlement sakifo2012 france_final
Règlement sakifo2012 france_finalRèglement sakifo2012 france_final
Règlement sakifo2012 france_final
 
دليل انتخاب ممثلي الموظفين في اللجان الثنائية
دليل انتخاب ممثلي الموظفين في اللجان الثنائيةدليل انتخاب ممثلي الموظفين في اللجان الثنائية
دليل انتخاب ممثلي الموظفين في اللجان الثنائية
 
Article achats magazine entreprendre - mars 2014
Article achats   magazine entreprendre - mars 2014Article achats   magazine entreprendre - mars 2014
Article achats magazine entreprendre - mars 2014
 

Similaire à Tests de montée en charge avec Tsung

Conception émergente
Conception émergenteConception émergente
Conception émergenteazeau
 
Découverte du moteur de rendu du projet Spartan
Découverte du moteur de rendu du projet SpartanDécouverte du moteur de rendu du projet Spartan
Découverte du moteur de rendu du projet SpartanMicrosoft
 
Javascript in a continuous integration environment
Javascript in a continuous integration environmentJavascript in a continuous integration environment
Javascript in a continuous integration environmentFrederic Dewinne
 
CocoaHeads Rennes #10 : Mock Objects
CocoaHeads Rennes #10 : Mock ObjectsCocoaHeads Rennes #10 : Mock Objects
CocoaHeads Rennes #10 : Mock ObjectsCocoaHeadsRNS
 
JUG Nantes - Telosys Tools - Avril 2014
JUG Nantes - Telosys Tools - Avril 2014 JUG Nantes - Telosys Tools - Avril 2014
JUG Nantes - Telosys Tools - Avril 2014 telosys
 
Telosys tools jug-nantes-2014-v1.2
Telosys tools jug-nantes-2014-v1.2Telosys tools jug-nantes-2014-v1.2
Telosys tools jug-nantes-2014-v1.2Laurent Guérin
 
Softshake 2015 comment tester et optimiser la performance d'un si
Softshake 2015   comment tester et optimiser la performance d'un siSoftshake 2015   comment tester et optimiser la performance d'un si
Softshake 2015 comment tester et optimiser la performance d'un siMarc Bojoly
 
Java Database Connectivity
Java Database ConnectivityJava Database Connectivity
Java Database ConnectivityKorteby Farouk
 
SQL Debug avec Django @ PyConFr 2015
SQL Debug avec Django @ PyConFr 2015SQL Debug avec Django @ PyConFr 2015
SQL Debug avec Django @ PyConFr 2015Rodolphe Quiédeville
 
Implémentation efficace et durable de processus métiers complexes
Implémentation efficace et durable de processus métiers complexesImplémentation efficace et durable de processus métiers complexes
Implémentation efficace et durable de processus métiers complexesGeeks Anonymes
 
REST JUG Toulouse 20100615
REST JUG Toulouse 20100615REST JUG Toulouse 20100615
REST JUG Toulouse 20100615JUG Toulouse
 
Monitoring d'un compteur EDF avec node.js @bdx.io
Monitoring d'un compteur EDF avec node.js @bdx.ioMonitoring d'un compteur EDF avec node.js @bdx.io
Monitoring d'un compteur EDF avec node.js @bdx.iolaurenthuet
 
Service WEB de type REST avec Java
Service WEB de type REST avec JavaService WEB de type REST avec Java
Service WEB de type REST avec JavaFrancois ANDRE
 
Comment écrire du code testable ?
Comment écrire du code testable ?Comment écrire du code testable ?
Comment écrire du code testable ?Fou Cha
 

Similaire à Tests de montée en charge avec Tsung (20)

Conception émergente
Conception émergenteConception émergente
Conception émergente
 
Découverte du moteur de rendu du projet Spartan
Découverte du moteur de rendu du projet SpartanDécouverte du moteur de rendu du projet Spartan
Découverte du moteur de rendu du projet Spartan
 
BBL chez Mappy autour de Tsung
BBL chez Mappy autour de TsungBBL chez Mappy autour de Tsung
BBL chez Mappy autour de Tsung
 
Pytong2015
Pytong2015Pytong2015
Pytong2015
 
spring.pdf
spring.pdfspring.pdf
spring.pdf
 
Javascript in a continuous integration environment
Javascript in a continuous integration environmentJavascript in a continuous integration environment
Javascript in a continuous integration environment
 
CocoaHeads Rennes #10 : Mock Objects
CocoaHeads Rennes #10 : Mock ObjectsCocoaHeads Rennes #10 : Mock Objects
CocoaHeads Rennes #10 : Mock Objects
 
JUG Nantes - Telosys Tools - Avril 2014
JUG Nantes - Telosys Tools - Avril 2014 JUG Nantes - Telosys Tools - Avril 2014
JUG Nantes - Telosys Tools - Avril 2014
 
Telosys tools jug-nantes-2014-v1.2
Telosys tools jug-nantes-2014-v1.2Telosys tools jug-nantes-2014-v1.2
Telosys tools jug-nantes-2014-v1.2
 
Softshake 2015 comment tester et optimiser la performance d'un si
Softshake 2015   comment tester et optimiser la performance d'un siSoftshake 2015   comment tester et optimiser la performance d'un si
Softshake 2015 comment tester et optimiser la performance d'un si
 
Java Database Connectivity
Java Database ConnectivityJava Database Connectivity
Java Database Connectivity
 
SQL Debug avec Django @ PyConFr 2015
SQL Debug avec Django @ PyConFr 2015SQL Debug avec Django @ PyConFr 2015
SQL Debug avec Django @ PyConFr 2015
 
Implémentation efficace et durable de processus métiers complexes
Implémentation efficace et durable de processus métiers complexesImplémentation efficace et durable de processus métiers complexes
Implémentation efficace et durable de processus métiers complexes
 
REST JUG Toulouse 20100615
REST JUG Toulouse 20100615REST JUG Toulouse 20100615
REST JUG Toulouse 20100615
 
Tapestry
TapestryTapestry
Tapestry
 
Monitoring d'un compteur EDF avec node.js @bdx.io
Monitoring d'un compteur EDF avec node.js @bdx.ioMonitoring d'un compteur EDF avec node.js @bdx.io
Monitoring d'un compteur EDF avec node.js @bdx.io
 
Hello mongo
Hello mongoHello mongo
Hello mongo
 
Service WEB de type REST avec Java
Service WEB de type REST avec JavaService WEB de type REST avec Java
Service WEB de type REST avec Java
 
Apache Beam
Apache Beam Apache Beam
Apache Beam
 
Comment écrire du code testable ?
Comment écrire du code testable ?Comment écrire du code testable ?
Comment écrire du code testable ?
 

Plus de Rodolphe Quiédeville

Plus de Rodolphe Quiédeville (12)

Tests unitaires pour PostgreSQL avec pgTap
Tests unitaires pour PostgreSQL avec pgTapTests unitaires pour PostgreSQL avec pgTap
Tests unitaires pour PostgreSQL avec pgTap
 
PostgreSQL Meetup Nantes #2
PostgreSQL Meetup Nantes #2PostgreSQL Meetup Nantes #2
PostgreSQL Meetup Nantes #2
 
Tsung de 1 à 1 million / Confoo Montréal 2015
Tsung de 1 à 1 million / Confoo Montréal 2015Tsung de 1 à 1 million / Confoo Montréal 2015
Tsung de 1 à 1 million / Confoo Montréal 2015
 
Confoo django
Confoo djangoConfoo django
Confoo django
 
BBL Données gégraphiques libres chez Work4labs
BBL Données gégraphiques libres chez Work4labsBBL Données gégraphiques libres chez Work4labs
BBL Données gégraphiques libres chez Work4labs
 
Tsung GIS
Tsung GISTsung GIS
Tsung GIS
 
BBL autour de PostgreSQL @Novapost
BBL autour de PostgreSQL @NovapostBBL autour de PostgreSQL @Novapost
BBL autour de PostgreSQL @Novapost
 
Un Tsung vaut mieux que 2 "croisons les doigts"
Un Tsung vaut mieux que 2 "croisons les doigts"Un Tsung vaut mieux que 2 "croisons les doigts"
Un Tsung vaut mieux que 2 "croisons les doigts"
 
OpenStreetMap Realtime Check
OpenStreetMap Realtime CheckOpenStreetMap Realtime Check
OpenStreetMap Realtime Check
 
de 1 à 1 million avec Tsung
de 1 à 1 million avec Tsungde 1 à 1 million avec Tsung
de 1 à 1 million avec Tsung
 
Tests de performance avec Tsung
Tests de performance avec TsungTests de performance avec Tsung
Tests de performance avec Tsung
 
Asterisk
AsteriskAsterisk
Asterisk
 

Tests de montée en charge avec Tsung

  • 1. Tests de montée en charge avec Tsung Rodolphe Quiédeville 10e Journées Du Logiciel Libre Lyon 17 et 18 octobre 2008 Rodolphe Quiédeville (Bearstech) Tests de montée en charge avec Tsung 17 et 18 octobre 2008 1 / 27
  • 2. Introduction 1 Introduction Bearstech Moi et mon ego 2 Tsung Présentation générale Le fichier de configuration 3 Les résultats 4 Conclusion Rodolphe Quiédeville (Bearstech) Tests de montée en charge avec Tsung 17 et 18 octobre 2008 2 / 27
  • 3. Introduction Bearstech Hébergements à valeurs ajoutés Événementiel (SFR, Inrocks, ...) Multiplateforme (PHP, Python, Ruby, ...) Recherche et développement Hackable devices Openmoko Green IT Rodolphe Quiédeville (Bearstech) Tests de montée en charge avec Tsung 17 et 18 octobre 2008 3 / 27
  • 4. Introduction Moi et mon ego Administrateur système et réseaux Logiciel libre et uniquement cela depuis 10 ans Chez Bearstech depuis 6 mois Relié au net 360 jours par an Debianiste convaincu Emacsien devant l’éternel Rodolphe Quiédeville (Bearstech) Tests de montée en charge avec Tsung 17 et 18 octobre 2008 4 / 27
  • 5. Tsung Présentation générale Parlons de Tsung Projet Libre GPL v2 7 ans Ecrit par Nicolas Niclausse Né chez Idealx (IDX-Tsunami), Jabber Erlang 1.3.0 septembre 2008 Rodolphe Quiédeville (Bearstech) Tests de montée en charge avec Tsung 17 et 18 octobre 2008 5 / 27
  • 6. Tsung Présentation générale Dans la technique Multi-protocole (jabber, HTTP, PostgreSQL et MySQL, ...) Distribué Hautes performances (10k users, Gigabit, ...) Support SSL Multi IP par client (passage de load-balancer, ...) Configuration par fichier XML Scénarios dynamiques Répartition non linéaire Rodolphe Quiédeville (Bearstech) Tests de montée en charge avec Tsung 17 et 18 octobre 2008 6 / 27
  • 7. Tsung Présentation générale Coté HTTP HTTP/1.0 et HTTP/1.1 GET, POST, PUT, DELETE et HEAD Gestion automatique des Cookies Sait faire du ’GET If-modified since’ WWW-authentication Basic Mode Proxy pour enregistrer un scénario SOAP HTTP server or proxy server load testing. Rodolphe Quiédeville (Bearstech) Tests de montée en charge avec Tsung 17 et 18 octobre 2008 7 / 27
  • 8. Tsung Le fichier de configuration Les sections Les clients Les serveurs La charge Les options Les sessions Rodolphe Quiédeville (Bearstech) Tests de montée en charge avec Tsung 17 et 18 octobre 2008 8 / 27
  • 9. Tsung Le fichier de configuration Les clients <!-- Client side setup --> <clients> <client host="tsung0" /> </clients> Rodolphe Quiédeville (Bearstech) Tests de montée en charge avec Tsung 17 et 18 octobre 2008 9 / 27
  • 10. Tsung Le fichier de configuration Les clients <!-- Client side setup --> <clients> <client host="ts1" weight="1" maxusers="800"> <ip value="10.9.195.12"></ip> <ip value="10.9.195.13"></ip> </client> <client host="ts2" weight="3" maxusers="600" cpu="2"> <ip value="10.9.195.14"></ip> </client> </clients> Rodolphe Quiédeville (Bearstech) Tests de montée en charge avec Tsung 17 et 18 octobre 2008 10 / 27
  • 11. Tsung Le fichier de configuration Les serveurs Cas simple <!-- Server side setup --> <servers> <server host="192.168.56.2" port="80" type="tcp"/> </servers> Rodolphe Quiédeville (Bearstech) Tests de montée en charge avec Tsung 17 et 18 octobre 2008 11 / 27
  • 12. Tsung Le fichier de configuration Les serveurs Round robin Round robin intégré dans tsung <!-- Server side setup --> <servers> <server host="www1" port="80" type="tcp"/> <server host="www2" port="80" type="tcp"/> <server host="www3" port="80" type="tcp"/> </servers> Rodolphe Quiédeville (Bearstech) Tests de montée en charge avec Tsung 17 et 18 octobre 2008 12 / 27
  • 13. Tsung Le fichier de configuration La charge définition La définition de la “charge” phase duration unit Rodolphe Quiédeville (Bearstech) Tests de montée en charge avec Tsung 17 et 18 octobre 2008 13 / 27
  • 14. Tsung Le fichier de configuration La charge Charge simple Charge à phase unique <load> <arrivalphase phase="1" duration="60" unit="second"> <users interarrival="10" unit="second"></users> </arrivalphase> </load> Rodolphe Quiédeville (Bearstech) Tests de montée en charge avec Tsung 17 et 18 octobre 2008 14 / 27
  • 15. Tsung Le fichier de configuration La charge Charge montante Charge à phases multiples <load> <arrivalphase phase="1" duration="60" unit="second"> <users interarrival="10" unit="second"></users> </arrivalphase> <arrivalphase phase="2" duration="60" unit="second"> <users interarrival="5" unit="second"></users> </arrivalphase> <arrivalphase phase="3" duration="60" unit="second"> <users interarrival="1" unit="second"></users> </arrivalphase> </load> Rodolphe Quiédeville (Bearstech) Tests de montée en charge avec Tsung 17 et 18 octobre 2008 15 / 27
  • 16. Tsung Le fichier de configuration Les options Thinktime Temps de pause <options> <option name="thinktime" value="3" random="true" override="false"></option> </options> Rodolphe Quiédeville (Bearstech) Tests de montée en charge avec Tsung 17 et 18 octobre 2008 16 / 27
  • 17. Tsung Le fichier de configuration Les options Thinktime User agent <options> <option type="ts_http" name="user_agent"> <user_agent probability="80">Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.8) Gecko/20050513 Galeon/1.3.21</user_agent> <user_agent probability="20">Mozilla/5.0 (Windows; U; Windows NT 5.2; fr-FR; rv:1.7.8) Gecko/20050511 Firefox/1.0.4</user_agent> </option> </options> Rodolphe Quiédeville (Bearstech) Tests de montée en charge avec Tsung 17 et 18 octobre 2008 17 / 27
  • 18. Tsung Le fichier de configuration Les sessions Les sessions (le scénario) <sessions> <session name=’read’ probability=’100’ type=’ts_http’> <request> <http url=’/index.html’ version=’1.1’ method=’GET’ /> </request> </session> </sessions> Rodolphe Quiédeville (Bearstech) Tests de montée en charge avec Tsung 17 et 18 octobre 2008 18 / 27
  • 19. Tsung Le fichier de configuration Les sessions Les transactions <sessions> <session name=’read’ probability=’100’ type=’ts_http’> <request> <http url=’/index.html’ version=’1.1’ method=’GET’ /> </request> <transaction name=’images’> <request><http url=’/one.png’ version=’1.1’ method=’GET’ <request><http url=’/two.png’ version=’1.1’ method=’GET’ </transaction> </session> </sessions> Rodolphe Quiédeville (Bearstech) Tests de montée en charge avec Tsung 17 et 18 octobre 2008 19 / 27
  • 20. Tsung Le fichier de configuration Les fonctions avancées Substitution <request subst="true"> <http url=’get.php?’ contents=’%%readcsv:user%%&amp;lang=FR’ version=’1.1’ method=’POST’></http> </request> readcsv est un module erlang qui renvoit une chaîne "login=LOGIN" Rodolphe Quiédeville (Bearstech) Tests de montée en charge avec Tsung 17 et 18 octobre 2008 20 / 27
  • 21. Tsung Le fichier de configuration Les fonctions avancées La boucle for <for from="1" to="30" incr="1" var="counter"> <transaction name="index_request"> <request> <http url=’/?last_read=1’ version=’1.1’ method=’GET’></http> </request> </transaction> <thinktime value="5"/> </for> Rodolphe Quiédeville (Bearstech) Tests de montée en charge avec Tsung 17 et 18 octobre 2008 21 / 27
  • 22. Tsung Le fichier de configuration Les fonctions avancées Test du résultat <request> <match do="continue" when="match">Welcome !</match> <http url=’/login.php’ version=’1.0’ method=’POST’ contents=’username=nic&amp;user_password=sesame’ content_type=’application/x-www-form-urlencoded’ > </request> Rodolphe Quiédeville (Bearstech) Tests de montée en charge avec Tsung 17 et 18 octobre 2008 22 / 27
  • 23. Les résultats Log et HTML log à tous les étages output complet du traffic pages htmls avec compteurs graphs Rodolphe Quiédeville (Bearstech) Tests de montée en charge avec Tsung 17 et 18 octobre 2008 23 / 27
  • 24. Les résultats Log et HTML ALT + F2 Rodolphe Quiédeville (Bearstech) Tests de montée en charge avec Tsung 17 et 18 octobre 2008 24 / 27
  • 25. Conclusion Ce n’est qu’un début Juste un aperçu Réelle modularité (MySQL) Grande réactivité de Nicolas Rodolphe Quiédeville (Bearstech) Tests de montée en charge avec Tsung 17 et 18 octobre 2008 25 / 27
  • 26. Conclusion What else ? Les autres outils libres ab httperf Siege Using free software for HTTP load testing By Leslie P. Polzer on August 12, 2008 http://www.linux.com/feature/143896 Rodolphe Quiédeville (Bearstech) Tests de montée en charge avec Tsung 17 et 18 octobre 2008 26 / 27
  • 27. Conclusion Contact Merci Questions ? Rodolphe Quiédeville rquiedeville@bearstech.com http://www.bearstech.com/ Rodolphe Quiédeville (Bearstech) Tests de montée en charge avec Tsung 17 et 18 octobre 2008 27 / 27