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

Groovy Java Discussion :

[SoapUI Groovy] Problème de contexte en multi-appels de Mocks


Sujet :

Groovy Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 138
    Points : 53
    Points
    53
    Par défaut [SoapUI Groovy] Problème de contexte en multi-appels de Mocks
    Bonjour,

    Je travaille sur le simulateur de tests SoapUI pour tester des mock services avec les scripts Groovy. Mes mocks fonctionnement normalement en mode mono-thread (une seule exécution à la fois), mais lorsque je lance les mocks en multithread, les réponses provenant du mock ne sont plus cohérentes (exemple : la deuxième réponse prend la valeur de la première), et cela est dû au contexte par lequel je stocke les réponses récupérées à partir d'une requête. L'exécution des réponses se faisant en parallèle, un problème de concurrence sur le contexte se crée.

    Exemple :

    Ma réponse en XML :
    Mon script groovy :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context)
    def holder = groovyUtils.getXmlHolder( mockRequest.requestContent )
     
    def cstmt = con.prepareCall("{CALL STORED_PROCEDURE_X(?,?,?)}");
    // déclaration des paramètres de la procédure ...
     
    def rs = cstmt.executeQuery();
     
    //Récupérer les paramètres de réponse 
    if( rs.next() )
     {
       context.id = rs.getString("id");
     }
    J'ai vu dans ce fil qu'on peut locker le contexte de cette façon :
    context.lock = new Object()

    avec un autre bout de code du genre :
    synchronized(context.LoadTestContext.lock) // sachant que je n'utilise pas LoadTestContext dans mes tests; les mocks services sont appelés hors SoapUI, à partir d'une application console.

    J'ai testé en rajouter le lock, mais ça n'a pas marché. Quelqu'un aurait une idée comme résoudre ce problème svp ?

    En vous remerciant d'avance.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 138
    Points : 53
    Points
    53
    Par défaut
    Bonjour,

    Je me suis rendu compte que l'objet lock créé dans mon exemple ne fait pas du tout la fonction lock, c'est un objet simple qui prend une valeur aléatoire (lock:java.lang.Object@130e32f).

    Quelqu'un aurait une idée comment locker l'objet contexte dans Groovy ou dans Java ?

    Ou bien y a t-il un moyen de récupérer la réponse du mock sans passer par le contexte ?

    Merci.

Discussions similaires

  1. Réponses: 11
    Dernier message: 14/02/2006, 00h26
  2. Problème de retour aprés l'appel d'une popup
    Par PADAWANN33 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 06/02/2006, 15h53
  3. sql server probléme SSPI context
    Par samsih dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 17/12/2005, 12h57
  4. Alimenter le context sur un appel Javascript ?...
    Par Sylvain James dans le forum XMLRAD
    Réponses: 2
    Dernier message: 20/10/2003, 15h44

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