IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Servlets/JSP Java Discussion :

[JSP/Servlet] Appel en boucle pour tester la rapidité


Sujet :

Servlets/JSP Java

  1. #1
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 70
    Points : 46
    Points
    46
    Par défaut [JSP/Servlet] Appel en boucle pour tester la rapidité
    Bonjour,

    J'ai une servlet, qui fait plusieurs traitements ( insertion mysql etc...)
    J'aimerai tester la rapidité ...

    c'est à dire appeler la servlet en boucle pendant 1 minute pour savoir combien d'appel le serveur peut supporter.

    j'avais fait une page JSP avec un formulaire qui se submit tout seul, et la page qui se refresh en boucle, mais c'est nul, c'est le navigateur qui est lent.

    qqun saurait comment appeler la servlet en boucle de manière efficace ?
    apres je compte combien de ligne sont insérées, c'est brutal comme méthode, c'est un bon test ou il y a mieux pour tester la rapidité de la servlet ?


    merci beaucoup

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    283
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2005
    Messages : 283
    Points : 114
    Points
    114
    Par défaut
    je me demande s'il n'existe pas plutôt des logiciels gratuits prévu pour faire ce genre de tests, cela te ferait gagner du temps.

  3. #3
    Rédacteur/Modérateur
    Avatar de Laurent.B
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    3 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 3 468
    Points : 17 037
    Points
    17 037
    Par défaut
    Essaye un response.sendRedirect(...) sur la servlet elle-même.

    Sinon, c'est un test parmi d'autres mais ça a son utilité de procéder ainsi je pense...

  4. #4
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 70
    Points : 46
    Points
    46
    Par défaut
    Citation Envoyé par Laurent.B
    Essaye un response.sendRedirect(...) sur la servlet elle-même.

    Sinon, c'est un test parmi d'autres mais ça a son utilité de procéder ainsi je pense...
    C'est à dire ? :s

    je créé une page jsp, avec comme code : response.sendRedirect(maservlet) mais est ce que ca ne va pas etre ralenti par le navigateur ?
    ou dans le code de la servlet, mais a ce moment la, où ? (doget() ?.. oO )

    merci beaucoup !

  5. #5
    Rédacteur/Modérateur
    Avatar de Laurent.B
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    3 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 3 468
    Points : 17 037
    Points
    17 037
    Par défaut
    Tu parlais de servlet donc pour moi c'est dans la servlet où tu dois mettre ce code... Sinon, évidemment il faut mettre un compteur static que tu testes à chaque entrée dans la servlet, de cette manière lorsque tu as atteint le nombre souhaité tu changes de sendRedirect.
    Mais en fait, je ne suis pas sûr que le serveur apprécie vraiment ce genre de chose, à voir.

  6. #6
    Membre éprouvé
    Avatar de yolepro
    Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2002
    Messages
    918
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mai 2002
    Messages : 918
    Points : 1 144
    Points
    1 144
    Par défaut
    Il faut utiliser des logiciels de test de charge exemple OpenLoad.

    Cela doit faire tout ce que tu demandes.

    Sinon faire une recherche sur le forum cette question à déjà du etre traitée.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    283
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2005
    Messages : 283
    Points : 114
    Points
    114
    Par défaut
    oui bonne idée, pourquoi coder ce qui existe déjà. utilise un de ces programmes de tests de charge dont parle yolepro

  8. #8
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 70
    Points : 46
    Points
    46
    Par défaut
    J'ai utilisé la technique de Laurent.B. (compteur static sur la servlet elle meme, a la fin du Doget, je fais une redirection sur la servlet)
    C'est semi efficace
    au bout de 20 appels, il y a un message d'alert :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    La limite de redirection de cette url a été dépassé. Chargement intérompu. Cette interuption peut etre due à un cookie blocké.
    j'ai cherché d'autres post similaires, je n'ai pas encore trouvé, je vais voir OpenLoad.

    merci bien.

  9. #9
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 70
    Points : 46
    Points
    46
    Par défaut
    OpenLoad est payant :s


    qqun sait ce qui block à 20 redirections svp ?

    merci beaucoup

  10. #10
    Membre éprouvé

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2002
    Messages : 652
    Points : 1 151
    Points
    1 151
    Par défaut
    Install OpenSTA, tu en as pour 2 minutes, tu fais ton scénario et tu le lance avec un limite de temps.
    Lors de l'enregistrement du scénarion, désactive l'option "enregistrer les pauses" (à toi de chercher où, je n'ai pas les dialogues en tête) sinon, édite le script et vire toutes les pauses.

  11. #11
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 70
    Points : 46
    Points
    46
    Par défaut
    Dans le genre pas de chance :s

    OpenSTA open source qui ne fonction que sur Window, et je suis sur Linux :s

    Platform support, however, is limited to Windows only.

  12. #12
    Membre éprouvé

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2002
    Messages : 652
    Points : 1 151
    Points
    1 151
    Par défaut
    Bon et bien puisse que tu développe en Java, une petite classe JUnit avec commons-httpclient et une boucle limitée dans le temps sur l'url de ton servlet, terminé

  13. #13
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 70
    Points : 46
    Points
    46
    Par défaut
    Citation Envoyé par Alwin
    Bon et bien puisse que tu développe en Java, une petite classe JUnit avec commons-httpclient et une boucle limitée dans le temps sur l'url de ton servlet, terminé
    et justement c'est ce que je voudrai savoir faire
    comment on boucle sur l'url ?

    avec le response.sendredirection(servlet) ... au bout de 20 appels FireFox me lance le message d'erreur cité plus haut, et Konqueror me dit qu'il a détecté une page recurssive et donc il ne veut pas l'afficher.

  14. #14
    Rédacteur/Modérateur
    Avatar de Laurent.B
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    3 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 3 468
    Points : 17 037
    Points
    17 037
    Par défaut
    Oui laisse tomber la méthode de la servlet qui s'appelle elle-même... il y a probablement un empilement des ressources prises et non libérées donc c'est voué à l'échec.

    Il faut que la request aille jusqu'au bout, c'est à dire que l'envoi d'une réponse, quelle quelle soit, parvienne au client.

  15. #15
    Membre éprouvé

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2002
    Messages : 652
    Points : 1 151
    Points
    1 151
    Par défaut
    Classe issue du tutorial de commons-httpclient

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
     
    package org.alwin.test;
     
    import java.io.IOException;
     
    import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;
    import org.apache.commons.httpclient.HttpClient;
    import org.apache.commons.httpclient.HttpException;
    import org.apache.commons.httpclient.HttpStatus;
    import org.apache.commons.httpclient.methods.GetMethod;
    import org.apache.commons.httpclient.params.HttpMethodParams;
     
    public class Test {
     
    	private static String url = "http://www.apache.org/";
     
    	public static void main(String[] args) {
    		// Create an instance of HttpClient.
    		HttpClient client = new HttpClient();
     
    		// Create a method instance.
    		GetMethod method = new GetMethod(url);
     
    		// Provide custom retry handler is necessary
    		method.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,
    				new DefaultHttpMethodRetryHandler(3, false));
     
    		try {
    			// Execute the method.
    			int statusCode = client.executeMethod(method);
     
    			if (statusCode != HttpStatus.SC_OK) {
    				System.err.println("Method failed: " + method.getStatusLine());
    			}
     
    			// Read the response body.
    			byte[] responseBody = method.getResponseBody();
     
    			// Deal with the response.
    			// Use caution: ensure correct character encoding and is not binary
    			// data
    			System.out.println(new String(responseBody));
     
    		} catch (HttpException e) {
    			System.err.println("Fatal protocol violation: " + e.getMessage());
    			e.printStackTrace();
    		} catch (IOException e) {
    			System.err.println("Fatal transport error: " + e.getMessage());
    			e.printStackTrace();
    		} finally {
    			// Release the connection.
    			method.releaseConnection();
    		}
    	}
    }
    Ajoute les dépendances suivantes à ton projet :
    • commons-httpclient-3.0.1
    • commons-loggin-1.0.4
    • commons-codec-1.3


    Change l'url et fais tourner en boucle voir en multithread

  16. #16
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 70
    Points : 46
    Points
    46
    Par défaut
    Excelent, vraiment excelent

    un gros gros gros merci, je n'aurais jamais trouvé une solution de se genre, propre.

    vraiment génial

    merci beaucoup
    merci encore

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Boucle pour tester nombre de fois résultat
    Par serna dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 17/03/2015, 18h14
  2. Réponses: 3
    Dernier message: 09/01/2012, 11h37
  3. Boucle pour tester les conditions d'une grille
    Par stefsas dans le forum Applets
    Réponses: 1
    Dernier message: 08/03/2010, 10h16
  4. [jsp][servlet]appel servlet hors formulaire
    Par alexandra_ape dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 18/06/2004, 17h08
  5. [JSP/Servlet] Outils pour developper?
    Par BenoitM dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 04/05/2004, 11h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo