web-dev-qa-db-fra.com

Comptage des enregistrements dans un tableau JSON à l'aide de javascript et Postman

J'ai un contrôle qui renvoie 2 enregistrements:

{
  "value": [
    {
      "ID": 5,
      "Pupil": 1900031265,
      "Offer": false,
    },
    {
      "ID": 8,
      "Pupil": 1900035302,
      "Offer": false,
      "OfferDetail": ""
    }
  ]
}

J'ai besoin de tester via Postman, que j'ai 2 enregistrements retournés. J'ai essayé diverses méthodes que j'ai trouvées ici et ailleurs, mais sans succès. L'utilisation du code ci-dessous ne renvoie pas la réponse attendue.

responseJson = JSON.parse(responseBody);
var list = responseBody.length;
tests["Expected number"] = list === undefined || list.length === 2;

À ce stade, je ne sais pas si c'est l'API testée qui est en cause ou mon codage. J'ai essayé de lire en boucle les éléments renvoyés, mais cela ne fonctionne pas pour moi non plus. Quelqu'un pourrait-il me conseiller, je suis nouveau sur javascript, je m'attends donc à ce qu'il y ait une cause évidente à mon problème, mais je ne le vois pas. Merci beaucoup. 

8
Chrissi

Corrigez votre JSON. et essayez ceci.

var test = JSON.parse('{"value": [{"ID": 5,"Pupil": 1900031265,"Offer": false},{"ID": 8,"Pupil": 1900035302,"Offer": false,"OfferDetail": ""}] }')

test.value.length; // 2
10
Kaushik

Dans postman, dans la section Tests, procédez comme suit (capture d'écran ci-dessous): var body = JSON.parse(responseBody); tests["Count: " + body.value.length] = true;

Voici ce que vous devriez voir (note: j'ai remplacé responseBody par JSON pour simuler l'exemple ci-dessus):  enter image description here

5
RC_02

Votre corps de réponse est un objet que vous ne pouvez pas trouver avec la longueur d'un objet try 

var list = responseJson.value.length;
5
Mustafa Mamun

C’est ce que j’ai fait pour compter les recods

//parsing the Response body to a variable
    responseJson = JSON.parse(responseBody);

//Finding the length of the Response Array
    var list = responseJson.length;
    console.log(list);
    tests["Validate service retuns 70 records"] = list === 70;

enter image description here

3
Rakesh133

J'ai eu un problème similaire, ce que je testais pour un certain nombre de membres du tableau est:

responseJson = JSON.parse(responseBody);
tests["Response Body = []"] = responseJson.length === valueYouAreCheckingFor;

Pour vérifier les valeurs que vous obtenez, imprimez-les et consultez la console Postman.

console.log(responseJson.length);
1
J. Castillo

Tout d’abord, vous devriez convertir la réponse en json et trouver le chemin de la valeur. La valeur est un tableau. Vous devriez appeler la fonction de longueur pour obtenir le nombre d'objets et vérifier la taille attendue 

pm.test("Validate value count", function () {
    pm.expect(pm.response.json().value.length).to.eq(2);
});
0
wallance

J'étais confronté à un problème similaire lors de la validation de la longueur d'un tableau dans un JSON. L'extrait ci-dessous devrait vous aider à le résoudre.

responseJson = JSON.parse(responseBody);
var list = responseBody.length;
tests["Expected number"] = responseJson.value.length === list;
0
Kranti Biswakarma