J'écris des tests pour Postman qui, en général, fonctionnent assez facilement. Cependant, je souhaite maintenant accéder à certaines des données de la demande, à un paramètre de requête exact… .. Vous pouvez accéder à l'URL de la demande via l'objet "request.url" qui renvoie une chaîne. Existe-t-il un moyen simple dans Postman d’analyser cette chaîne d’URL pour accéder au (x) paramètre (s) de requête?
Si vous souhaitez extraire la chaîne de requête au format encodé en URL sans l’analyser. Voici comment faire:
pm.request.url.getQueryString() // example output: foo=1&bar=2&baz=3
Je cherchais à accéder à request params pour écrire des tests (dans POSTMAN). J'ai fini par analyser le request.url
disponible dans POSTMAN.
const paramsString = request.url.split('?')[1];
const eachParamArray = paramsString.split('&');
let params = {};
eachParamArray.forEach((param) => {
const key = param.split('=')[0];
const value = param.split('=')[1];
Object.assign(params, {[key]: value});
});
console.log(params); // this is object with request params as key value pairs
edit: Ajouté Github Gist
Le tableau pm.request.url.query.all()
contient tous les paramètres de requête sous forme d'objets . Pour obtenir les paramètres sous forme de dictionnaire, vous pouvez utiliser:
var query = {};
pm.request.url.query.all().forEach((param) => { query[param.key] = param.value});
Je ne pense pas qu'il y ait de propriété prête à l'emploi disponible dans l'objet de requête Postman pour le (s) paramètre (s) de requête.
Actuellement, quatre propriétés sont associées à l'objet 'Request':
data {objet} - il s'agit d'un dictionnaire de données de formulaire pour la requête. (request.data [“clé”] == ”valeur”) en-têtes {objet} - il s'agit d'un dictionnaire d'en-têtes pour la requête (request.headers [“clé”] == ”valeur”) méthode {chaîne} - GET/POST/PUT etc.
url {string} - l'URL de la demande.
pm.request.url.query
renvoie PropertyList of QueryParam objects. Vous pouvez obtenir un paramètre pm.request.url.query.get()
ou all pm.request.url.query.all()
par exemple. Voir les méthodes PropertyList
.
regardez dans la console en train de faire:
console.log(request);
cela vous montrera tout ce que vous pouvez obtenir à la demande. Ensuite, vous devrez accéder aux différents paramètres en utilisant request., Ie. request.name si vous voulez le nom du test . Si vous voulez un élément particulier dans l'URL, j'ai bien peur que vous deviez utiliser un code pour l'obtenir (désolé je suis un débutant en javascript)
J'espère que cela t'aides
Alexandre