2017-08-22 2 views
0

J'ai le scénario suivant, je veux tester:Définition des variables et des valeurs attendues dans le Cadre d'agrumes

  1. Effectuer un appel au service A, obtenir le nombre d'éléments dans un JsonArray
  2. Service d'appel B pour effectuer une action donnée
  3. Effectuer un appel au service a nouveau, pour vérifier que le JsonArray a un nouvel élément sur elle

PS: il n'y a pas de corrélation entre l'appel de service B à l'étape 2 et le verificatio n dans l'étape 3. Je ne peux vérifier que l'élément hausse du nombre de 1.

  • Je peux effectuer l'étape 1 en utilisant les agrumes http() et .extractFromPayload() et l'ajouter à une variable
  • je peux effectuer l'étape 2 avec un autre http() appel

Cependant, je suis coincé à l'étape 3, puisque je ne peux pas modifier la valeur de la variable mesurée à l'étape 1. Je l'ai essayé d'utiliser action(new AbstractTestAction() {...}) mais ils ne se fait pas entre le test il ne fonctionne pas.

Y a-t-il un moyen d'accomplir cela?

Répondre

0

J'ai adapté une solution de Citrus Framework - Can a variable be assigned from a response?. J'ai pu y arriver via:

L'ajout de cette étape à l'épreuve (avant l'étape 3 ci-dessus):

groovy(new ClassPathResource("addVariable.groovy"));

Ceci est le contenu de addVariable.groovy

int expected = context.getVariable("currentDataXYZ").toInteger() + 1 
context.getVariables().put("expectedDataXYZ", expected.toString()) 

I pense que c'est un peu encombrant, mais ça marche! S'il y a une façon plus propre de le faire, ce serait bien, ou peut-être une demande de fonctionnalité :)