2017-09-08 3 views
1

Je rencontre un problème étrange avec les fonctions de test de postier.Tests de Postman - problèmes avec les assertions chai

Je l'habitude de faire des tests comme celui-ci:

tests["Status code is 200"] = responseCode.code === 200; 

je avais besoin de personnaliser un peu, donc je mis à jour comme ceci:

test_name = "[ "+ request.name + " ] - "; 
tests[test_name + "Status code is 200"] = responseCode.code === 200; 

Cela fonctionne.

J'ai découvert récemment que intégré extrait « Code d'état: Code 200 » montreraient comme ceci:

pm.test("Status code is 200", function() { 
    pm.response.to.have.status(200); 
}); 

Ce qui est très agréable, d'autant plus que certains utilisateurs ont pas de fond de Developping, donc je l'ai essayé et décidé pour l'utiliser pour mes tests. Puis je suis retourné à mon problème d'origine qui exigeait la personnalisation, donc je ne

pm.test(test_name + "Status code is 200", function() { 
    pm.response.to.have.status(200); 
}); 

Cela ne fonctionne pas, mais elle ne soulève pas d'erreur: le test ne vient semble pas du tout dans l'onglet Tests!

previousely j'avais Tests (3/3) avec 3 essais avec PASS, maintenant j'ai Tests (2/2) (au moins j'attendre tests (2/3) avec un échec test ou une erreur)

Il pourrait être ma syntaxe, donc j'essayé différemment:

test_assert = test_name + "Status code is 200" 

pm.test(test_assert, function() { 
    pm.response.to.have.status(200); 
}); 

Cela ne fonctionne pas non plus.

pour vous assurer que rien ne va pas avec ma syntaxe j'ai essayé:

pm.test("[ Get all configuration - nominal ] - Status code is 200", function() { 
    pm.response.to.have.status(200); 
}); 

qui ne. Y at-il un certain nombre de limitations de caractères ??? Pour vérifier fin j'ai essayé

pm.test("[ Get all configuration - nominal ] - abcdefghijklmnopqrstuvwxyz", function() { 

Ce qui fonctionne => il est pas un certain nombre de limitation des caractères, donc j'essayé de placer ma propre chaîne, caractère par caractère. Il fonctionne jusqu'à

pm.test("[ Get all configuration - nominal ] - Status code is 20", function() { 
    pm.response.to.have.status(200); 
}); 

Je finis avec les tests (3/3)

Si j'ajoute le dernier "0" il ne fonctionne pas ?????Tests (2/2)

J'ai même essayé:

pm.test("[ Get all configuration - nominal ] - Status code is 20 that's all", function() { 
pm.response.to.have.status(200); 
}); 

Et ça marche :(

L'onglet Tests indique Tests (3/3) et j'ai mon indication:

PASS [Obtenir toute la configuration - nominale] - code d'état est de 20 c'est tout

Suis-je entreing la Twilight Zone , en quelque sorte ?

Je voudrais comprendre ... Je quelqu'un a une idée

Répondre

0

J'ai trouvé une solution à un vrai bug

J'ai essayé d'autres tests:

  • pour vérifier si la le problème est de se terminer par un chiffre:

    pm.test("[ Get all configuration - nominal ] - Status code is 20 that's all0", function() { 
    pm.response.to.have.status(200); 
    

    });

=> il fonctionne

  • pour vérifier si elle est liée à la position d'un code 200 (I enlevé le dernier "l" de "nominale"):

    pm.test("[ Get all configuration - nomina ] - Status code is 200", function() { 
    pm.response.to.have.status(200); 
    }); 
    

=> il ne

  • de cette observation I a essayé d'insérer un ou plusieurs espaces vides avant "200":

    pm.test("[ Get all configuration - nominal ] - Status code is 200", function() { 
    pm.response.to.have.status(200); 
    }); 
    

=> il fonctionne

quel que soit le nombre de places précédentes avant "200", la affichage dans l'onglet Tests est le suivant:

PASS [Obtenir toute la configuration - nominale] - code d'état est de 200

avec un seul espace entre "is" et "200"

Je pense qu'un bogue difficile de l'onglet Tests. C'est un vrai problème car, dans un cycle de production, il peut passer inaperçu