2017-09-19 3 views
1

J'essaie actuellement de mettre en œuvre quelques requêtes Postman avec des sources de données CSV. Par exemple, supposons que j'ai une requête nommée "Ouvrir en tant qu'utilisateur". Dans le fichier csv, j'ai un tas d'informations d'identification avec un champ de description qui décrit le rôle de l'utilisateur. Je voudrais avoir la possibilité de changer les noms des demandes pour refléter chaque rôle d'utilisateur. Par exemple, si la requête est faite en tant qu'utilisateur admin, je voudrais que le nom de la requête dans les rapports et le coureur soit "Ouvrir en tant qu'administrateur utilisateur".Modification du nom de la requête Postman à partir du script de prérequis

Dans la documentation, j'ai trouvé la variable pm.info.requestName mais semble être en lecture seule. je mets ci-dessous dans le pré-demande Script

pm.info.requestName = "1"; console.log(pm.info.requestName);

mais obtenu « Ouvrir en tant qu'utilisateur » valeur au lieu de affecté « 1 ».

Est-ce que quelqu'un a essayé de faire le même tour ou de savoir si c'est possible?

Répondre

0

Je crains que vous ne puissiez pas faire cela. L'objet pm.request est disponible uniquement après l'exécution de la requête. Je pense même que vous ne pouvez pas accéder au nom de la demande comme vous voulez (je pensais que je le trouverais dans le membre 'id', mais il était vide)

Voir here pour voir ce qui est disponible en termes de membres et méthodes concernant l'objet de requête.

Vous pouvez trouver une autre façon de procéder (peut-être dupliquer votre test, le renommer avec admin et, dans de bonnes conditions, lancer la demande d'administration au lieu de la demande de l'utilisateur commun)

Je pense à autre chose: vous pouvez simplement personnaliser votre étiquette d'assertions, c'est ce que je fais pour avoir des noms de test "lisibles" dans les rapports TFS. Dans l'onglet Tests:

test_name = "[ "+ request.name + " ] - "; 

et pour chaque assertion (exemple):

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

Cela donne, dans l'onglet Tests de réponse, quelque chose comme:

PASS [Get all configuration]-Status code is 200 

Sous une condition particulière , vous pouvez remplacer request.name par une chaîne personnalisée ou par request.name + "admin" ...

aide

1

que je cherchais une solution à cela aussi et je l'ai résolu de la manière suivante:

  • Utilisez le « Script de pré-demande » pour déterminer quel rôle l'utilisateur.
  • Définir l'URL à un
  • Environnement- ou global variable Utilisez cette URL dans la demande, comme {{url}}
  • Effacer l'environnement- ou variable globale dans l'onglet "Tests de

Dans mon cas, j'ai utilisé la variable d'environnement pour obtenir l'environnement, au lieu de vous, en utilisant les variables de données.

var environment = pm.environment.get("environment"); 
var url; 
switch(environment) { 
case "test": 
    url = pm.globals.get("test-url"); 
    break; 
case "acc": 
    url = pm.globals.get("acc-url"); 
    break; 
case "prod": 
    url = pm.globals.get("prod-url"); 
    break; 
default: 
    url = pm.globals.get("test-url"); 
    break; 
} 

pm.environment.set("url", url); 

Espérons que cela aide!