J'essaie de faire un test dans POSTMAN où la taille doit être supérieure à 0 mais je n'ai pas pu faire le test correctement.
Ce que j'ai fait était de le faire échouer lorsque la taille est inférieure à 0.
Y at-il une fonction dans postman pour vérifier si la taille est supérieure à x nombre?
pm.test("Step 7/ Getting the resources and availabilites list " , function(){
pm.expect(pm.response.code).to.be.oneOf([200]);
if(pm.response.code === 200){
var jsonData = JSON.parse(responseBody);
var sizeOK= 1;
if(jsonData.resources.length>0){
}else{
//I will make the test fail if there is not data available on the response.
pm.test("Response body is empty ", function () {
pm.expect(pm.response.json().resources.length).to.equal(1);
});
}
console.log(Boolean(jsonData.resources.length>1))
}
});
pm.expect(pm.response.json().resources.length).to.be.above(0);
Postman utilise une implémentation étendue de la bibliothèque chai . Vous pouvez consulter le code source ici: https://github.com/postmanlabs/chai-postman
Donc logiquement, le test échoue uniquement lorsque vous générez une erreur et que le test la détecte . Sinon, il passe simplement . Ainsi, les appels attendus génèrent en réalité une erreur qui fait échouer le test. Si vous retournez simplement quelque chose ou peut-être rien, alors le test sera réussi.
Pensez en termes d'essais simples et d'interception du bloc… .. Ainsi, pour résoudre votre problème instantanément, vous pouvez simplement renvoyer une erreur et votre test échouerait.
Vous pouvez modifier votre code comme suit:
pm.test("Step 7/ Getting the resources and availabilites list " , function(){
pm.expect(pm.response.code).to.be.oneOf([200]);
if(pm.response.code === 200){
var jsonData = JSON.parse(responseBody);
var sizeOK= 1;
if(jsonData.resources.length>0){
} else {
pm.test("Response body is empty ", function () {
throw new Error("Empty response body"); // Will make the test fail.
});
}
console.log(Boolean(jsonData.resources.length>1))
}
});
En outre, vous pouvez en outre utiliser du javascript simple pour tester la longueur/taille facilement (ainsi, par exemple):
pm.test("Step 7/ Getting the resources and availabilites list " , function(){
pm.expect(pm.response.code).to.be.oneOf([200]);
if(pm.response.code === 200){
var jsonData = JSON.parse(responseBody);
var sizeOK= 1;
if(jsonData.resources.length>0){
} else {
pm.test("Response body is empty ", function () {
if(jsonData.length < 3) {
throw new Error("Expected length to be greater than 3");
}
});
}
console.log(Boolean(jsonData.resources.length>1))
}
});
Même si je ne suis pas sûr du degré de précision dont vous avez besoin, vous obtenez une taille de réponse dans Postman. Il est composé de la taille du corps et de la taille des en-têtes (il suffit de pointer sur la valeur de Size dans l'application). Dans votre zone de test, vous pouvez récupérer la taille du corps en effectuant les actions suivantes:
var size=0;
for (var count in responseBody) {
if(responseBody.hasOwnProperty(count))
size += 1;
}
console.log("BODY SIZE = " + size); // you'll see the correct value in the console for the body part
et ensuite tester contre cette valeur ...