2016-08-12 4 views
3

J'essaie d'utiliser un champ dynamique à partir de la réponse analysée. La réponse analysée doit correspondre à la dernière requête effectuée dans un environnement spécifique. Est-ce possible?Patte - Obtenir la dernière demande faite en utilisant un environnement spécifique

Voici le scénario:

1. Make Request 1 using Environment A 
    Receive Response A1 
2. Make Request 1 using Environment B 
    Receive Response B1 
3. Make Request 2 using environment A, with field from parsed response A1 
    Receive Response A2 
4. Make Request 2 using environment B, with field from parsed response B1 
    Receive Response B2 

Comment orchestrer les étapes 3 et 4?

Répondre

3

Nous prévoyons de l'implémenter correctement en utilisant des onglets sur MacOS Sierra. Avec chaque opération d'onglet en tant que session dédiée et vous allez épingler la sélection de l'environnement dans un onglet.

Ce n'est pas correctement mis en œuvre Paw encore, mais vous pouvez écrire une valeur dynamique sur mesure pour cela ou utiliser une solution de contournement hacky:

  1. Choisissez une variable de partitionnement dans vos environnements step1

  2. Définissez un en-tête X-paw-env dans Request 1 la variable d'environnement de partitionnement. De cette façon, vous obtenez la valeur actuelle de la variable de répartition en fonction de l'environnement step 2

  3. En demande 2 dans le domaine où vous utilisez le Response Parsed Body insérer une valeur dynamique Custom à la place. A l'intérieur se trouve le dernier échange pour la demande 1, où l'en-tête de la requête correspond à la valeur de votre variable de partitionnement pour l'environnement actuel. extraire la valeur dont vous avez besoin du corps de réponse à l'aide RegExp Match step3

function evaluate(context){ 
 
\t var variableValue = \t context.getEnvironmentVariableByName("myPartitioningVariable").getCurrentValue() 
 

 
\t var exchanges = context.getRequestByName("Request1").getAllExchanges(); 
 
\t for (var i = 0; i < exchanges.length; i++) { 
 
\t \t console.log(i, exchanges[i].requestHeaders["X-paw-env"]); 
 
\t \t if (variableValue === exchanges[i].requestHeaders["X-paw-env"]) { 
 
\t \t \t var dv = new DynamicValue("com.luckymarmot.RegExMatch", { re: '"user":\\s*"([^"]*)', input: exchanges[i].responseBody }); 
 
\t \t \t console.log(exchanges[i].responseBody) 
 
\t \t \t console.log(i, "returning") 
 
\t \t \t return dv.getEvaluatedString(); 
 
\t \t } 
 
\t } 
 

 
};