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

Tests et Performance Java Discussion :

Test Regx dans Assertion Réponse [JMeter]


Sujet :

Tests et Performance Java

  1. #1
    Membre du Club
    Inscrit en
    Août 2008
    Messages
    184
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 184
    Points : 49
    Points
    49
    Par défaut Test Regx dans Assertion Réponse
    Bonjour ,

    Je suis entrain de faire des scénario sur JMETER pour tester un web service SOAP , je suis bloqué sur la partie Assertion Réponse , je dois tester une partie de la réponse

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <PricePlanDtoList>
            <PricePlanDto>
              <PricePlanCode>1</PricePlanCode>
              <ExpDate>9999-01-01</ExpDate>
               <CreatedDate></CreatedDate>
               <PricePlanName></PricePlanName>
              <EffDate>2013-03-10</EffDate>
            </PricePlanDto>
          </PricePlanDtoList>
    Je veux que le teste ignore le contenu des deux balise <CreatedDate></CreatedDate> et <PricePlanName></PricePlanName>.
    J'ai mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <CreatedDate\b[^>]*>(.*?)</CreatedDate>
    <PricePlanName\b[^>]*>(.*?)</PricePlanName>
    Mais ça n'a pas marché.
    Merci pour votre aide.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    394
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 394
    Points : 639
    Points
    639
    Par défaut
    Bonjour,

    Est-ce que tu peux nous dire ce que tu veux vraiment faire comme assertion sur cette réponse ? Tu dis vouloir ignorer deux balises, mais quelles sont celles que tu veux réellement tester ? Je pense que tu n'as pas à t'embêter avec celles que tu veux ignorer, tu devrais te concentrer sur celles que tu veux tester...

    D'autre part si ta réponse est sur plusieurs lignes il y a sûrement des "\s*" à inclure dans ta regexp.

    Romain.

  3. #3
    Membre du Club
    Inscrit en
    Août 2008
    Messages
    184
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 184
    Points : 49
    Points
    49
    Par défaut
    mon teste est sur ce bloc xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <PricePlanDtoList>
            <PricePlanDto>
              <PricePlanCode>1</PricePlanCode>
              <ExpDate>9999-01-01</ExpDate>
               <CreatedDate></CreatedDate>
               <PricePlanName></PricePlanName>
              <EffDate>2013-03-10</EffDate>
            </PricePlanDto>
          </PricePlanDtoList>
    PricePlanCode doit avoir 1
    ExpDate : 9999-01-01
    EffDate : 2013-03-10
    Pour CreatedDate et PricePlanName je dois accépter n'importe quelle chaine de caractère

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    394
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 394
    Points : 639
    Points
    639
    Par défaut
    Pour ça j'ajouterais une "Assertion Réponse" à ta requête SOAP dans Jmeter.

    Je paramétrais l'assertion sur :
    - Appliquer sur : l'échantillon
    - Section de réponse à tester : Texte réponse
    - Type de correspondance du motif : Contient (expr. régulière)

    Ensuite dans "Motifs à tester" tu ajoutes une ligne par variable que tu veux vérifier :
    <PricePlanCode>1</PricePlanCode>
    <ExpDate>9999-01-01</ExpDate>
    <EffDate>2013-03-10</EffDate>

    Et une ligne par variable dont tu veux vérifier la présence mais pas la valeur :
    <CreatedDate>(.*?)<\/CreatedDate>
    <PricePlanName>(.*?)<\/PricePlanName>

    (Note bien le "\" que j'ai rajouté par rapport à toi pour échapper le "/" dans la balise fermante)

    Romain.

  5. #5
    Membre du Club
    Inscrit en
    Août 2008
    Messages
    184
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 184
    Points : 49
    Points
    49
    Par défaut
    Voilà ce que me retourne JMeter :

    Erreur d'assertion : false
    Echec d'assertion : true
    Message d'échec d'assertion : Test failed: text expected to contain /<PricePlanDtoList>
    <PricePlanDto>
    <PricePlanCode>1</PricePlanCode>
    <ExpDate>9000-01-01</ExpDate>
    <CreatedDate>(.*?)<\/CreatedDate>
    <PricePlanName>(.*?)<\/PricePlanName>
    <EffDate>2013-03-18</EffDate>
    </PricePlanDto>
    </PricePlanDtoList>/
    C'est comme s'il n'interprète pas mon regexp

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    394
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 394
    Points : 639
    Points
    639
    Par défaut
    Si tu veux faire une seule expression régulière, il faut que tu rajoutes des "\s*" pour matcher les retours à la lignes et les espaces... :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <PricePlanDtoList>(\s*)
    <PricePlanDto>(\s*)
    <PricePlanCode>1<\/PricePlanCode>(\s*)
    <ExpDate>9000-01-01</ExpDate>(\s*)
    <CreatedDate>(.*?)<\/CreatedDate>(\s*)
    <PricePlanName>(.*?)<\/PricePlanName>(\s*)
    <EffDate>2013-03-18<\/EffDate>(\s*)
    <\/PricePlanDto>(\s*)
    <\/PricePlanDtoList>
    Est-ce que c'est mieux ? Sinon vas-y étape par étape, c'est un bon principe en développement... Tu commences avec une regexp "<PricePlanDtoList>", puis avec "<PricePlanDtoList>(\s*)<PricePlanDto>", puis avec "<PricePlanDtoList>(\s*)<PricePlanDto>(\s*)<PricePlanCode>1<\/PricePlanCode>(\s*)", ... et tu vois quand ça ne marche plus !

    D'autre part n'entoure pas tes expressions régulières par "//".

    Romain.

  7. #7
    Membre du Club
    Inscrit en
    Août 2008
    Messages
    184
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 184
    Points : 49
    Points
    49
    Par défaut
    cool ça marche il fallait remplacer < par &lt; et > par &gt;

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

Discussions similaires

  1. Script shell 2 test grep dans un if
    Par hoaivong dans le forum Linux
    Réponses: 4
    Dernier message: 13/11/2008, 20h46
  2. [JUnit] Test insertion dans DB
    Par MicroPuce dans le forum Tests et Performance
    Réponses: 6
    Dernier message: 11/11/2006, 11h22
  3. Test point dans un polyedre
    Par Mucho dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 31/03/2006, 18h40
  4. [Cactus] [Test] request dans setUp
    Par Strab dans le forum Tests et Performance
    Réponses: 1
    Dernier message: 09/08/2005, 14h36

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