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.

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

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

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

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

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

FileMaker 12. Guide ODBC et JDBC

FileMaker 12. Guide ODBC et JDBC FileMaker 12 Guide ODBC et JDBC 2004-2012 FileMaker, Inc. Tous droits réservés. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker et Bento sont des marques commerciales de

Plus en détail

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7 Sommaire 1-Introduction 2 1-1- BPM (Business Process Management)..2 1-2 J-Boss JBPM 2 2-Installation de JBPM 3 2-1 Architecture de JOBSS JBPM 3 2-2 Installation du moteur JBoss JBPM et le serveur d application

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

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

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

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

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

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

Maîtrise d Ouvrage du Système d Information en pratique

Maîtrise d Ouvrage du Système d Information en pratique Maîtrise d Ouvrage du Système d Information en pratique Techniques et outils pour réussir les activités de MOA du SI Olivier Durand and Aurélie Durand This book is for sale at http://leanpub.com/moa-si-pratique

Plus en détail

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

Les formations. Développeur Logiciel. ENI Ecole Informatique

Les formations. Développeur Logiciel. ENI Ecole Informatique page 1/8 Titre professionnel : Inscrit au RNCP de Niveau III (Bac + 2) (J.O. du 19/02/13) 24 semaines + 8 semaines de stage (uniquement en formation continue) Développer une application orientée objet

Plus en détail

La Programmation Pour Les Enfants

La Programmation Pour Les Enfants La Programmation Pour Les Enfants Peter Armstrong and Valérie Taesch This book is for sale at http://leanpub.com/laprogrammationpourlesenfants This version was published on 2014-06-22 This is a Leanpub

Plus en détail

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour http://cuiwww.unige.

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour http://cuiwww.unige. : JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java Michel Bonjour http://cuiwww.unige.ch/~bonjour Plan JDBC: API bas niveau pour l accès aux BD (SQL) - Introduction - JDBC et : Java, ODBC, SQL

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

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

Devenez un véritable développeur web en 3 mois!

Devenez un véritable développeur web en 3 mois! Devenez un véritable développeur web en 3 mois! L objectif de la 3W Academy est de former des petits groupes d élèves au développement de sites web dynamiques ainsi qu à la création d applications web

Plus en détail

FICHE CONCEPT 01 ETL (EXTRACT TRANSFORM & LOAD)

FICHE CONCEPT 01 ETL (EXTRACT TRANSFORM & LOAD) FICHE CONCEPT 01 ETL (EXTRACT TRANSFORM & LOAD) BIEN GERER SES REFERENTIELS DE DONNEES : UN ENJEU POUR MIEUX PILOTER LA PERFORMANCE DE SON ETABLISSEMENT octobre 2008 GMSIH 44, Rue de Cambronne 75015 Paris.

Plus en détail

NVU, Notepad++ (ou le bloc-note), MySQL, PhpMyAdmin. HTML, PHP, cas d utilisation, maquettage, programmation connaissances en HTML, PHP et SQL

NVU, Notepad++ (ou le bloc-note), MySQL, PhpMyAdmin. HTML, PHP, cas d utilisation, maquettage, programmation connaissances en HTML, PHP et SQL Prise en main de NVU et Notepad++ (conception d application web avec PHP et MySql) Propriétés Intitulé long Formation concernée Matière Présentation Description Conception de pages web dynamiques à l aide

Plus en détail

itop : la solution ITSM Open Source

itop : la solution ITSM Open Source itop : la solution ITSM Open Source itop est un portail web multi-clients conçu pour les fournisseurs de services et les entreprises. Simple et facile d utilisation il permet de gérer dans une CMDB flexible

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

Les procédures stockées et les fonctions utilisateur

Les procédures stockées et les fonctions utilisateur Les procédures stockées et les fonctions utilisateur Z Grégory CASANOVA 2 Les procédures stockées et les fonctions utilisateur [08/07/09] Sommaire 1 Introduction... 3 2 Pré-requis... 4 3 Les procédures

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

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 Interface phpmyadmin Créer une interface PHP/MySQL : Établir une connexion Exécuter une requête Gérer les erreurs Exploiter

Plus en détail

Java DataBaseConnectivity

Java DataBaseConnectivity Java DataBaseConnectivity JDBC JDBC est une API Java (ensemble de classes et d interfaces défini par SUN et les acteurs du domaine des SGBD) permettant d accéder aux bases de données à l aide du langage

Plus en détail

Maarch Framework 3 - Maarch. Tests de charge. Professional Services. http://www.maarch.fr. 11, bd du Sud Est 92000 Nanterre

Maarch Framework 3 - Maarch. Tests de charge. Professional Services. http://www.maarch.fr. 11, bd du Sud Est 92000 Nanterre Maarch Professional Services 11, bd du Sud Est 92000 Nanterre Tel : +33 1 47 24 51 59 Fax : +33 1 47 24 54 08 Maarch Framework 3 - Maarch PS anime le développement d un produit d archivage open source

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

Unité de formation 1 : Structurer une application. Durée : 3 semaines

Unité de formation 1 : Structurer une application. Durée : 3 semaines PROGRAMME «DEVELOPPEUR LOGICIEL» Titre professionnel : «Développeur Logiciel» Inscrit au RNCP de niveau III (Bac+2) (JO du 23 Octobre 2007) (32 semaines) Unité de formation 1 : Structurer une application

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

Projet de Java Enterprise Edition

Projet de Java Enterprise Edition Projet de Java Enterprise Edition Cours de Master 2 Informatique Boutique en ligne L objectif du projet de JEE est de réaliser une application de boutique en ligne. Cette boutique en ligne va permettre

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

3.3. Installation de Cacti

3.3. Installation de Cacti Cacti comme beaucoup de programmes sous linux cacti s appuis sur d autres programmes pour fonctionner ainsi Cacti nécessite l installation d un serveur LAMP (Linux, Apache, Mysql, Php) pour fonctionner,

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

Jean-Michel Richer jean-michel.richer@univ-angers.fr http://www.info.univ-angers.fr/pub/richer. L3 Pro Informatique 2010-2011

Jean-Michel Richer jean-michel.richer@univ-angers.fr http://www.info.univ-angers.fr/pub/richer. L3 Pro Informatique 2010-2011 1 / 32 Développement Web - JDBC Jean-Michel Richer jean-michel.richer@univ-angers.fr http://www.info.univ-angers.fr/pub/richer L3 Pro Informatique 2010-2011 2 / 32 Plan Plan 1 Préambule 2 Utilisation de

Plus en détail

1 Partie A : administration d une base de donnée à travers PhpMyAdmin

1 Partie A : administration d une base de donnée à travers PhpMyAdmin Ce TP se compose en 2 sections : une section de prise en main (sur ordinateur) et une section d exercice (sur papier) concernant l algèbre relationnelle. 1 Partie A : administration d une base de donnée

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

Mon Odyssée Lean Startup

Mon Odyssée Lean Startup Mon Odyssée Lean Startup Qui n a jamais rêvé de lancer sa petite entreprise sans risques? Voici mon expérience grâce au Lean Startup. Nicolas Deverge This book is for sale at http://leanpub.com/myleanstartupjourney-fr

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

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

PHP/MYSQL. Web Dynamique

PHP/MYSQL. Web Dynamique PHP/MYSQL Web Dynamique ENSG Juin 2008 Qui suis-je? Guillaume Gautreau Responsable projets Systèmes d information à l ENPC guillaume@ghusse.com http://www.ghusse.com Ces 6 jours de formation Jour 1 : présentations,

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

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

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

Vulnérabilités logicielles Injection SQL. Chamseddine Talhi École de technologie supérieure (ÉTS) Dép. Génie logiciel et des TI

Vulnérabilités logicielles Injection SQL. Chamseddine Talhi École de technologie supérieure (ÉTS) Dép. Génie logiciel et des TI Vulnérabilités logicielles Injection SQL Chamseddine Talhi École de technologie supérieure (ÉTS) Dép. Génie logiciel et des TI 1 Plan SQL Injection SQL Injections SQL standards Injections SQL de requêtes

Plus en détail

Exemple de rapport simplifié de Test de charge

Exemple de rapport simplifié de Test de charge syloe.fr http://www.syloe.fr/conseil/test de charge/exemple de rapport simplifie de test de charge/ Exemple de rapport simplifié de Test de charge Contexte du test de charge Un client nous soumet une problématique

Plus en détail

Programmation Web. Sites dynamiques et bases de données. Mathieu Lacroix. I.U.T. de Villetaneuse. Année 2015-2016

Programmation Web. Sites dynamiques et bases de données. Mathieu Lacroix. I.U.T. de Villetaneuse. Année 2015-2016 Programmation Web Sites dynamiques et bases de données Mathieu Lacroix I.U.T. de Villetaneuse Année 2015-2016 E-mail : mathieu.lacroix@iutv.univ-paris13.fr Page Web : http: // www-lipn. univ-paris13. fr/

Plus en détail

Logiciel d analyse du monde des objets connectés intelligents

Logiciel d analyse du monde des objets connectés intelligents Logiciel d analyse du monde des objets connectés intelligents Le défi : Transformer les données en intelligence décisionnelle Le logiciel SkySpark analyse automatiquement les données issues des équipements

Plus en détail

les techniques d'extraction, les formulaires et intégration dans un site WEB

les techniques d'extraction, les formulaires et intégration dans un site WEB les techniques d'extraction, les formulaires et intégration dans un site WEB Edyta Bellouni MSHS-T, UMS838 Plan L extraction des données pour un site en ligne Architecture et techniques Les différents

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

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

Projet DataCity. Documentation Utilisateur. Version 4

Projet DataCity. Documentation Utilisateur. Version 4 Projet DataCity Documentation Utilisateur Version 4 Cyril Moralès Marc Soufflet Lionel Hamsou Cédric Merouani Cyntia Marquis Ryan Legasal Guillaume de Jabrun morale_c souffl_m hamsou_l meroua_c marqui_c

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

Bases de données (INF225), TELECOM ParisTech. TP PHP & MySQL

Bases de données (INF225), TELECOM ParisTech. TP PHP & MySQL Bases de données (INF225), TELECOM ParisTech TP PHP & MySQL Pierre Senellart (pierre.senellart@telecom-paristech.fr) Bogdan Cautis (bogdan.cautis@telecom-paristech.fr) Ioana Ileana (ioana.ileana@telecom-paristech.fr)

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

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

Vérifier la qualité de vos applications logicielle de manière continue

Vérifier la qualité de vos applications logicielle de manière continue IBM Software Group Vérifier la qualité de vos applications logicielle de manière continue Arnaud Bouzy Kamel Moulaoui 2004 IBM Corporation Agenda Analyse de code Test Fonctionnel Test de Performance Questions

Plus en détail

Sage 100 CRM Guide de l Import Plus avec Talend Version 8. Mise à jour : 2015 version 8

Sage 100 CRM Guide de l Import Plus avec Talend Version 8. Mise à jour : 2015 version 8 Sage 100 CRM Guide de l Import Plus avec Talend Version 8 Mise à jour : 2015 version 8 Composition du progiciel Votre progiciel est composé d un boîtier de rangement comprenant : le cédérom sur lequel

Plus en détail

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau) CS WEB Ch 1 Introduction I. INTRODUCTION... 1 A. INTERNET INTERCONNEXION DE RESEAUX... 1 B. LE «WEB» LA TOILE, INTERCONNEXION DE SITES WEB... 2 C. L URL : LOCALISER DES RESSOURCES SUR L INTERNET... 2 D.

Plus en détail

Rapport d Étude Pratique : Site Web pour conférence scientifique

Rapport d Étude Pratique : Site Web pour conférence scientifique Rapport d Étude Pratique : Site Web pour conférence scientifique Quentin Dufour, Thomas Hareau, Laurent Aymard, Jean Chorin Encadrant : Jean-François Dupuy 2015 Site Web de conférence scientifique 2 Résumé

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

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

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

Programmation orientée objet en langage JAVA

Programmation orientée objet en langage JAVA Programmation orientée objet en langage JAVA Connexion à une base de données avec JDBC Claude Duvallet Université du Havre UFR Sciences et Techniques 25 rue Philippe Lebon - BP 540 76058 LE HAVRE CEDEX

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

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

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

PHP/MySQL avec Dreamweaver CS4

PHP/MySQL avec Dreamweaver CS4 PHP/MySQL avec Dreamweaver CS4 Dreamweaver CS4 Jean-Marie Defrance Groupe Eyrolles, 2009, ISBN : 978-2-212-12551-1 7 Étude de cas : un site marchand Dans ce dernier chapitre, nous allons exploiter Dreamweaver

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

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

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

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

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

Surveiller et contrôler vos applications à travers le Web

Surveiller et contrôler vos applications à travers le Web Surveiller et contrôler vos applications à travers le Web Valérie HELLEQUIN Ingénieur d application Internet permet aujourd hui la diffusion d informations et de ressources que chaque utilisateur peut

Plus en détail

Connexion à SQL server

Connexion à SQL server Micromedia International Etude technique Auteur : Pierre Chevrier Nombre de pages : 18 Société : Date : 12/09/2012 Réf. : ETT_20110624_000001.docx Connexion à SQL server Ce document précise les modalités

Plus en détail

Mémento Site Dynamique / PHP

Mémento Site Dynamique / PHP Mémento Site Dynamique / PHP Pour faire fonctionner site statique : Navigateur Éditeur de texte Apache/PHP/MySQL (qu'on peut retrouver dans WampServer (uniquement Windows)) Inclure les portions de page

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

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

Introduction à LINQ. Chapitre 1. Qu est-ce que LINQ?

Introduction à LINQ. Chapitre 1. Qu est-ce que LINQ? Chapitre 1 Introduction à LINQ En surfant sur le Web, vous trouverez différentes descriptions de LINQ (Language Integrated Query), et parmi elles : LINQ est un modèle de programmation uniforme de n importe

Plus en détail

PHP. Performances. Audit et optimisation LAMP. Julien Pauli. Cyril Pierre de Geyer. Guillaume Plessis. Préface d Armel Fauveau

PHP. Performances. Audit et optimisation LAMP. Julien Pauli. Cyril Pierre de Geyer. Guillaume Plessis. Préface d Armel Fauveau Performances PHP Julien Pauli Cyril Pierre de Geyer Guillaume Plessis Préface d Armel Fauveau Groupe Eyrolles, 2012, ISBN : 978-2-212-12800-0 Table des matières Avant-propos... 1 Pourquoi ce livre?.....................................................

Plus en détail

Spring par la pratique

Spring par la pratique Spring par la pratique 2 e édition Spring 2.5 et 3.0 Arnaud Cogoluègnes Thierry Templier Julien Dubois Jean-Philippe Retaillé avec la contribution de Séverine Templier Roblou et de Olivier Salvatori Groupe

Plus en détail

Pour les débutants. langage de manipulation des données

Pour les débutants. langage de manipulation des données Pour les débutants SQL : langage de manipulation des données Les bases de données sont très utilisées dans les applications Web. La création, l interrogation et la manipulation des données de la base sont

Plus en détail

Besoin de concevoir des systèmes massivement répartis. Comment tester le système? Solution. Évaluation de systèmes répartis à large échelle

Besoin de concevoir des systèmes massivement répartis. Comment tester le système? Solution. Évaluation de systèmes répartis à large échelle Besoin de concevoir des systèmes massivement répartis. Évaluation de systèmes répartis à large échelle Sergey Legtchenko Motivation : LIP6-INRIA Tolérance aux pannes Stockage de données critiques Coût

Plus en détail

PHP & BD. PHP & Bases de données. Logiciels & matériels utilisés. Bases de données et Web

PHP & BD. PHP & Bases de données. Logiciels & matériels utilisés. Bases de données et Web PHP & Bases de données La quantité de données utilisée par certains sites web nécessite l'utilisation d'une base de données Il faut donc disposer d'un SGBD (mysql, postgresql, oracle, ) installé sur un

Plus en détail

Gestion d une école. FABRE Maxime FOUCHE Alexis LEPOT Florian

Gestion d une école. FABRE Maxime FOUCHE Alexis LEPOT Florian Gestion d une école FABRE Maxime 2015 Sommaire Introduction... 2 I. Présentation du projet... 3 1- Lancement de l application... 3 Fonctionnalités réalisées... 4 A. Le serveur... 4 1 - Le réseau... 4 2

Plus en détail

Document d évaluation système

Document d évaluation système CODAZZI Rama DAMOTTE Alan GUI Kai HAMMERER Jérémy TORCK Quentin RICM5 Document d évaluation système Groupe 2 Site de vente de stickers personnalisés My Stick It ETAT DE CHAQUE COMPOSANT : NON REALISE,

Plus en détail

Installer et débuter avec PostgreSQL

Installer et débuter avec PostgreSQL Dominique Colombani Installer et débuter avec PostgreSQL FOCUS Digit Books Éditeur de livres numériques et papiers Brest infos@digitbooks.fr http://www.digitbooks.fr Digit Books, 2013 Conception des couvertures

Plus en détail

Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement

Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement Guillaume HARRY l Contenu sous licence Creative Commons CC-BY-NC-ND Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement P. 2 1. Introduction 2.

Plus en détail

Introduction à ADO.NET

Introduction à ADO.NET 1 Introduction à ADO.NET Introduction à ADO.NET Sommaire Introduction à ADO.NET... 1 1 Introduction... 2 1.1 Qu est ce que l ADO.NET?... 2 1.2 Les nouveautés d ADO.NET... 2 1.3 Les avantages d ADO.NET...

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

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

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

Université Paris 1 Panthéon Sorbonne UFR 06. Fiche de TD VBA

Université Paris 1 Panthéon Sorbonne UFR 06. Fiche de TD VBA 1 / 13 Fiche de TD VBA L objectif de cette fiche est de faire un rappel (voire une présentation rapide) du langage de programmation VBA et de son usage sur des documents Excel et Access. Pour rappel, VBA

Plus en détail

White Paper - Livre Blanc

White Paper - Livre Blanc White Paper - Livre Blanc Développement d applications de supervision des systèmes d information Avec LoriotPro Vous disposez d un environnement informatique hétérogène et vous souhaitez à partir d une

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