123/06/2013
Gestion de projet Drupal :Gestion de projet Drupal :
quelques outils indispensablesquelques outils indispensables
Pierre Ternon
Open Web Solutions
223/06/2013
Bonjour !Bonjour !
  Pierre Ternon
  Associé fondateur, gérant
Open Web Solutions
323/06/2013
Plan de la présentationPlan de la présentation

Spécifications

Redmine

Versionnement

Drush

Déploiement

Communication

Tests et montée en charge
423/06/2013
SpécificationsSpécifications

Spécifications fonctionnelles sous Axure :
− Lisibilité pour le client
− Maquette interactive cliquable
− Annotations et commentaires

Spécifications techniques
− Types de contenus
− Configuration du Drupal, taxonomies
− Modules utilisés, paramétrages, 
développements spécifiques
− Modules custom
− Services divers
523/06/2013
623/06/2013
Spéc. – gestion documentaireSpéc. – gestion documentaire
… et déjà Redmine pendant cette phase : gestion documentaire et Wiki

CR de réunions, CR ateliers : 
– Mise à disposition de la préparation en amont
– Mise à disposition du CR en aval

Informations projet diverses, client comme équipe de développement :
– Intervenants, coordonnées
– Instances serveurs, repository Git, etc.
– Livrables, documents divers (spécifications)
– Guidelines Redmine pour le projet (workflow des demandes, process 
d'échanges avec le client)
– Guidelines développement (coding standards, règles de nommage, 
organisation des fichiers, etc.)
– CR réunions de dév
Liste de fichiers catégorisée
723/06/2013
Spéc. – gestion documentaireSpéc. – gestion documentaire
Avantages :

Souplesse de rédaction / édition, ajout de rubriques, liens

Simplicité du langage wiki utilisé

Authentification Redmine par projet (sécurité) et gestion des rôles/permissions
Page Wiki Page édition Wiki
823/06/2013
Redmine - présentationRedmine - présentation
Redmine est organisé autour de projets (et sous-projets)
923/06/2013
Redmine - présentationRedmine - présentation
Gestion utilisateurs, rôles, permissions et alertes emails
1023/06/2013
Redmine - présentationRedmine - présentation
Modules et plugins activables par projet
1123/06/2013
Redmine - demandeRedmine - demande
●
Sujet / description / fichiers joints
●
Type (paramétrage global) : Bug / Tache / Assistance /
Spécifications – Category au sens d.o
●
Statut (paramétrage global – Status au sens d.o) /
Assignation (Assigned d.o) / Catégorie (paramétrage par
projet – Component d.o) : au cœur du process de gestion
des tickets
●
Dates (début, échéance) : idéal pour les planning (gantt)
de développement
●
Temps estimé / Temps passé : TMA
●
Pourcentage de réalisation : utile tout au long de la
phase de développement, TMA comprise
●
Liens entre les taches : tache parente, tache liée
●
Commentaire à chaque changement de statut
→ Segmentation et organisation des tâches
→ Workflow de traitement des taches
→ Traçabilité des développements et évolutions
1223/06/2013
Redmine - demandeRedmine - demande
Liste de demandes : « vues » paramétrables (filtres et champs) par utilisateur et par projet
1323/06/2013
Redmine - demandeRedmine - demande
Pas toujours facile de former les clients...
– Documenter le plus possible les demandes : étapes de reproductibilité, liens
– Rigeur dans la qualification et le workflow des demandes
– Bien faire la différence entre des informations à demander par mail (« Bonjour, êtes-vous
disponible demain pour un rendez-vous téléphonique avec la DSI chez nous ? ») ou
par le bais d'une demande
– Rouvrir une demande déjà postée en cas de problème revenant et éviter les doublons
dans l'absolu
… Mais au vu des décomptes de demandes, ça fonctionne :)
Janv 2010 1308
Janv 2011 3945
Janv 2012 6007
Juin 2013 10470
1423/06/2013
Redmine – DépôtRedmine – Dépôt
Browser graphique du repository :
•
Branches
•
Révisions, historique
•
Commentaires associés aux
commits
•
Visualisation des fichiers à toutes
les révisions possibles
•
Diff entre les révisions
(Tout ça est déjà possible en ligne de
commande évidemment)
Demandes... couplées au dépôt Git (ou Subversion) !
1523/06/2013
Redmine – DépôtRedmine – Dépôt
git commit -m 'Refs #MON_ID : mon commentaire'
(tags : refs, references ou IssueID)
Changement de statut automatique d'une demande en fonction du commentaire du commit
(fixes ou closes passe la demande en résolu ou fermé)
Et possibilité de les combiner :
git commit -m 'This commit refs #1, #2 and fixes #3'
LE plus : association demande ↔ commits
1623/06/2013
1723/06/2013
Redmine - conclusionRedmine - conclusion
=> Système classique mais efficace et souple
Tout au long du projet : Centralisation de la gestion de projet
» Demandes
» Wiki (gestion de projet : CR réunions, spécifications, CR ateliers de travail)
» Documents (fichiers spécifications, livrables divers)
Fonctionnalités supplémentaires et Plugins
•
Activité globale
•
Gantt : planning de réalisation/livraison des demandes
•
Autres modules : Forum, Calendrier, Annonces
•
Plugins : environ 400 ; ex. chez OWS : paste
1823/06/2013
Versionnement -Versionnement -
•
Versionnement en général : enregistrement structuré et commenté des différentes étapes de
l'évolution du code, rollback possibles
•
Outil Open Source
•
Simple, efficace et décentralisé (permet de travailler offline : la plupart des opérations sont
réalisées en local)
•
Quelques commandes de base :
•
clone
•
add
•
branch / merge
•
pull / commit / push
•
diff
•
status
1923/06/2013
Versionnement -Versionnement -

Communauté, documentation :
https://git.wiki.kernel.org/index.php/Gitweb

Sans compétences système,
possibilité d'héberger le projet sur des forges :
Gitorious, github, etc.

Branches GIT :
séparation dev / preprod / prod
pour piloter les déploiements.
2023/06/2013
Drush (Drush (DruDrupalpal ShShell)ell)
Qu'est-ce que Drush ?
•
Outil indispensable tout au long de la vie du projet : Drush (pour Drupal Shell)
•
Regroupement de scripts exécutés en ligne de commande.
drush dl admin_menu
Pourquoi Drush ?
•
Gagner du temps, simplifier certaines taches
•
Scripts d'automatisation.
Quelques commandes de base :
•
Télécharger, activer/désactiver des modules, des thèmes (drush dis overlay)
•
Vider les caches (drush cc all)
•
Exécuter le cron (drush cron)
•
Exécuter du php (drush php-eval 'MON CODE') / une requête (drush sqlq 'MA QUERY')
•
Récupérer une url temporaire de connexion admin (drush uli)
•
Etc. drush help :-)
2123/06/2013
Drush (Drush (DruDrupalpal ShShell)ell)
Développement aisé de nouvelles commandes :
2223/06/2013
Déploiement - FeaturesDéploiement - Features
Pourquoi Features ?
•
Sous Drupal, un certain nombre d'éléments se trouvent en base de données, notamment :
les structures de contenus, les variables de configuration.
•
=> difficile au sein de notre process d'intégration continue, d'intégrer les phases de
déploiements (Integration / Merging, Deployment / Staging) et les éventuels retours en arrière
en cas de problème.
Solution
•
Export (et Import) in code (module Drupal)
des éléments structurels stockés en de base de données
•
hook_update_N() pour les mises à jour de base de données
→ Configuration in code, contenus en base de données.
2323/06/2013
Déploiement - FeaturesDéploiement - Features
Types d'objets exportés (et donc importés)
•
Variables (module Strongarm),
•
Context, panels
•
Imagecache
•
Views,
•
Types de contenus (et CCK ou fields)
•
Roles/permissions,
•
Vocabulaires
•
Extra modules : taxonomy (vocabulaires en D6), nodequeues, blocks
Commandes Drush
Drush feature-revert MA_FEATURE
Drush feature-update MA_FEATURE
Drush updatedb
2423/06/2013
Communication en ligne - IRCCommunication en ligne - IRC
Qu'est-ce que IRC ?
•
Internet Relay Chat : protocole de communication textuelle sur Internet.
•
Côté serveur :
•
Réseaux libres et gratuits du type IRCNet ou Freenode
•
Ou installez votre propre serveur à l'aide des nombreux IRCd (IRC Daemon)
•
Côté client : Xchat fonctionne aussi bien sous Linux ou Windows (X-Chat Aqua pour Mac)
Pourquoi ?
Travail à distance ou en commun :
•
Equipes de développements
•
Des freelances
•
Des salariés en télétravail
•
Des fournisseurs (hébergeurs tiers par exemples)
•
Et même dans nos propres locaux :)
2523/06/2013
Communication en ligne - IRCCommunication en ligne - IRC
Comment ?
IRC nous permet au quotidien :
•
Un salon de discussion par projet
(un simple /join #ows_MONPROJET)
•
Dématérialisation, discussions en temps réel
avec l'équipe de développeurs,
des fournisseurs éventuellement
•
Post des commit sur canal projet pour plus de cohésion de l'équipe et de visibilité (Jenkins se
charge du bot).
Et les réunions ?
•
Réunion de développement : souvent Skype
•
Avec vidéo et partage d'application/écran : Google Hangout (< 10 participants en gratuit)
2623/06/2013
Déploiement - JenkinsDéploiement - Jenkins
Schéma de fonctionnement
Dev / Commit sur branche master
Jenkins écoute Gitorious
Suite de tests (coding standards)
KO OK
●
Log Jenkins mailé au développeur
●
Notification IRC, salon projet
●
Déploiement sur le dev
●
Mise à jour des features, clear cache, etc.
●
Notification IRC, salon projet
●
PUIS : merge de la branche master vers la preprod → Jenkins déploie sur la preprod
●
Validation du client sur la preprod
●
Si OK : Merge Preprod → Prod
2723/06/2013
Echec après commit
Ex. script de déploiement
Notification IRC
2823/06/2013
Tests avec SéléniumTests avec Sélénium
•
Installation poste local triviale et lancement des scripts de tests (interface graphique conviviale)
•
Facilité à enregistrer et à rejouer
•
Autocompletion pour les commandes selenium classiques lors de la saisie des actions
•
Tests sauvegardés en différents formats (Format HTML facile à lire et à compléter)
•
Possibilité de délégation à des profils de test
2923/06/2013
Tests avec SéléniumTests avec Sélénium
Pour plus de robustesse et d'automatisation des tests de non régression :
•
Selenium Webdriver pour automatisation côté serveur : utilise les fonctionnalités natives
d'automatisation de chaque browser
•
Tests en Java, Python, C#, etc. et Php
•
Ecriture des tests (pas d'enregistrement graphique)
Je vous conseille la présentation de Didier samedi à 16h20 dans la salle Corail :
Introduction aux tests de recette automatisés avec l'extension Drupal pour Behat/Mink
3023/06/2013
Montée en charge - TsungMontée en charge - Tsung
Pourquoi Tsung ?
●
Ecrit en Erlang : grand nombre de requêtes/sec avec peu de CPU (parallélisme)
●
Multi protocole : HTTP, PostgreSQL, MySQL, LDAP, etc.
●
Installation relativement aisée
●
Clustering entre des VM (liaison SSH), piloté par un tsung master.
●
Utilisation d'un proxy pour enregistrer des sessions qui génèrent des fichiers XML
(selenium proxy -> fichier XML de tsung).
●
Edition aisée des fichiers XML.
●
Possibilités de renseigner des formulaires et de jouer des sessions authentifiées.
●
Paramétrage fin de la montée en charge et de la répartition des utilisateurs créés par tsung entre les
différents scénarios définis dans le XML
3123/06/2013
Montée en charge - TsungMontée en charge - Tsung
<load duration="240" unit="minute">
<!-- several arrival phases can be set: for each phase, you can set
the mean inter-arrival time between new clients and the phase
duration -->
<arrivalphase phase="1" duration="2" unit="minute">
<users interarrival="2" unit="second"></users>
</arrivalphase>
<arrivalphase phase="2" duration="2" unit="minute">
<users interarrival="1" unit="second"></users>
</arrivalphase>
<arrivalphase phase="3" duration="2" unit="minute">
<users interarrival="0.8" unit="second"></users>
</arrivalphase>
<arrivalphase phase="4" duration="90" unit="minute">
< !--- en phase 4 on crée 0.6 user / second-->
<users interarrival="0.6" unit="second"></users>
</arrivalphase>
</load>
<option type="ts_http" name="user_agent">
<user_agent probability="98">Mozilla/5.0 (X11; U; Linux i686; en-US;
rv:1.7.8) Gecko/20050513 Galeon/1.3.21</user_agent>
<user_agent probability="1">Mozilla/5.0 (Linux; U; Android 2.1-update1; fr-fr;
GTI9000 Build/ECLAIR) AppleWebKit/530.17 (KHTML, like Gecko)
Version/4.0 Mobile Safari/530.17</user_agent>
<user_agent probability="1">Mozilla/5.0 (iPod; U; CPU iPhone OS 2_1 like
Mac OS X; fr-fr) AppleWebKit/525.18.1 (KHTML, like Gecko)
Version/3.1.1 Mobile/5F137 Safari/525.20</user_agent>
</option>
<session name='anonymous' probability='10' type='ts_http'>
<request><http url='http://prod.franceculture.fr/' version='1.1'
method='GET'></http></request>
<thinktime random='true' value='6'/> <-- temps entre 2 clics
<request><http url='/theme/sciences-dures-et-sciences-humaines/geopolitique'
version='1.1' method='GET'></http></request>
<thinktime random='true' value='4'/>
Scenario XML
Navigateurs utilisés
Répartition des sessions
3223/06/2013
Montée en charge - TsungMontée en charge - Tsung
3323/06/2013
Montée en charge - TsungMontée en charge - Tsung
3423/06/2013
Merci pour votre écoute !Merci pour votre écoute !

Gestion de projet Drupal : quelques outils indispensables - OWS - Drupalcamp Paris 2013

  • 1.
    123/06/2013 Gestion de projetDrupal :Gestion de projet Drupal : quelques outils indispensablesquelques outils indispensables Pierre Ternon Open Web Solutions
  • 2.
  • 3.
  • 4.
    423/06/2013 SpécificationsSpécifications  Spécifications fonctionnelles sous Axure : − Lisibilité pour le client − Maquette interactive cliquable −Annotations et commentaires  Spécifications techniques − Types de contenus − Configuration du Drupal, taxonomies − Modules utilisés, paramétrages,  développements spécifiques − Modules custom − Services divers
  • 5.
  • 6.
    623/06/2013 Spéc. – gestion documentaireSpéc. – gestion documentaire … et déjàRedmine pendant cette phase : gestion documentaire et Wiki  CR de réunions, CR ateliers :  – Mise à disposition de la préparation en amont – Mise à disposition du CR en aval  Informations projet diverses, client comme équipe de développement : – Intervenants, coordonnées – Instances serveurs, repository Git, etc. – Livrables, documents divers (spécifications) – Guidelines Redmine pour le projet (workflow des demandes, process  d'échanges avec le client) – Guidelines développement (coding standards, règles de nommage,  organisation des fichiers, etc.) – CR réunions de dév Liste de fichiers catégorisée
  • 7.
  • 8.
  • 9.
  • 10.
    1023/06/2013 Redmine - présentationRedmine- présentation Modules et plugins activables par projet
  • 11.
    1123/06/2013 Redmine - demandeRedmine- demande ● Sujet / description / fichiers joints ● Type (paramétrage global) : Bug / Tache / Assistance / Spécifications – Category au sens d.o ● Statut (paramétrage global – Status au sens d.o) / Assignation (Assigned d.o) / Catégorie (paramétrage par projet – Component d.o) : au cœur du process de gestion des tickets ● Dates (début, échéance) : idéal pour les planning (gantt) de développement ● Temps estimé / Temps passé : TMA ● Pourcentage de réalisation : utile tout au long de la phase de développement, TMA comprise ● Liens entre les taches : tache parente, tache liée ● Commentaire à chaque changement de statut → Segmentation et organisation des tâches → Workflow de traitement des taches → Traçabilité des développements et évolutions
  • 12.
    1223/06/2013 Redmine - demandeRedmine- demande Liste de demandes : « vues » paramétrables (filtres et champs) par utilisateur et par projet
  • 13.
    1323/06/2013 Redmine - demandeRedmine- demande Pas toujours facile de former les clients... – Documenter le plus possible les demandes : étapes de reproductibilité, liens – Rigeur dans la qualification et le workflow des demandes – Bien faire la différence entre des informations à demander par mail (« Bonjour, êtes-vous disponible demain pour un rendez-vous téléphonique avec la DSI chez nous ? ») ou par le bais d'une demande – Rouvrir une demande déjà postée en cas de problème revenant et éviter les doublons dans l'absolu … Mais au vu des décomptes de demandes, ça fonctionne :) Janv 2010 1308 Janv 2011 3945 Janv 2012 6007 Juin 2013 10470
  • 14.
    1423/06/2013 Redmine – DépôtRedmine– Dépôt Browser graphique du repository : • Branches • Révisions, historique • Commentaires associés aux commits • Visualisation des fichiers à toutes les révisions possibles • Diff entre les révisions (Tout ça est déjà possible en ligne de commande évidemment) Demandes... couplées au dépôt Git (ou Subversion) !
  • 15.
    1523/06/2013 Redmine – DépôtRedmine– Dépôt git commit -m 'Refs #MON_ID : mon commentaire' (tags : refs, references ou IssueID) Changement de statut automatique d'une demande en fonction du commentaire du commit (fixes ou closes passe la demande en résolu ou fermé) Et possibilité de les combiner : git commit -m 'This commit refs #1, #2 and fixes #3' LE plus : association demande ↔ commits
  • 16.
  • 17.
    1723/06/2013 Redmine - conclusionRedmine- conclusion => Système classique mais efficace et souple Tout au long du projet : Centralisation de la gestion de projet » Demandes » Wiki (gestion de projet : CR réunions, spécifications, CR ateliers de travail) » Documents (fichiers spécifications, livrables divers) Fonctionnalités supplémentaires et Plugins • Activité globale • Gantt : planning de réalisation/livraison des demandes • Autres modules : Forum, Calendrier, Annonces • Plugins : environ 400 ; ex. chez OWS : paste
  • 18.
    1823/06/2013 Versionnement -Versionnement - • Versionnementen général : enregistrement structuré et commenté des différentes étapes de l'évolution du code, rollback possibles • Outil Open Source • Simple, efficace et décentralisé (permet de travailler offline : la plupart des opérations sont réalisées en local) • Quelques commandes de base : • clone • add • branch / merge • pull / commit / push • diff • status
  • 19.
    1923/06/2013 Versionnement -Versionnement -  Communauté,documentation : https://git.wiki.kernel.org/index.php/Gitweb  Sans compétences système, possibilité d'héberger le projet sur des forges : Gitorious, github, etc.  Branches GIT : séparation dev / preprod / prod pour piloter les déploiements.
  • 20.
    2023/06/2013 Drush (Drush (DruDrupalpalShShell)ell) Qu'est-ce que Drush ? • Outil indispensable tout au long de la vie du projet : Drush (pour Drupal Shell) • Regroupement de scripts exécutés en ligne de commande. drush dl admin_menu Pourquoi Drush ? • Gagner du temps, simplifier certaines taches • Scripts d'automatisation. Quelques commandes de base : • Télécharger, activer/désactiver des modules, des thèmes (drush dis overlay) • Vider les caches (drush cc all) • Exécuter le cron (drush cron) • Exécuter du php (drush php-eval 'MON CODE') / une requête (drush sqlq 'MA QUERY') • Récupérer une url temporaire de connexion admin (drush uli) • Etc. drush help :-)
  • 21.
    2123/06/2013 Drush (Drush (DruDrupalpalShShell)ell) Développement aisé de nouvelles commandes :
  • 22.
    2223/06/2013 Déploiement - FeaturesDéploiement- Features Pourquoi Features ? • Sous Drupal, un certain nombre d'éléments se trouvent en base de données, notamment : les structures de contenus, les variables de configuration. • => difficile au sein de notre process d'intégration continue, d'intégrer les phases de déploiements (Integration / Merging, Deployment / Staging) et les éventuels retours en arrière en cas de problème. Solution • Export (et Import) in code (module Drupal) des éléments structurels stockés en de base de données • hook_update_N() pour les mises à jour de base de données → Configuration in code, contenus en base de données.
  • 23.
    2323/06/2013 Déploiement - FeaturesDéploiement- Features Types d'objets exportés (et donc importés) • Variables (module Strongarm), • Context, panels • Imagecache • Views, • Types de contenus (et CCK ou fields) • Roles/permissions, • Vocabulaires • Extra modules : taxonomy (vocabulaires en D6), nodequeues, blocks Commandes Drush Drush feature-revert MA_FEATURE Drush feature-update MA_FEATURE Drush updatedb
  • 24.
    2423/06/2013 Communication en ligne- IRCCommunication en ligne - IRC Qu'est-ce que IRC ? • Internet Relay Chat : protocole de communication textuelle sur Internet. • Côté serveur : • Réseaux libres et gratuits du type IRCNet ou Freenode • Ou installez votre propre serveur à l'aide des nombreux IRCd (IRC Daemon) • Côté client : Xchat fonctionne aussi bien sous Linux ou Windows (X-Chat Aqua pour Mac) Pourquoi ? Travail à distance ou en commun : • Equipes de développements • Des freelances • Des salariés en télétravail • Des fournisseurs (hébergeurs tiers par exemples) • Et même dans nos propres locaux :)
  • 25.
    2523/06/2013 Communication en ligne- IRCCommunication en ligne - IRC Comment ? IRC nous permet au quotidien : • Un salon de discussion par projet (un simple /join #ows_MONPROJET) • Dématérialisation, discussions en temps réel avec l'équipe de développeurs, des fournisseurs éventuellement • Post des commit sur canal projet pour plus de cohésion de l'équipe et de visibilité (Jenkins se charge du bot). Et les réunions ? • Réunion de développement : souvent Skype • Avec vidéo et partage d'application/écran : Google Hangout (< 10 participants en gratuit)
  • 26.
    2623/06/2013 Déploiement - JenkinsDéploiement- Jenkins Schéma de fonctionnement Dev / Commit sur branche master Jenkins écoute Gitorious Suite de tests (coding standards) KO OK ● Log Jenkins mailé au développeur ● Notification IRC, salon projet ● Déploiement sur le dev ● Mise à jour des features, clear cache, etc. ● Notification IRC, salon projet ● PUIS : merge de la branche master vers la preprod → Jenkins déploie sur la preprod ● Validation du client sur la preprod ● Si OK : Merge Preprod → Prod
  • 27.
    2723/06/2013 Echec après commit Ex.script de déploiement Notification IRC
  • 28.
    2823/06/2013 Tests avec SéléniumTestsavec Sélénium • Installation poste local triviale et lancement des scripts de tests (interface graphique conviviale) • Facilité à enregistrer et à rejouer • Autocompletion pour les commandes selenium classiques lors de la saisie des actions • Tests sauvegardés en différents formats (Format HTML facile à lire et à compléter) • Possibilité de délégation à des profils de test
  • 29.
    2923/06/2013 Tests avec SéléniumTestsavec Sélénium Pour plus de robustesse et d'automatisation des tests de non régression : • Selenium Webdriver pour automatisation côté serveur : utilise les fonctionnalités natives d'automatisation de chaque browser • Tests en Java, Python, C#, etc. et Php • Ecriture des tests (pas d'enregistrement graphique) Je vous conseille la présentation de Didier samedi à 16h20 dans la salle Corail : Introduction aux tests de recette automatisés avec l'extension Drupal pour Behat/Mink
  • 30.
    3023/06/2013 Montée en charge- TsungMontée en charge - Tsung Pourquoi Tsung ? ● Ecrit en Erlang : grand nombre de requêtes/sec avec peu de CPU (parallélisme) ● Multi protocole : HTTP, PostgreSQL, MySQL, LDAP, etc. ● Installation relativement aisée ● Clustering entre des VM (liaison SSH), piloté par un tsung master. ● Utilisation d'un proxy pour enregistrer des sessions qui génèrent des fichiers XML (selenium proxy -> fichier XML de tsung). ● Edition aisée des fichiers XML. ● Possibilités de renseigner des formulaires et de jouer des sessions authentifiées. ● Paramétrage fin de la montée en charge et de la répartition des utilisateurs créés par tsung entre les différents scénarios définis dans le XML
  • 31.
    3123/06/2013 Montée en charge- TsungMontée en charge - Tsung <load duration="240" unit="minute"> <!-- several arrival phases can be set: for each phase, you can set the mean inter-arrival time between new clients and the phase duration --> <arrivalphase phase="1" duration="2" unit="minute"> <users interarrival="2" unit="second"></users> </arrivalphase> <arrivalphase phase="2" duration="2" unit="minute"> <users interarrival="1" unit="second"></users> </arrivalphase> <arrivalphase phase="3" duration="2" unit="minute"> <users interarrival="0.8" unit="second"></users> </arrivalphase> <arrivalphase phase="4" duration="90" unit="minute"> < !--- en phase 4 on crée 0.6 user / second--> <users interarrival="0.6" unit="second"></users> </arrivalphase> </load> <option type="ts_http" name="user_agent"> <user_agent probability="98">Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.8) Gecko/20050513 Galeon/1.3.21</user_agent> <user_agent probability="1">Mozilla/5.0 (Linux; U; Android 2.1-update1; fr-fr; GTI9000 Build/ECLAIR) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17</user_agent> <user_agent probability="1">Mozilla/5.0 (iPod; U; CPU iPhone OS 2_1 like Mac OS X; fr-fr) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5F137 Safari/525.20</user_agent> </option> <session name='anonymous' probability='10' type='ts_http'> <request><http url='http://prod.franceculture.fr/' version='1.1' method='GET'></http></request> <thinktime random='true' value='6'/> <-- temps entre 2 clics <request><http url='/theme/sciences-dures-et-sciences-humaines/geopolitique' version='1.1' method='GET'></http></request> <thinktime random='true' value='4'/> Scenario XML Navigateurs utilisés Répartition des sessions
  • 32.
    3223/06/2013 Montée en charge- TsungMontée en charge - Tsung
  • 33.
    3323/06/2013 Montée en charge- TsungMontée en charge - Tsung
  • 34.
    3423/06/2013 Merci pour votreécoute !Merci pour votre écoute !