Apache JMeter de A à Z. Antonio Gomes Rodrigues and Bruno Demion a.k.a. Milamber

Dimension: px
Commencer à balayer dès la page:

Download "Apache JMeter de A à Z. Antonio Gomes Rodrigues and Bruno Demion a.k.a. Milamber"

Transcription

1 Apache JMeter de A à Z Antonio Gomes Rodrigues and Bruno Demion a.k.a. Milamber

2 Apache JMeter de A à Z Antonio Gomes Rodrigues and Bruno Demion a.k.a. Milamber This book is for sale at This version was published on This is a Leanpub book. Leanpub empowers authors and publishers with the Lean Publishing process. Lean Publishing is the act of publishing an in-progress ebook using lightweight tools and many iterations to get reader feedback, pivot until you have the right book and build traction once you do Antonio Gomes Rodrigues and Bruno Demion a.k.a. Milamber

3 Table des matières Tester un serveur de bases de données Un peu de théorie Mise en place avec JMeter Méthodologie Mise en pratique avec JMeter Conclusion L écosystème d Apache JMeter Introduction Plugin polyvalent JMeter dans le cloud DevOps Aide à la supervision et au diagnostic D autres protocoles DSL (Domain specific language) Conclusion

4 Tester un serveur de bases de données Un peu de théorie De nos jours, l architecture d un moteur de base est devenu assez complexe comme le mon tre le schéma ci-dessous (et encore ce n est qu une description simplifiée de l architecture d Oracle). Description simplifiée de l architecture d Oracle Chaque partie de cette architecture peut être paramétrée afin de s adapter au mieux à l utilisation de la base de données. Si on ajoute que les données stockées en base sont l un des éléments les plus importants d une application et celui qui pose le plus de problème de performance, on comprend l importance de faire des tests de charge sur le serveur de bases de données.

5 Tester un serveur de bases de données 2 Pour ceux qui ne sont pas encore convaincus par l importance de faire du tuning de l architecture du moteur de base de données, ci dessous un exemple de temps de réponse d une requête SQL sur un Oracle sans tuning (la SGA (un des caches de la base de données Oracle) n est pas bien configurée) par rapport à un Oracle optimisé (on a augmenté la taille de la SGA pour qu elle soit cohérente par rapport à la taille des données stockées en base). Importance du SGA Comme on peut le voir, cela vaut le coût de passer un peu de temps à optimiser Oracle à l aide d un test de charge. Regardons maintenant comment JMeter permet de tester un serveur de base de données. Mise en place avec JMeter JMeter étant un programme Java, l accès à une base de données se fait à l aide du protocole JDBC. La première chose à faire est donc de mettre le pilote JDBC dans le ClassPath de JMeter si ce n est pas déjà fait (en pratique, déposez le fichier pilote.jar dans JMETER_HOME/lib/). Une fois cela fait, il faut configurer la connexion à la base avec l élément Configuration de connexion JDBC. Cela va nous permettre de configurer la chaîne de connexion à notre base de données (URL, port, identifiant de connexion, mot de passe, etc.).

6 Tester un serveur de bases de données 3 Configuration de connexion JDBC Cet élément est composé de quatre parties nommées Nom de liaison du pool, Configuration du pool de connexions, Validation des connexions par le pool et Configuration de connexion à la base de données. Leurs noms étant parlant, nous ne nous attarderons donc pas plus. Cependant il est important de faire attention aux parties Configuration du pool de connexions et Validation des connexions par le pool afin de ne pas surcharger JMeter (en particulier le nombre maximum de connexions) et la base de données (niveau d isolation de la Transaction, auto commit et requête de validation). Bien sûr, il est possible d avoir plusieurs éléments Configuration de connexion JDBC qui pointent sur plusieurs bases de données. Maintenant on peut passer aux requêtes SQL elles-mêmes à l aide de l élément Requête JDBC.

7 Tester un serveur de bases de données 4 Requête JDBC Dans un premier temps on choisit sur quelle base de données les requêtes vont être utilisées à l aide du champ Nom de liaison (nom défini dans l élément Configuration de connexion JDBC). Comme on peut le voir dans la liste Type de requête, tous les types de requêtes peuvent être réalisés (UPDATE, SELECT, DELETE, INSERT, appel de procédure stockée, etc.). À l aide de ces deux éléments, on peut tester tout type de base de données (la seule exigence est la présence d un pilote JDBC pour la base de données cible) avec toutes les requêtes SQL imaginables. Méthodologie Avant de passer à des exemples concrets, il est important d avoir une méthodologie afin de réaliser des tests pertinents. Quelques conseils clés qu il est préférable d intégrer à votre processus : Une chose importante lors d un test d une base de données est qu elle doit être la plus isoproduction possible.

8 Tester un serveur de bases de données 5 Par iso-production il faut comprendre deux choses : Le paramétrage du moteur de base de données doit être identique à celui en production (s il existe). Le volume des données en base doit être lui aussi le plus proche de la réalité (le plus simple est d avoir une sauvegarde de ce qu il y a en production ou si on part de zéro, d avoir une idée de la future volumétrie). Pour les sceptiques/curieux, on peut voir sur le graphique suivant, le temps de réponse de la même requête SQL exécutée sur des volumes de données différents. Importance du volume de données Maintenant que nous avons une base de données iso-production, penchons-nous sur le plan de test. Dans notre plan de test il faut prendre en compte la durée des tests et la diversité des requêtes d entrées. De nos jours, il y a forcément des caches dans l architecture que l on va tester (que cela soit au niveau du moteur de base de données ou au niveau d autres composants de l architecture technique). Les caches sont conçus pour éviter que les mêmes traitements lourds (requêtes SQL, etc.) avec les mêmes paramètres (valeurs des paramètres, etc.) soient exécutés à chaque fois. Pour cela un cache stocke le résultat du traitement lourd. Cela implique que le cache sera inutile si la durée de test est trop courte, car il n aura pas le temps de se remplir pour être utile. Et le cache sera trop utilisé si la diversité des requêtes envoyées (et donc leurs types et leurs paramètres) est trop réduites. Inversement le cache sera inutile si le jeu de données est trop diversifié. Mise en pratique avec JMeter Passons à la pratique.

9 Tester un serveur de bases de données 6 Exemple 1 : test de charge d une base de données Démarrons par un exemple simple (que nous complexifierons au fur et à mesure) qui consiste à tester une base de données sous MySQL à l aide d une requête SQL. Occupons-nous dans un premier temps des requêtes SQL de type SELECT. Commençons par configurer notre connexion à MySQL à l aide de l élément Configuration de connexion JDBC. Pour MySQL, l URL de la base de données doit être de la forme jdbc :mysql ://host :port/dbnom et la classe de pilote JDBC égale à com.mysql.jdbc.driver. Dans notre cas, la base MySQL est installée en local et par défaut sur la même machine que JMeter (à éviter absolument lors de vrais tests), son URL sera jdbc :mysql ://localhost :3306/test On règle à zéro le nombre maximum de connexions afin que chaque thread ait sa propre connexion. Configuration de connexion JDBC Maintenant ajoutons une Requête JDBC afin d exécuter notre fameux SELECT. Mettre le nom de la connexion qui a été défini avant. Choisir Select Statement comme type de requête SQL Remplir le champ Requête avec notre select (ici select nom,prenom from Clients where nom like D% ).

10 Tester un serveur de bases de données 7 Requête JDBC Ajouter une assertion afin de contrôler la bonne exécution de notre requête. Dans notre cas, lorsqu il y a une erreur d exécution, la réponse contiendra l expression exceptions. Assertion Dans l état actuel, le script ne couvrira qu une partie infime d un bon plan de test, puisque avec une seule requête SQL, on testera surtout les caches. Heureusement on nous a donné une liste des principales requêtes SQL de type SELECT exécutées. Un moyen simple d intégrer ces nouvelles requêtes à notre script est d utiliser un élément Source de données CSV. Pour cela on va mettre toutes les requêtes dans un fichier CSV. Extrait du fichier CSV :

11 Tester un serveur de bases de données 8 req_sql select nom,prenom from Clients where nom like 'D%' select nom from Clients select nom,prenom from Clients where sex = 'MALE' select nom,prenom from Clients where nom like 'T%' select nom,prenom from Clients where sex = 'FEMALE' 8' select nom,prenom,mail,code_postal from Clients where code_postal = '5841\ On va renseigner le nom de notre fichier CSV dans le champ Nom de fichier de l élément Source de données CSV. Ne pas oublier de changer la valeur du délimiteur de virgule en par exemple point-virgule afin qu il n y ait pas de problème avec les virgules qui composent nos requêtes. Ici on n a pas besoin de définir le nom de la variable où sera stockée la requête afin d être utilisée par la suite, car elle existe déjà dans notre fichier CSV. Source de données CSV Il nous ne reste plus qu à remplacer la requête dans le champ Requête de l élément Requête JDBC par notre variable ${req_sql}.

12 Tester un serveur de bases de données 9 Utilisation de notre variable *${req_sql} dans Requête JDBC Afin de vérifier que cela fonctionnne, on ajoute un élément Arbre de résultats à notre plan de test (ne pas oublier de le désactiver pour la suite lorsqu on fera un test de charge). Arbre de résultats Voila qui est beaucoup mieux mais les requêtes restent statiques et au bout d un moment (plus ou moins long en fonction du nombre de requêtes SQL dans le fichier CSV), elles se retrouveront toutes dans le cache. Afin d éviter ce problème et de rendre notre test plus réaliste, on va rendre dynamiques nos

13 Tester un serveur de bases de données 10 requêtes SQL. Pour commencer on va regrouper nos requêtes par famille ayant la même forme syntaxique. Dans notre cas nous avons deux familles : select XXXXXXX from XXXXX where XXXXX select XXXXXXX from XXXXX On aura donc besoin de deux Requêtes JDBC. Maintenant, pour chaque groupe de requête on va noter ce qui peut être variabilisé. Par exemple : select nom, prenom from Clients where nom like 'D%' deviendra : select {liste_selection} from {table} where {clause where} Toutes ces variables seront dans un fichier CSV. Extrait du fichier CSV : liste_selection_grp1;table_grp1;clause_where_grp1 nom,prenom;clients;nom like 'D%' nom,prenom;clients;sex = 'MALE' nom,prenom;clients;nom like 'T%' nom,prenom;clients;sex = 'FEMALE' nom,prenom,mail,code_postal;clients;code_postal = '58418' On modifie notre élément Source de données CSV afin qu il pointe sur notre nouveau fichier CSV. Enfin on modifie notre champ requête qui devient : select ${liste_selection_grp1} from ${table_grp1} where ${clause_where_gr\ p1}

14 Tester un serveur de bases de données 11 Notre requête SQL On fait la même chose pour le deuxième groupe de requête SQL. Extrait du fichier CSV : liste_selection_grp2;table_grp2 nom,prenom;clients Ajoutons l élément Contrôleur d Ordre aléatoire afin d ajouter encore un peu plus de réalisme en simulant des utilisateurs avec des comportements différents. Contrôleur d Ordre aléatoire Avec encore un peu d effort, on peut encore rendre plus réaliste les clauses WHERE de nos requêtes SQL. On remarque que la clause WHERE peut être séparée en plusieurs parties. {clause where} = {clause where gauche} {clause where condition} {clause w\ here droite} Avec le même méthodologie que précédemment, on peut affiner notre fichier CSV et notre Requête JDBC et ainsi multiplier les requêtes possibles avec un jeu de données réduit (il suffira d utiliser un script qui génère notre fichier CSV en combinant les valeurs possibles). Par exemple. Extrait du fichier CSV :

15 Tester un serveur de bases de données 12 liste_selection_grp1;table_grp1;clause_where_grp1 nom,prenom;clients;nom like 'D%' nom,prenom,mail,code_postal;clients;code_postal = '58418' Deviens : Extrait du fichier CSV : liste_selection_grp1;table_grp1;clause_where_gauche_grp1;clause_where_con\ dition_grp1;clause_where_droite_grp1 nom,prenom;clients;nom;like;'d%' nom,prenom,mail,code_postal;clients;code_postal;=;'58418' nom,prenom;clients;code_postal;=;'5841' nom,prenom,mail,code_postal;clients;nom;like;'d%' Requête JDBC utilisant notre fichier CSV Dans la majorité des cas, il y a des utilisateurs avec des droits de modification (on va les appeler administrateurs) qu il faudra simuler. Rien de plus simple avec JMeter. Afin de séparer les deux types d utilisateurs, on va créer un autre Groupe d unités. Un des avantages de faire cela est qu on peut paramétrer de manière fine chaque groupe. Par exemple si on sait qu il y a 24 % d utilisateurs qui ont des droits de modification, il sera facile de trouver la valeur du Nombre d unités pour chaque groupe. Afin d éviter de faire des UPDATE qui ne mettent rien à jour, les conditions de nos requêtes UPDATE seront les résultats de requêtes SQL exécutés juste avant nos UPDATE. Imaginons que ces utilisateurs puissent modifier le numéro de téléphone des clients. Dans un premier temps nous devons récupérer l identifiant de la personne dont le numéro de téléphone va être modifié.

16 Tester un serveur de bases de données 13 Utilisons un élément Requête JDBC afin d exécuter cette requête SQL. On pourra prendre select id_client from Clients where nom like F% comme requête SQL (je vous laisse appliquer ce que l on vient d apprendre pour rendre plus dynamique cette requête SQL). Ne pas oublier de récupérer les résultats de la requête SQL. Requête JDBC Comme on peut le voir, la requête nous récupère plusieurs identifiants. Résultat de notre requête SQL On a le nombre de réponse dans la variable identifiant_client_# On va choisir un identifiant au hasard dans la liste retournée. Pour cela on va utiliser la fonction

17 Tester un serveur de bases de données 14 Random de JMeter. La formule ${ Random(1,${identifiant_client_#},identifiant_client_final)} mis dans un échantillon BeanShell nous permettra de réaliser ce que l on veut en mettant l identifiant dans la variable identifiant_client_final. échantillon BeanShell Maintenant que l on a notre identifiant de client, il nous faut un nouveau numéro de téléphone. Utilisons l élément Variable aléatoire. Variable aléatoire Il ne nous reste plus qu à utiliser la variable identifiant_client_final et notre nouveau numéro de téléphone dans notre update à l aide d un autre élément Requête JDBC. Notre UPDATE sera : update Clients set telephone_fixe = ${num_tel} where id_client = ${identi\ fiant_client_final}

18 Tester un serveur de bases de données 15 Requête JDBC On va prendre en compte que les administrateurs font aussi des requêtes SQL de type SELECT. Comme on a de la chance, on connaît la proportion des SELECT et des UPDATE. Afin d implémenter cette proportion on va utiliser l élément Contrôleur Débit de JMeter. Par exemple ici, on définit que les requêtes UPDATE représentent 30% des requêtes totales. Contrôleur Débi On peut vérifier à l aide d un Rapport agrégé que cela est bien respecté (j ai regroupé les requêtes à l aide d un Contrôleur Transaction afin de faciliter la lecture des résultats). Rapport agrégé

19 Tester un serveur de bases de données 16 Une bonne pratique dans le développement logiciel est la philosophie DRY (Don t Repeat Yourself). Malheureusement si on regarde notre dernière modification du script, on peut voir qu il y a des duplications dans la partie du script qui exécute les requêtes SELECT. Duplications dans la partie du script Pour éviter cette duplication, on va utiliser l élément Contrôleur Inclusion qui nous permet d inclure un script dans un autre script. La première chose à faire est de sauvegarder la partie dupliquée dans un fichier au format JMeter. Sauvegarder la partie dupliquée Maintenant il suffit de remplacer dans le script les parties dupliquées par des Contrôleur Inclusion.

20 Tester un serveur de bases de données 17 Et les faire pointer sur notre script sauvegardé précédemment. Contrôleur Inclusion On aurait pu s arrêter la tout en ayant répondu aux besoins d un test de charge de notre serveur de base de données mais comme je pense que l industrialisation des tests est quelque chose d important, nous allons faire quelques modifications. Ceci aura pour but de faciliter l intégration de notre script dans une usine logicielle. Le tout à l aide de la fonction ${ P(xxx,yyy)} avec xxx le nom de la variable et yyy sa valeur par défaut. Par exemple pour le groupe d unités «Administrateurs». Groupe d unités Administrateurs Ici on définit que par défaut il y a une unité qui exécute une itération et que la durée de montée en charge est d une seconde.

21 Tester un serveur de bases de données 18 Lors de l exécution de JMeter en ligne de commande, si l on veut changer les valeurs de ces paramètres il suffira d ajouter -J{nom de la variable}={valeur de la variable}. Par exemple. jmeter -n -l resultats.csv -t scenario.jmx -JnbUnites=10 -JrampUp=20 -Jnb\ Iterations=100 Notre plan de test enfin complet. Notre plan de test Exemple 2 : Preuve de faisabilité Dans le tuning SQL, les index tiennent une bonne place mais comme souvent il y a un coût. Pour démontrer ce coût, on va réaliser un POC (Proof Of Concept = Preuve de faisabilité) à l aide de JMeter. Cette fois ci, notre test sera réalisé sur Oracle 11g Express Edition (ne pas oublier d ajouter les drivers JDBC d Oracle dans le ClassPath de JMeter). Notre plan de test final ressemblera à celui-ci.

22 Tester un serveur de bases de données 19 Notre plan de test final Commençons par définir la connexion à Oracle à l aide de l élément Configuration de connexion JDBC. Connexion à Oracle à l aide de l élément Configuration de connexion JDBC Dorénavant on peut se connecter à notre base de données mais malheureusement elle est vide. Résolvons ce problème grâce à l élément Groupe d unités de début qui va nous permettre d exécuter des commandes au début du test. Ajoutons-lui un élément Appel de processus système afin de remplir cette base de données (par

23 Tester un serveur de bases de données 20 le chargement d une sauvegarde, par la création de données à l aide d outils/de commandes SQL, etc.). Afin d être sûr que les statistiques de notre base de données soient à jour, nous allons demander à Oracle de le faire par la procédure SQL dbms_stats.gather_table_stats( SYSTEM, Clients,cascade TRUE). Comme pour l exemple précédent, on va utiliser l élément Requête JDBC. L appel d une procédure SQL pour Oracle avec cet élément se fait de la manière suivante. Le type de requête SQL doit être à Callable Statement. Le champ Requête doit être. begin {call proçedure SQL} end; Dans notre cas on aura. Requête JDBC Ne pas oublier de tester la réponse avec un élément Assertion Réponse. En cas d erreur, Oracle retourne un code d erreur commençant par ORA-

24 Tester un serveur de bases de données 21 Notre base de données est prête. Assertion Réponse On veut que notre test tourne tant qu il y a des indexes à créer. Pour cela nous allons utiliser un élément Groupe d unités dont le nombre d itérations sera égal à l infini et le nombre d unités à 1. Groupe d unités Les requêtes de création d index seront dans un fichier CSV. Et pour arrêter notre test à la fin du fichier CSV (et donc à la dernière création d index), il suffira de le préciser dans l élément Source de données CSV.

25 Tester un serveur de bases de données 22 Source de données CSV Maintenant passons à l exécution de nos requêtes SELECT. À l aide de l élément Contrôleur Boucle nous allons réaliser dix requêtes afin d avoir des temps de réponses plus précis. Il suffit d ajouter notre requête SELECT. Contrôleur Boucle Ajout de notre requête SELECT Faisons de même pour les UPDATE. Mais cette fois-ci nous allons utiliser des Prepared Update Statement comme type de requête.

26 Tester un serveur de bases de données 23 Notre UPDATE Il est temps de créer notre premier index automatiquement. Encore une fois, nous utiliserons l élément Requête JDBC. La requête SQL de création des indexes sera directement récupérée à l aide de la variable ${Create_Index_SQL} du fichier CSV défini précédemment. Création des indexes Ne pas oublier de mettre à jour les statistiques après la création de l index. Pour l instant il est impossible d analyser de manière fine le résultat du script, car il nous manque deux informations dans le fichier de résultat de JMeter. La première information est le nombre d index qui sera récupéré à l aide d un élément Echantillon BeanShell associé à la fonction counter.

27 Tester un serveur de bases de données 24 Calcul du nombre d index crée La deuxième information est la requête SQL de création de l index et elle est déjà dans la variable ${Create_Index_SQL}. Voilà qui est beaucoup mieux mais si on récupère un fichier de résultat de l exécution de notre test, ces deux informations n y sont pas. Pour les ajouter, il faut utiliser la propriété sample_variables du fichier properties de JMeter de la manière suivante. # Optional list of JMeter variable names whose values are to be saved in \ the result data files. # Use commas to separate the names. For example: sample_variables=iteration_number,create_index_sql Ceci conclue notre script de test. Exemple 3 : ETL Dans ce dernier exemple, nous allons utiliser JMeter comme un ETL (Extract Transform Load) pour nous permettre de transférer des données d une base de données à une autre en y appliquant des transformations. En particulier on va anonymiser les colonnes nom et telephone_mobile d une table Clients. Dans un premier temps, définissons nos connexions aux deux bases de données à l aide de l élément Configuration de connexion JDBC. Configuration de connexion JDBC* Afin de générer un nouveau numéro de téléphone, utilisons l élément Variable aléatoire.

28 Tester un serveur de bases de données 25 Variable aléatoire Pour le nouveau nom nous utiliserons un élément Echantillon BeanShell avec la fonction : ${ RandomString(20,ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz,n\ ouveau_nom)} Un nouveau nom de vingt caractères sera stocké dans le variable nouveau_nom. Création d un nom de manière aléatoire Commençons par récupérer les valeurs dans la base de données source (dans notre cas on ne récupérera que certaines colonnes d une table) à l aide d un élément Requête JDBC.

29 Tester un serveur de bases de données 26 Plusieurs lignes seront récupérées. Récupération des valeurs dans la base de données source id_client_1=1 id_client_2=2 id_client_3=3 id_client_4=4... Maintenant il faut parcourir chaque ligne récupérée avec l élément Contrôleur Pour chaque (ForEach).

30 Tester un serveur de bases de données 27 Contrôleur Pour chaque (ForEach) Comme on peut le voir on ne peut boucler que sur une variable (ici on a choisi id_client) et donc on perd le lien avec les autres valeurs de la même ligne (prenom, mail, etc.). Par exemple, id_client_1 est associé avec prenom_1, mail_1, sex_1 et salutation_1. Heureusement on peut facilement re créer le lien entre les variables de la même ligne avec l élément Compteur et la fonction ${ V(xxx_${yyyyy})} Le compteur va nous permettre de générer un entier incrémenté de 1 à chaque itération de la boucle ForEach (on aura 1 puis 2 puis 3 ). Notre compteur Puis la fonction ${ V(xxx_${yyy})} concaténera la chaîne de caractère xxx_ avec la valeur de la variable yyy. Par exemple ${ V(prenom_${compteur})} retournera prenom_1 si compteur est égal à un. Fonction qu on utilisera dans notre requête SQL d insertion dans la base de données cible.

31 Tester un serveur de bases de données 28 Notre requête SQL d insertion Au final notre plan de test ressemblera à celui-ci. Notre plan de test Conclusion Comme on a pu le voir, réaliser un test de charge d une base de données à l aide de JMeter est possible sans grande difficulté. Les possibilités de JMeter permettent en plus de rendre un test de charge réaliste, de réaliser à peu près tous ce qui vous passe par la tête.

32 L écosystème d Apache JMeter L écosystème de JMeter JMeter dispose d un éco système foisonnant, aussi comme le dit Bregson, «Choisir, donc exclure». nous avons donc dû faire des choix subjectifs. A vous de découvrir et approfondir les librairies que nous avons écartées. Introduction Comme nous avons pu le voir dans les chapitres précédents, JMeter est assez riche nativement, mais les technologies et les besoins évoluant, JMeter peut dans certains cas ne pas suffire. Difficulté résolue par son écosystème dont l existence est possible grâce à sa licence Apache et son architecture modulaire. Dans ce chapitre, nous verrons les principaux plugins, services et outils permettant de compléter JMeter afin de répondre à tous les défis que nous rencontrerons. Plugin polyvalent Commençons par le plugin le plus connu et le plus polyvalent : JMeter Plugins. JMeter Plugins JMeter Plugins est un ensemble de plugins gratuits et open source améliorant certaines parties de JMeter et disponible sur http ://jmeter-plugins.org/. Pour cela il va ajouter un certain nombre de : récepteurs ; graphiques ; fonctions ; échantillons ; outils ; groupe d unités ; compteurs de temps ; assertions ; protocoles ; etc.

33 L écosystème d Apache JMeter 30 Comme nous pouvons le voir, la liste est longue, nous ne présenterons donc que de certains plugins. Commençons par le groupe d unités Ultimate Thread Group. Ce plugin va nous permettre de contrôler facilement et visuellement notre injection. Ultimate Thread Group Regardons d un peu plus près le point fort de JMeter Plugins : les graphiques. Response Times Over Time nous permet de suivre l évolution des temps de réponse au fil du tir.

34 L écosystème d Apache JMeter 31 Response Times Over Time De même pour Response Times Percentiles mais concernant les percentiles. Response Times Percentiles

35 L écosystème d Apache JMeter 32 La même chose pour suivre le nombre d utilisateurs virtuels avec le graphique Active Threads Over Time. Active Threads Over Time Si nous voulons suivre l évolution des codes de retour HTTP au fil du tir, nous utiliserons Response Codes per Second.

36 L écosystème d Apache JMeter 33 Response Codes per Second Pour vérifier l impact du nombre d utilisateurs virtuels sur les temps de réponse, il y a le graphique Response Times vs Threads.

37 L écosystème d Apache JMeter 34 Response Times vs Threads Pour la répartition des temps de réponse, nous utiliserons Response Times Distribution. Response Times Distribution

38 L écosystème d Apache JMeter 35 Si cela ne suffit toujours pas, il est possible de superposer les graphes à l aide des données de tous les autres graphes en utilisant Composite Graph. Composite Graph Pour l instant nous avons utilisé des graphiques se basant sur les données du test, mais il est possible de récupérer des données externes. Comme des données JMX (par exemple de votre serveur d application Java) à l aide de JMXMon Samples Collector.

39 L écosystème d Apache JMeter 36 JMXMon Samples Collector Et pour savoir si les problèmes de performance de l application testée viennent de l infrastructure, nous pourrons utiliser PerfMon Metrics Collector afin de récupérer les métriques systèmes (CPU, réseau, mémoire, etc.). PerfMon Metrics Collector S il y a un problème avec la base de données, DbMon Samples Collector pourra nous aider.

40 L écosystème d Apache JMeter 37 DbMon Samples Collecto Le tout avec la possibilité de générer les graphiques voulus à la fin de notre test de charge avec Graphs Generator. Méthode préconisée puisque le mode GUI doit être dédié au scripting. Graphs Generator Une autre option consiste à uploader ses résultats sur Loadosophia.org à l aide de Loadosophia.org Uploader.

41 L écosystème d Apache JMeter 38 Loadosophia.org Uploader Si nous souhaitons connaître le ressenti utilisateur dans le Browser (Les temps de réponses JMeter n intègrent pas le rendu dans le browser), on pourra utiliser dans son test : L élément HTTP Request pour injecter massivement la charge L élément WebDriverSampler pour obtenir les temps dans le browser Web Driver Sampler Une problématique qui peut se poser dans le cadre de tirs distribués avec JMeter est la distribution du jeu de données sur les injecteurs. Une solution à ce problème est d utiliser Redis et le plugin Redis DataSet. Il est même possible de garantir qu une donnée une fois utilisée est supprimée du jeu de test.

42 L écosystème d Apache JMeter 39 Redis Plugin Comme vous pouvez le voir, cet ensemble de plugins couvre un large périmètre et est très utile dans la vie de tous les jours d un utilisateur de JMeter. JMeter dans le cloud Cette catégorie répondra au problème d infrastructure nécessaire pour l injection de la charge. En effet lors de certains tests il peut être nécessaire d avoir beaucoup de puissance afin de simuler une charge importante. Il peut être également nécessaire de distribuer l injection depuis plusieurs endroits du pays ou de la planète. Dans d autre cas, pour des tests ponctuels, l achat de serveur pour l injection n est pas justifié. Pour cela, une des solutions possible est l utilisation de services commerciaux dans le cloud. BlazeMeter http ://blazemeter.com/ A noter que BlazeMeter est un contributeur actif du projet Apache JMeter à travers les contributions d Andrei Pokhilko (Responsable du projet JMeter-Plugins)

43 L écosystème d Apache JMeter 40 Flood IO https ://flood.io/ Redline 13 https ://www.redline13.com/ Jellly.IO https ://jellly.io/ JMeter EC2 Une autre solution est d utiliser le plugin gratuit dédié à AWS https ://github.com/oliverlloyd/jmeterec2 qui permet simplement de : Démarrer les instances AWS Lancer le tir Récupérer et fusionner les résultats DevOps Plus un problème de performance est détecté et corrigé tard, plus son coût a des chances d être élevés. C est pour cela qu il est conseillé de faire des tests de charge le plus tôt possible en ayant quand même une application mature et un environnement représentatif en terme de données. Un chapitre entier est consacré à l intégration de JMeter dans le monde DevOps avec les plugins Jenkins Performance Plugin et JMeter Maven Plugin. Aide à la supervision et au diagnostic Lors d une campagne de test de charge si la supervision n est pas à la hauteur ou pire inexistante, la phase d analyse risque d être longue et/ou peu productive. Pour éviter ce souci il existe de nombreux outils (APM, profiler, etc.). Afin d être le plus productif, deux critères de choix sont importants : être multi technologies afin de couvrir des systèmes complexes ; s intégrer facilement à JMeter afin de faire facilement le lien entre l injection et son impact sur le système testé. Il existe une solution répondant à ces deux critères.

44 L écosystème d Apache JMeter 41 Dynatrace APM Cette solution est l APM Dynatrace. Dynatrace permet de suivre la performance de bout en bout à l aide de sa technologie PurePath. Cela va nous permettre d aller jusqu à la ligne de code problématique si un problème de performance est détecté. Dynatrace PurePath Le tout en ayant la possibilité d avoir une vision globale et visuelle. Reprenons nos deux critères de sélection. Dynatrace Transaction Flow Comme on peut le voir sur la capture d écran ci-dessous, plusieurs technologies sont supportées (ici on a du Java, du navigateur Web et de l Apache httpd).

45 L écosystème d Apache JMeter 42 De nombreuses technologies sont gérées : Dynatrace Transaction Flox multi technologies.net PHP C/C++ Mobile zos NodeJS etc. Passons au deuxième point : l intégration avec JMeter. L intégration entre les deux outil se fait par l ajout d entêtes HTTP spécifiques à Dynatrace dans les requêtes HTTP de JMeter. Dynatrace entête HTTP spécifique Une fois cela réalisé, on se retrouve, dans Dynatrace, avec les PurePath renommés comme les transactions de JMeter. Dynatrace Tagged Wevb Requests

46 L écosystème d Apache JMeter 43 Dynatrace PurePath Dès lors, on a accès à toute la puissance de Dynatrace pour la supervision et le diagnostic. Ci-dessous quelques possibilités (non exhaustives) de Dynatrace pour le diagnostic. Réaliser des threads dump. Réaliser des dumps mémoire. Theads Dump

47 L écosystème d Apache JMeter 44 Memory Dump Connaître les méthodes qui prennent le plus de temps et avoir leur arbre d appel. Avoir la répartition des temps de réponse. Dynatrace Method Hotspots

48 L écosystème d Apache JMeter 45 Dynatrace Response Time Hotspots Ou encore la possibilité de faire ses propres tableaux de bord. Dynatrace Custom Dashboard Une fois notre test de charge réalisé, il est possible de sauvegarder une session Dynatrace contenant toutes les informations (les erreurs, les transactions, les temps de réponse, les PurePath, etc.) afin de nous donner la possibilité : de comparer plusieurs tirs ; d analyser les résultats plus tard ;

49 L écosystème d Apache JMeter 46 d envoyer les informations à une autre équipe (par exemple les développeurs pour qu ils puissent approfondir l analyse). Il est même possible de réaliser cette action automatiquement à l aide de l api REST de Dynatrace. Dynatrace REST API Et toujours avec l API REST il est possible de générer un rapport Dynatrace à la fin du test. Dynatrace REST API Pour les impatients, il existe un tableau de bord Dynatrace dédié aux tests de charge.

50 L écosystème d Apache JMeter 47 Dynatrace Load Test Overview Nous venons de voir un aperçu de Dynatrace, mais on peut déjà deviner le gain de temps et d énergie qu il apportera lors d une campagne de test de charge. Loadosophia D autres protocoles Malgré le nombre élevé de protocoles supportés par Apache JMeter, on peut rencontrer des applications basées sur des protocoles non supportés (ou vouloir augmenter sa productivité en utilisant des plugins plus adaptés). Heureusement de nombreux plugins (en plus des ceux de JMeter plugins vu précédemment) existent. Ubik load pack UbikLoadPack¹ est une solution offrant des plugins pour les protocoles suivants : Format [HTTP Live Streaming] (https ://en.wikipedia.org/wiki/http_live_streaming) ¹http://ubikloadpack.com/

51 L écosystème d Apache JMeter 48 Apple HTTP Live Streaming GWT-RPC du Framework [Google Web Toolkit] (http ://www.gwtproject.org) versions 1.5 à 2.7 (au moment de l édition de ce livre) GWTRPC FLEX/AMF gérant Adobe Flex et Apache Flex

52 L écosystème d Apache JMeter 49 FLEX/AMF Java Serialization permettant de simuler des Applets ou des applications utilisant Spring Remoting La solution permet de tester de façon réaliste des applications basées sur ces protocoles, c est à dire en permettant la corrélation par la mise à disposition d extracteurs et de transformateurs. Le fonctionnement global des plugins est le suivant : Avec Enregistreur script de test HTTP(S), vous enregistrez votre navigation sur l application et créez en quelques minutes le test JMeter. A l aide de samplers dédiés ou de Pre-Processeurs, le plugin transforme les requêtes «illisibles» du protocole en XML que vous pouvez ainsi facilement variabiliser puisqu il est possible d injecter des variables JMeter par la syntaxe ${variable}

53 L écosystème d Apache JMeter 50 Requête GWT représentée en XML Vous pouvez extraire des réponses «illisibles» (transformées en XML par les Post- Processeurs du plugin) n importe quelle donnée que vous souhaitez vérifier ou injecter dans la requête suivante

54 L écosystème d Apache JMeter 51 Transformer une réponse en XML et la stocker dans la variable «result» La solution offre également des Renderer/Visualiseur spéciaux intégrés à Arbre de résultats qui vous permettent de débugger vos scripts en transformant à la volée le format du protocole en XML et de tester vos expressions d extraction XPath.

Le langage PHP permet donc de construire des sites web dynamiques, contrairement au langage HTML, qui donnera toujours la même page web.

Le langage PHP permet donc de construire des sites web dynamiques, contrairement au langage HTML, qui donnera toujours la même page web. Document 1 : client et serveur Les ordinateurs sur lesquels sont stockés les sites web sont appelés des serveurs. Ce sont des machines qui sont dédiées à cet effet : elles sont souvent sans écran et sans

Plus en détail

LINQ to SQL. Version 1.1

LINQ to SQL. Version 1.1 LINQ to SQL Version 1.1 2 Chapitre 03 - LINQ to SQL Sommaire 1 Introduction... 3 1.1 Rappels à propos de LINQ... 3 1.2 LINQ to SQL... 3 2 LINQ to SQL... 3 2.1 Importer des tables... 3 2.1.1 Le concepteur

Plus en détail

MySQL 5 (versions 5.1 à 5.6) Guide de référence du développeur (Nouvelle édition)

MySQL 5 (versions 5.1 à 5.6) Guide de référence du développeur (Nouvelle édition) Avant-propos 1. Les objectifs de ce livre 13 2. Les principaux sujets qu'aborde ce livre 13 3. À qui s adresse ce livre? 14 4. Les pré-requis 14 Introduction à MySQL 1. Introduction aux bases de données

Plus en détail

Microsoft TechNet - Les End Points ou points de terminaison

Microsoft TechNet - Les End Points ou points de terminaison Page 1 sur 5 Plan du site Accueil International Rechercher sur Microsoft France : Ok Accueil TechNet Produits & Technologies Solutions IT Sécurité Interoperabilité Déploiement des postes de travail Scripting

Plus en détail

Jusqu à 14 h : Open Questions! On vous explique ce que vous n avez pas compris lors de la première formation.

Jusqu à 14 h : Open Questions! On vous explique ce que vous n avez pas compris lors de la première formation. Bienvenue! Jusqu à 14 h : Open Questions! On vous explique ce que vous n avez pas compris lors de la première formation. Téléchargez les logiciels nécessaires pour cette formation : http ://formation-web.via.ecp.fr

Plus en détail

Les formations. Développeur Logiciel. ENI Ecole Informatique

Les formations. Développeur Logiciel. ENI Ecole Informatique page 1/5 Titre professionnel : Reconnu par l Etat de niveau III (Bac), inscrit au RNCP (arrêté du 12/10/07, J.O. n 246 du 23/10/07) (32 semaines) Unité 1 : Structurer une application 6 semaines Module

Plus en détail

Principes d'utilisation des systèmes de gestion de bases de données

Principes d'utilisation des systèmes de gestion de bases de données Principes d'utilisation des systèmes de gestion de bases de données JDBC L3 Informatique Emmanuel Waller, LRI, Orsay Université Paris Sud le mode programme JDBC JDBC : qu'est ce que c'est? Avantages? devant

Plus en détail

2. Présentation de la gamme Seven Embedded 2.1 Standard

2. Présentation de la gamme Seven Embedded 2.1 Standard 1. Introduction Le présent article a pour but de décrire le nouvel écosystème des systèmes d exploitation embarqué de Microsoft. Vous y découvrirez quels produits sont aujourd hui édités, et pour quels

Plus en détail

Plan de notre intervention 1. Pourquoi le test de charge? 2. Les différents types de tests de charge 1.1. Le test de performance 1.2.

Plan de notre intervention 1. Pourquoi le test de charge? 2. Les différents types de tests de charge 1.1. Le test de performance 1.2. Plan de notre intervention 1. Pourquoi le test de charge? 2. Les différents types de tests de charge 1.1. Le test de performance 1.2. Le test aux limites 3. Méthode 2.1. Pré-requis 2.2. Préparation des

Plus en détail

Présentation. Logistique. Résumé de la 1e Partie. Mise en place du système

Présentation. Logistique. Résumé de la 1e Partie. Mise en place du système Présentation Diapo01 Je m appelle Michel Canneddu. Je développe avec 4D depuis 1987 et j exerce en tant qu indépendant depuis 1990. Avant de commencer, je tiens à remercier mes parrains Jean-Pierre MILLIET,

Plus en détail

Microsoft Application Center Test

Microsoft Application Center Test Microsoft Application Center Test L'outil de Test de performance des Sites Web Avec Visual Studio.NET, il est fourni une petite application qui permet de valider la performance de son site Internet ou

Plus en détail

Documentation Talend. Charly Riviere CDG35

Documentation Talend. Charly Riviere CDG35 Documentation Talend Charly Riviere CDG35 1. Présentation générale Talend est un ETL pour "Extract Transform Load". Comme son nom l'indique il permet d'extraire des données pour ensuite les transformer

Plus en détail

TD n 1 : Architecture 3 tiers

TD n 1 : Architecture 3 tiers 2008 TD n 1 : Architecture 3 tiers Franck.gil@free.fr 27/10/2008 1 TD n 1 : Architecture 3 tiers 1 INTRODUCTION Ce TD, se propose de vous accompagner durant l installation d un environnement de développement

Plus en détail

Création d un catalogue en ligne

Création d un catalogue en ligne 5 Création d un catalogue en ligne Au sommaire de ce chapitre Fonctionnement théorique Définition de jeux d enregistrements Insertion de contenu dynamique Aperçu des données Finalisation de la page de

Plus en détail

Applications orientées données (NSY135)

Applications orientées données (NSY135) Applications orientées données (NSY135) 2 Applications Web Dynamiques Auteurs: Raphaël Fournier-S niehotta et Philippe Rigaux (philippe.rigaux@cnam.fr,fournier@cnam.fr) Département d informatique Conservatoire

Plus en détail

Ajouter les miniatures dans le re sultat de recherche pour SharePoint Foundation 2013

Ajouter les miniatures dans le re sultat de recherche pour SharePoint Foundation 2013 Ajouter les miniatures dans le re sultat de recherche pour SharePoint Foundation 2013 Après avoir installé SharePoint Foundation 2013, puis configuré le moteur de recherche, voyons comment personnaliser

Plus en détail

PG208, Projet n 3 : Serveur HTTP évolué

PG208, Projet n 3 : Serveur HTTP évolué PG208, Projet n 3 : Serveur HTTP évolué Bertrand LE GAL, Serge BOUTER et Clément VUCHENER Filière électronique 2 eme année - Année universitaire 2011-2012 1 Introduction 1.1 Objectif du projet L objectif

Plus en détail

édition revue et corrigée avec Java SE 7 7 1 Les bases 11 Compiler un programme Java 13 Exécuter un programme Java 14 Définir le chemin de classe 15

édition revue et corrigée avec Java SE 7 7 1 Les bases 11 Compiler un programme Java 13 Exécuter un programme Java 14 Définir le chemin de classe 15 Table des matières Au sujet de l auteur 1 Introduction 3 édition revue et corrigée avec Java SE 7 7 1 Les bases 11 Compiler un programme Java 13 Exécuter un programme Java 14 Définir le chemin de classe

Plus en détail

INTRODUCTION AUX TESTS DE PERFORMANCE ET DE CHARGE

INTRODUCTION AUX TESTS DE PERFORMANCE ET DE CHARGE INTRODUCTION AUX TESTS DE PERFORMANCE ET DE CHARGE 1 Introduction aux tests de performance et de charge Sommaire Avertissement...2 Aperçu...3 1. Création du scénario de navigation web (Test web)...4 2.

Plus en détail

Compte rendu de PHP MySQL : création d un formulaire de base de données

Compte rendu de PHP MySQL : création d un formulaire de base de données REVILLION Joris Décembre 2009 3EI Compte rendu de PHP MySQL : création d un formulaire de base de données Objectifs : Le principal objectif de ce cours est de découvrir et de nous familiariser avec le

Plus en détail

Accès au serveur SQL. Où ranger les accès au serveur SQL?

Accès au serveur SQL. Où ranger les accès au serveur SQL? 150 requête SQL, cela aura un impact sur un nombre limité de lignes et non plus sur l ensemble des données. MySQL propose une clause originale en SQL : LIMIT. Cette clause est disponible avec les différentes

Plus en détail

Sommaire. 1 Introduction 19. 2 Présentation du logiciel de commerce électronique 23

Sommaire. 1 Introduction 19. 2 Présentation du logiciel de commerce électronique 23 1 Introduction 19 1.1 À qui s adresse cet ouvrage?... 21 1.2 Comment est organisé cet ouvrage?... 22 1.3 À propos de l auteur... 22 1.4 Le site Web... 22 2 Présentation du logiciel de commerce électronique

Plus en détail

Java EE Approfondi - Cours 2. Cours de 2 e année ingénieur Spécialisation «Génie Informatique»

Java EE Approfondi - Cours 2. Cours de 2 e année ingénieur Spécialisation «Génie Informatique» Java EE Approfondi - Cours 2 Cours de 2 e année ingénieur Spécialisation «Génie Informatique» Présentation Lier l'orienté objet et la base de données relationnelle peut être lourd et consommateur en temps.

Plus en détail

Spécifications Prérequis Minimum Prérequis Recommandé

Spécifications Prérequis Minimum Prérequis Recommandé Introduction Comme toutes les applications réseau, Xactimate doit être installé sur un poste de travail connecté à un réseau proprement configuré et connecté à un lecteur réseau (ce document utilise la

Plus en détail

NIMBUS TRAINING. Mise en œuvre d une SGBD dans toutes les étapes du projet. Déscription. Objectifs. Publics. Durée. Pré-requis

NIMBUS TRAINING. Mise en œuvre d une SGBD dans toutes les étapes du projet. Déscription. Objectifs. Publics. Durée. Pré-requis Mise en œuvre d une SGBD dans toutes les étapes du projet. Déscription A partir des retours d expérience, et des préconisations des éditeurs, présenter les facteurs clés de succès et les bonnes pratiques

Plus en détail

Pratique et administration des systèmes

Pratique et administration des systèmes Université Louis Pasteur Licence Informatique (L2) UFR de Mathématiques et Informatique Année 2007/2008 1 But du TP Pratique et administration des systèmes TP10 : Technologie LAMP Le but de ce TP est de

Plus en détail

Groupe Eyrolles, 2003, ISBN : 2-212-11317-X

Groupe Eyrolles, 2003, ISBN : 2-212-11317-X Groupe Eyrolles, 2003, ISBN : 2-212-11317-X 3 Création de pages dynamiques courantes Dans le chapitre précédent, nous avons installé et configuré tous les éléments indispensables à la mise en œuvre d une

Plus en détail

Vulnérabilités logicielles Injection SQL

Vulnérabilités logicielles Injection SQL MGR850 Hiver 2014 Vulnérabilités logicielles Injection SQL Hakima Ould-Slimane Chargée de cours École de technologie supérieure (ÉTS) Département de génie électrique 1 Plan SQL Injection SQL Injections

Plus en détail

ISLOG Logon Tools Manuel utilisateur

ISLOG Logon Tools Manuel utilisateur ISLOG Logon Tools Manuel utilisateur Document révision 02 Copyright 2013 ISLOG Network. Tout droit réservé. Historique de version Date Auteur Description Document Version 23/08/13 F Godinho Version initiale

Plus en détail

Méthode de Test. Pour WIKIROUTE. Rapport concernant les méthodes de tests à mettre en place pour assurer la fiabilité de notre projet annuel.

Méthode de Test. Pour WIKIROUTE. Rapport concernant les méthodes de tests à mettre en place pour assurer la fiabilité de notre projet annuel. Méthode de Test Pour WIKIROUTE Rapport concernant les méthodes de tests à mettre en place pour assurer la fiabilité de notre projet annuel. [Tapez le nom de l'auteur] 10/06/2009 Sommaire I. Introduction...

Plus en détail

CREATION WEB DYNAMIQUE

CREATION WEB DYNAMIQUE CREATION WEB DYNAMIQUE IV ) MySQL IV-1 ) Introduction MYSQL dérive directement de SQL (Structured Query Language) qui est un langage de requêtes vers les bases de données relationnelles. Le serveur de

Plus en détail

Encryptions, compression et partitionnement des données

Encryptions, compression et partitionnement des données Encryptions, compression et partitionnement des données Version 1.0 Grégory CASANOVA 2 Compression, encryption et partitionnement des données Sommaire 1 Introduction... 3 2 Encryption transparente des

Plus en détail

Guillaume SOLDERA (B guillaume.soldera@serli.fr) SERLI Informatique Bull OW2 Consortium. Comparatif Choco/Drools dans le cadre du projet JASMINe

Guillaume SOLDERA (B guillaume.soldera@serli.fr) SERLI Informatique Bull OW2 Consortium. Comparatif Choco/Drools dans le cadre du projet JASMINe Guillaume SOLDERA (B guillaume.soldera@serli.fr) SERLI Informatique Bull OW2 Consortium dans le cadre du projet JASMINe Avril 2008 Table des matières 1 Introduction 3 1.1 Rappel sur JASMINe.......................................

Plus en détail

Mysql. Les requêtes préparées Prepared statements

Mysql. Les requêtes préparées Prepared statements Mysql Les requêtes préparées Prepared statements Introduction Les prepared statements côté serveur sont une des nouvelles fonctionnalités les plus intéressantes de MySQL 4.1 (récemment sorti en production

Plus en détail

Projet d Etude et de Développement

Projet d Etude et de Développement Projet d Etude et de Développement PokerServer Guide d installation Auteurs: Lucas Kerdoncuff Balla Seck Rafik Ferroukh Xan Lucu Youga MBaye Clients: David Bromberg Laurent Réveillère March 28, 2012 Contents

Plus en détail

Manuel Utilisateur ENIGMA 15/04/2008. 299, rue Saint Sulpice Centre Tertiaire de l Arsenal 59500 DOUAI

Manuel Utilisateur ENIGMA 15/04/2008. 299, rue Saint Sulpice Centre Tertiaire de l Arsenal 59500 DOUAI Manuel Utilisateur 15/04/2008 ENIGMA Cahier de réalisation ENIGMA Page 2 Sommaire I. Introduction :... 3 II. Les répertoires de l application... 3 III. Les plugins... 4 a. CmdDos... 4 b. CSV2XML... 4 c.

Plus en détail

Architecture technique

Architecture technique OPUS DRAC Architecture technique Projet OPUS DRAC Auteur Mathilde GUILLARME Chef de projet Klee Group «Créateurs de solutions e business» Centre d affaires de la Boursidière BP 5-92357 Le Plessis Robinson

Plus en détail

//////////////////////////////////////////////////////////////////// Administration bases de données

//////////////////////////////////////////////////////////////////// Administration bases de données ////////////////////// Administration bases de données / INTRODUCTION Système d informations Un système d'information (SI) est un ensemble organisé de ressources (matériels, logiciels, personnel, données

Plus en détail

Refactoring. des applications Java/J2EE. Jean-Philippe Retaillé. Olivier Salvatori Thierry Templier Michel Hue. avec la contribution de

Refactoring. des applications Java/J2EE. Jean-Philippe Retaillé. Olivier Salvatori Thierry Templier Michel Hue. avec la contribution de Refactoring des applications Java/J2EE Jean-Philippe Retaillé avec la contribution de Olivier Salvatori Thierry Templier Michel Hue Groupe Eyrolles, 2005 ISBN : 2-212-11577-6 Table des matières Remerciements..............................................

Plus en détail

Cahier des charges. Jonathan HAEHNEL. Université de Strasbourg IUT Robert Schuman

Cahier des charges. Jonathan HAEHNEL. Université de Strasbourg IUT Robert Schuman Université de Strasbourg IUT Robert Schuman Maître de stage : Nicolas Lachiche Tuteur universitaire : Marie-Paule Muller Cahier des charges Jonathan HAEHNEL Strasbourg, le 6 mai 2011 Table des matières

Plus en détail

DOSSIER TECHNIQUE INSTALLATION PASEO

DOSSIER TECHNIQUE INSTALLATION PASEO DOSSIER TECHNIQUE INSTALLATION PASEO TABLE DES MATIERES 1 Description des produits installés... 3 2 Descriptif des processus d installation produits... 4 2.1 Sql server 2000... 4 2.2 Sql server 2000 service

Plus en détail

Installation SharePoint Foundation 2013 en mode Stand-Alone

Installation SharePoint Foundation 2013 en mode Stand-Alone Installation SharePoint Foundation 2013 en mode Stand-Alone Nous avons pu voir dans un précédent article comment effectuer l installation de SharePoint sur Windows 2012 en mode Complete : Installation

Plus en détail

EISTI. Oracle Toplink. Manuel d installation et d utilisation

EISTI. Oracle Toplink. Manuel d installation et d utilisation EISTI Oracle Toplink Manuel d installation et d utilisation VILLETTE Charles, BEQUET Pierre, DE SAINT MARTIN Cédric, CALAY-ROCHE Vincent, NAUTRE Francois 20/05/2010 Ce manuel d installation et d utilisation

Plus en détail

Mise en place d une machine virtuelle avec vsphere

Mise en place d une machine virtuelle avec vsphere Mise en place d une machine virtuelle avec vsphere 15/11/2013 Par Aymeric BLERREAU Dans le cadre de l obtention du BTS SIO SISR Services Informatiques aux Organisation option Solution d Infrastructure,

Plus en détail

Guide de démarrage rapide avec DataStudio Online Edition

Guide de démarrage rapide avec DataStudio Online Edition Guide de démarrage rapide avec DataStudio Online Edition Introduction Ce document vient en complément des films de démonstration disponibles sur le site web de data. L ETL ETL est un sigle qui signifie

Plus en détail

Sujet Projets 2 nd Semestre

Sujet Projets 2 nd Semestre Sujet Projets 2 nd Semestre Seuls les appels systèmes vus en cours sont autorisés. L usage d autres fonctions doit impérativement être validé par l enseignant. La date d ouverture pour l assignation de

Plus en détail

MACHINE VIRTUELLE VSPHERE. Projet Personnalisé Encadré 1

MACHINE VIRTUELLE VSPHERE. Projet Personnalisé Encadré 1 MACHINE VIRTUELLE VSPHERE Projet Personnalisé Encadré 1 Aymeric Blerreau 15/11/2013 1 TABLE DES MATIÈRES 2 Description... 2 3 Contexte... 3 3.1 Contexte... 3 3.2 Objectifs... 3 3.3 Solution envisageable...

Plus en détail

TD1. Installation de Symfony 2 et Netbeans

TD1. Installation de Symfony 2 et Netbeans I - Introduction : TD1 Installation de Symfony 2 et Netbeans L objet de ce TP est d installer l environnement de travail. Nous commençons par définir des notions de base nécessaires pour comprendre la

Plus en détail

Reporting Services - Administration

Reporting Services - Administration Reporting Services - Administration Comment administrer SQL Server Reporting Services Cet article a pour but de présenter comment gérer le serveur depuis le "portail" de Reporting Services. Nous verrons

Plus en détail

ETNA Projet de Fin d Étude 2005-2007 RimElse Cahier des charges. c Copyleft 2006, ELSE Team

ETNA Projet de Fin d Étude 2005-2007 RimElse Cahier des charges. c Copyleft 2006, ELSE Team ETNA Projet de Fin d Étude 2005-2007 RimElse Cahier des charges c Copyleft 2006, ELSE Team 18 avril 2006 Table des matières 1 Introduction 2 2 Présentation du projet 3 2.1 Une distribution Évolulable..................

Plus en détail

Mise en place d un serveur FTP

Mise en place d un serveur FTP Mise en place d un serveur FTP Benjamin Dupuy BTS Service Informatique aux Organisations Option : Solutions d'infrastructure, systèmes et réseaux Epreuve E6 Parcours de professionnalisation Session : 2015

Plus en détail

II. EXCEL/QUERY ET SQL

II. EXCEL/QUERY ET SQL I. AU TRAVAIL, SQL! 1. Qu est-ce que SQL?... 19 2. SQL est un indépendant... 19 3. Comment est structuré le SQL?... 20 4. Base, table et champ... 21 5. Quelle est la syntaxe générale des instructions SQL?...

Plus en détail

Formation PHP/ MYSQL

Formation PHP/ MYSQL Formation PHP/ MYSQL Deuxième PARTIE 1/12 II MYSQL (PHPmyAdmin) Création d un annuaire avec une table MySQL dans phpmyadmin. Voici l écran de PHPmyAdmin lorsque vous vous y connectez. 2/12 1) Création

Plus en détail

LES INJECTIONS SQL. Que20. 08 novembre 2015

LES INJECTIONS SQL. Que20. 08 novembre 2015 LES INJECTIONS SQL Que20 08 novembre 2015 Table des matières 1 Introduction 5 2 Qu est-ce qu une injection SQL? 7 3 Premier cas : injection SQL sur une chaîne de caractères 9 3.1 Comment s en protéger?..............................

Plus en détail

Déploiement d application Silverlight

Déploiement d application Silverlight Déploiement d application Silverlight Thibault Laurens Bastien Chauvin 2 Déploiement d'application Silverlight 17/06/09 Sommaire 1 Introduction... 3 2 Intégrer une application à une page Web... 4 3 Les

Plus en détail

GS-Days 2011. WebScarab Développement de nouveaux modules pour les tests d intrusion

GS-Days 2011. WebScarab Développement de nouveaux modules pour les tests d intrusion 1 GS-Days 2011 WebScarab Développement de nouveaux modules pour les tests d intrusion Jérémy Lebourdais EdelWeb (jeremy.lebourdais@edelweb.fr) 2 Introduction Présentation de WebScarab Développements réalisés

Plus en détail

Apache Tomcat 8 Guide d'administration du serveur Java EE 7 sous Windows et Linux

Apache Tomcat 8 Guide d'administration du serveur Java EE 7 sous Windows et Linux Avant-propos 1. À qui s adresse ce livre? 11 2. Les pré-requis 12 Préambule 1. Rappel sur les architectures Internet/Intranet/Extranet 13 1.1 Le protocole HTTP 14 1.1.1 Les méthodes HTTP 16 1.1.2 Les codes

Plus en détail

Techniques d optimisation standard des requêtes

Techniques d optimisation standard des requêtes 6 Techniques d optimisation standard des requêtes L optimisation du SQL est un point très délicat car elle nécessite de pouvoir modifier l applicatif en veillant à ne pas introduire de bogues. 6.1 Réécriture

Plus en détail

RAPPORT DU PREMIER MINI PROJET «FORUM DE CHAT» Novembre 2005

RAPPORT DU PREMIER MINI PROJET «FORUM DE CHAT» Novembre 2005 Oussama ELKACHOINDI Wajdi MEHENNI RAPPORT DU PREMIER MINI PROJET «FORUM DE CHAT» Novembre 2005 Sommaire I. Préliminaire : Notice d exécution et mode opératoire...4 II. Architecture globale de l application...5

Plus en détail

TD1- Conception d une BDD et Utilisation sous Access et Oracle

TD1- Conception d une BDD et Utilisation sous Access et Oracle TD1- Conception d une BDD et Utilisation sous Access et Oracle Partie 1 - Conception Il s'agit de M. Bushboy, le directeur d'une agence de location de voitures qui vous a appelé (en tant qu'analyste expert)

Plus en détail

ARTICLE : élément de «base» contenant texte et ressources diverses. Peut avoir plusieurs statuts (visible ou non publiquement, entre autres),

ARTICLE : élément de «base» contenant texte et ressources diverses. Peut avoir plusieurs statuts (visible ou non publiquement, entre autres), Terminologie ARTICLE : élément de «base» contenant texte et ressources diverses. Peut avoir plusieurs statuts (visible ou non publiquement, entre autres), RUBRIQUE : contenant d'articles et/ou de rubriques

Plus en détail

Installation d Oracle 10g XE

Installation d Oracle 10g XE 8 Installation d Oracle 10g XE Dans cette annexe : les apports d Oracle XE (Express Edition) ; les principales différences entre Oracle XE et les autres versions Oracle ; le parcours de lecture de l ouvrage

Plus en détail

CREATION D UNE EVALUATION AVEC JADE par Patrick RUER (www.mathenvideo.comuv.com)

CREATION D UNE EVALUATION AVEC JADE par Patrick RUER (www.mathenvideo.comuv.com) TABLE DES MATIERES I) Le logiciel JADE 2 II) Etablissements 3 1) Configuation de l établissement 3 2) Importation des classes avec SCONET 4 3) Les groupes d élèves 6 4) Les variables supplémentaires 6

Plus en détail

LES NOUVEAUTES DE COST AND PROFITABILITY MANAGEMENT 8.1

LES NOUVEAUTES DE COST AND PROFITABILITY MANAGEMENT 8.1 LES NOUVEAUTES DE COST AND PROFITABILITY MANAGEMENT 8.1 SAS Cost and Profitability Management, également appelé CPM (ou C&P), est le nouveau nom de la solution SAS Activity-Based Management. Cette version

Plus en détail

BIRT (Business Intelligence and Reporting Tools)

BIRT (Business Intelligence and Reporting Tools) BIRT (Business Intelligence and Reporting Tools) Introduction Cette publication a pour objectif de présenter l outil de reporting BIRT, dans le cadre de l unité de valeur «Data Warehouse et Outils Décisionnels»

Plus en détail

Les tableaux. Chapitre 3

Les tableaux. Chapitre 3 Chapitre 3 Les tableaux 3.1 Généralités Les tableaux en PERL sont identifiés par le symbole @ à l image du $ pour les variables. Comme ces dernières, les tableaux ne sont pas typés et un même tableau peut

Plus en détail

opsi-401-releasenotes-upgrade-manual

opsi-401-releasenotes-upgrade-manual opsi-401-releasenotes-upgrade-manual Stand: 01.05.2011 uib gmbh Bonifaziusplatz 1b 55118 Mainz Tel.:+49 6131 275610 www.uib.de info@uib.de i Table des matières 1 Introduction 1 2 Ce qui est nouveau dans

Plus en détail

SII du transporteur avec BPEL

SII du transporteur avec BPEL SII du transporteur avec BPEL Projet BPMS Dernière modification : 18.12.2007 Table des matières 1. INTRODUCTION...3 2. SERVEURS...3 2.1. RÉFÉRENTIEL DESIGNER...3 2.2. SERVEUR DE BASE DE DONNÉES...3 2.3.

Plus en détail

Les plans de maintenance et SQL Server 2000

Les plans de maintenance et SQL Server 2000 Les plans de maintenance et SQL Server 2000 Installer un plan de maintenance sous SQL Server Dans le cadre de la gestion d'instances SQL Server 2000 hébergeant SharePoint, il est intéressant de bien comprendre

Plus en détail

Sommaire. I.1 : Alimentation à partir d un fichier Access (.mdb)...2

Sommaire. I.1 : Alimentation à partir d un fichier Access (.mdb)...2 Sommaire I. SCENARII DE TRAITEMENTS...2 I.1 : Alimentation à partir d un fichier Access (.mdb)...2 I.1 : Vérification de l intégrité des traitements SQL sur la pyramide des ages...3 I.2 : Vérification

Plus en détail

Cours Administration BD

Cours Administration BD Faculté des Sciences de Gabès Cours Administration BD Chapitre 2 : Architecture Oracle Faîçal Felhi felhi_fayssal@yahoo.fr 1 Processus serveur 1 Mémoire PGA Architecture SGBD Oracle Processus serveur 2

Plus en détail

PHP CLÉS EN MAIN. 76 scripts efficaces pour enrichir vos sites web. par William Steinmetz et Brian Ward

PHP CLÉS EN MAIN. 76 scripts efficaces pour enrichir vos sites web. par William Steinmetz et Brian Ward PHP CLÉS EN MAIN 76 scripts efficaces pour enrichir vos sites web par William Steinmetz et Brian Ward TABLE DES MATIÈRES INTRODUCTION 1 1 TOUT CE QUE VOUS AVEZ TOUJOURS VOULU SAVOIR SUR LES SCRIPTS PHP

Plus en détail

JACi400 Génération & JACi400 Développement

JACi400 Génération & JACi400 Développement JACi400 Génération & JACi400 Développement Une solution pour développer rapidement des applications WebSphere pour votre iseries directement en RPG ou Cobol. "After spending time with SystemObjects and

Plus en détail

Philosophie des extensions WordPress

Philosophie des extensions WordPress 8 Philosophie des extensions WordPress Le concept L une des forces de WordPress dans la jungle CMS, c est la simplicité de création d extensions. Il y a plusieurs raisons à cela. Des raisons techniques

Plus en détail

Zend Framework 2 Industrialisez vos développements PHP

Zend Framework 2 Industrialisez vos développements PHP Avant-propos 1. Lectorat 15 2. Contenu du livre 15 3. Pré-requis 17 Introduction 1. Un peu d histoire 19 1.1 Petite histoire de l informatique 19 1.2 Petite histoire des langages informatiques 20 1.3 Petite

Plus en détail

Cours Web n o 7 MySQL et PHP

Cours Web n o 7 MySQL et PHP Introduction aux bases de données Cours Web n o 7 MySQL et PHP Sandrine-Dominique Gouraud (gouraud@lri.fr) Pierre Senellart (pierre@senellart.com) Semaine du 7 novembre 2005 S.-D. Gouraud, P. Senellart

Plus en détail

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web. ASTRIUM - Toulouse JEE Formation 2013 TP JEE Développement Web en Java Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web. Figure 1 Architecture

Plus en détail

Exploiter les statistiques d utilisation de SQL Server 2008 R2 Reporting Services

Exploiter les statistiques d utilisation de SQL Server 2008 R2 Reporting Services Exploiter les statistiques d utilisation de SQL Server 2008 R2 Reporting Services Nous verrons dans cet article comment exploiter simplement les données de Log de SQL Server 2008 R2 Reporting Services

Plus en détail

TP WEBSERVICES. 1 Pré-requis. 1.1 L environnement de développement. 1.2 Les librairies nécessaires 1.3 SOAPUI

TP WEBSERVICES. 1 Pré-requis. 1.1 L environnement de développement. 1.2 Les librairies nécessaires 1.3 SOAPUI Institut Galilée Année 2014-2015 TP WEBSERVICES Programmation et Logiciels sûrs Master 2 PLS Résumé Ce TP s appuie sur le cours de C. Fouqueré traitant des Environnements et Langage Évolués, ainsi que

Plus en détail

PHP et MySQL : notions de sécurité

PHP et MySQL : notions de sécurité PHP et MySQL : notions de sécurité Jean-Baptiste.Vioix@u-bourgogne.fr Dans ces quelques lignes des notions de sécurité élémentaires vont être présentées. Elles sont insuffisantes pour toute application

Plus en détail

Nouveautés Ignition v7.7

Nouveautés Ignition v7.7 ... Nouveautés Ignition v7.7 Nouveautés Ignition v7.7 Découvrez le Nouveau Scada avec plus de 40 nouveautés Principales nouveautés :... Cloud Templates Template Repeater Client Multilingue + Sequential

Plus en détail

Oracle WebLogic 12c Mise en oeuvre, administration et exploitation du serveur d'applications JEE

Oracle WebLogic 12c Mise en oeuvre, administration et exploitation du serveur d'applications JEE Avant-propos 1. À qui ce livre s'adresse-t-il? 19 2. Prérequis 20 3. Objectifs 20 4. Organisation du livre 21 5. Pour aller plus loin 22 N-tiers, JEE et Oracle WebLogic Server 1. Introduction 23 1.1 Modèle

Plus en détail

Compte rendu d activité Fiche n 1

Compte rendu d activité Fiche n 1 Compte rendu d activité Fiche n 1 Alexandre K. (http://ploufix.free.fr) Nature de l activité Création d une base de connaissances avec PostgreSQL Contexte : Le responsable technique souhaite la mise en

Plus en détail

Guillaume MONTAVON Benoît MEILHAC. Rapport Technique du projet. Gestionnaire de tâches pour Android

Guillaume MONTAVON Benoît MEILHAC. Rapport Technique du projet. Gestionnaire de tâches pour Android Guillaume MONTAVON Benoît MEILHAC Rapport Technique du projet Gestionnaire de tâches pour Android Sommaire 1. Introduction... 3 2. Outils utilisés... 3 2.1. Android SDK... 3 2.2. Android dans Eclipse...

Plus en détail

Procédure d'installation de FME Server pour Windows

Procédure d'installation de FME Server pour Windows Version du logiciel : 2010.6231 VEREMES 42 av. des Jardins 66240 St-Estève www.veremes.com VEREMES Version : 2010.6231 Page 1 / 23 Table des matières 1. Prérequis... 4 2. Téléchargement... 5 3. Installation...

Plus en détail

Tutoriel Drupal «views»

Tutoriel Drupal «views» Tutoriel Drupal «views» Tutoriel pour la découverte et l utilisation du module Drupal «Views» 1 Dans ce tutoriel nous allons d abord voir comment se présente le module views sous Drupal 7 puis comment

Plus en détail

L1 Option Programmation Web côté Serveur - Contrôle continu n 1

L1 Option Programmation Web côté Serveur - Contrôle continu n 1 L Option Programmation Web côté Serveur - Contrôle continu n Veuillez noircir les cases correspondantes à votre numéro d étudiant ( case/colonne). Si votre N est, il faut noircir le dans la ère colonne,

Plus en détail

PHP /MySQL Interface d'accès aux BDDs PDO. Youssef CHAHIR

PHP /MySQL Interface d'accès aux BDDs PDO. Youssef CHAHIR PHP /MySQL Interface d'accès aux BDDs PDO Youssef CHAHIR 1 PLAN Architecture Créer une interface PHP/MySQL : Établir une connexion Exécuter une requête Gérer les erreurs Exploiter les résultats de la requête

Plus en détail

Sauvegarde des bases SQL Express

Sauvegarde des bases SQL Express Sauvegarde des bases SQL Express Sauvegarder les bases de données avec SQL Express Dans les différents articles concernant SQL Server 2005 Express Edition, une problématique revient régulièrement : Comment

Plus en détail

SQL Server Integration Services 2012 Mise en oeuvre d'un projet ETL avec SSIS

SQL Server Integration Services 2012 Mise en oeuvre d'un projet ETL avec SSIS Introduction à SSIS 1. Présentation de SSIS 13 1.1 Concepts de l ETL 13 1.2 Management Studio et SQL Server Data Tools 14 1.3 Architecture 14 2. SSIS 2012 17 2.1 Les nouveautés de la version 2012 17 2.2

Plus en détail

Business Intelligence

Business Intelligence avec Excel, Power BI et Office 365 Téléchargement www.editions-eni.fr.fr Jean-Pierre GIRARDOT Table des matières 1 Avant-propos A. À qui s adresse ce livre?..................................................

Plus en détail

L optimisation des performances, la simplification des montées de version G.O.L.D. et le suivi statistique des processus.

L optimisation des performances, la simplification des montées de version G.O.L.D. et le suivi statistique des processus. L optimisation des performances, la simplification des montées de version G.O.L.D et le suivi statistique des processus. Présentation assurée par Pascal Gyssler (expert G.O.L.D. ilem) et Thierry Lejeune

Plus en détail

Périmètre de la solution

Périmètre de la solution Périmètre de la solution Tests unitaires : Pouvoir créer rapidement un nouveau cas de test à la suite de l ajout ou de l évolution d une règle de gestion. Ne pas avoir à coder chaque nouveau cas de test.

Plus en détail

WordPress : Guide à l édition

WordPress : Guide à l édition WordPress : Guide à l édition WordPress : Guide à l édition... 1 Présentation... 2 1. Accès au site... 2 2. Le tableau de bord... 2 3. Editez les contenus... 4 Quelle est la différence entre les pages

Plus en détail

Symfony 2. 1.Définition de symfony 2. 2.Installation. 3.Structure. 4.Symfony et les commandes

Symfony 2. 1.Définition de symfony 2. 2.Installation. 3.Structure. 4.Symfony et les commandes Symfony 2 Sommaire : 1.Définition de symfony 2 2.Installation 3.Structure 4.Symfony et les commandes 5.Le fonctionnement : le routeur (les url), les bundles, twig(templates) 6.L architecture de symfony2

Plus en détail

Documentation utilisateur FReg.NET

Documentation utilisateur FReg.NET Epitech Documentation utilisateur FReg.NET Document réservé aux utilisateurs souhaitant comprendre rapidement le fonctionnement du logiciel FReg.NET Lago_a, schehl_c, narcis_m, clique_x, tran-p_n 5/14/2010

Plus en détail

Laboratoire 3 Optimisation de requêtes et analyse de la performance. 1 Introduction. Tâche 1 : Évaluation et optimisation de requêtes

Laboratoire 3 Optimisation de requêtes et analyse de la performance. 1 Introduction. Tâche 1 : Évaluation et optimisation de requêtes DÉPARTEMENT DE GÉNIE LOGICIEL ET DES TI LOG660 - BASE DE DONNÉES HAUTE PERFORMANCE Laboratoire 3 Optimisation de requêtes et analyse de la performance 1 Introduction L objectif de ce troisième laboratoire

Plus en détail