我为Postman编写测试,一般来说很容易。但是,我现在想要访问请求的一些数据,确切地说是一个查询参数。 您可以通过" request.url"访问请求网址。返回String的对象。在Postman中有一种简单的方法来解析这个URL字符串以访问查询参数吗?
答案 0 :(得分:10)
我一直在寻找请求参数来编写测试(在POSTMAN中)。我最终解析了POSTMAN中可用的request.url
。
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
编辑:添加了Github Gist
答案 1 :(得分:10)
pm.request.url.query.all()
数组将所有查询参数保存为对象。
要将参数作为字典获取,您可以使用:
var query = {};
pm.request.url.query.all().forEach((param) => { query[param.key] = param.value});
答案 2 :(得分:6)
如果要提取URL编码格式的查询字符串而不进行解析。这是操作方法:
pm.request.url.getQueryString() // example output: foo=1&bar=2&baz=3
答案 3 :(得分:4)
我认为查询参数的Postman请求对象中没有任何可用的开箱即用属性。
目前有四个属性与“请求”对象相关联:
data {object} - 这是请求的表单数据字典。 (request.data [“key”] ==“value”) headers {object} - 这是请求标题的字典(request.headers [“key”] ==“value” )方法{string} - GET / POST / PUT等 url {string} - 请求的网址。
答案 4 :(得分:3)
pm.request.url.query
返回PropertyList个QueryParam个对象。例如,您可以获得一个参数pm.request.url.query.get()
或全部pm.request.url.query.all()
。请参阅PropertyList
方法。
答案 5 :(得分:1)
在控制台中查看:
var winston = require('winston');
winston.log('info', 'some message!'); // this is at line 4 of myfile.js
它会告诉您从请求中获得的所有信息。然后,您将使用请求访问不同的参数。 request.name如果你想要测试名称。 如果你想要一个网址中的特定元素,我担心你将不得不使用一些编码来获取它(抱歉,我是javascript的初学者)
希望这有帮助
亚历山大
答案 6 :(得分:1)
这里有点晚了,但是我一直在使用以下内容来获取url查询参数数组,循环遍历它们,并使用它们来构建键/值对
// the message is made up of the order/filter etc params
// params need to be put into alphabetical order
var current_message = '';
var query_params = postman.__execution.request.url.query;
var struct_params = {};
// make a simple struct of key/value pairs
query_params.each(function(param){
// check if the key is not disabled
if( !param.disabled ) {
struct_params[ param.key ] = param.value;
}
});
因此,如果我的网址是example.com
,则该数组为空,并且该结构没有任何内容,{}
如果url为example.com?foo=bar
,则该数组包含
{
description: {},
disabled:false
key:"foo"
value:"bar"
}
我的结构最终变成了{ foo: 'bar' }
切换属性旁边的复选框将更新disabled
属性:
答案 7 :(得分:1)
非常简单 - 访问 YOUR_PARAM 值使用
pm.request.url.query.toObject().YOUR_PARAM
答案 8 :(得分:0)
较早的帖子,但我已经开始使用它了:
由于某种原因,调试器将pm.request.url.query视为包含所需项的数组,但是一旦尝试从中获取项,该项始终为null。即pm.request.url.query [0](或.get(0))将返回null,尽管调试器显示其值为0。
我不知道为什么,但是由于某种原因,尽管调试器声称它不在索引0处,但它不在索引0处。相反,您需要先过滤查询。像这样:
var getParamFromQuery = function (key)
{
var x = pm.request.url.query;
var newArr = x.filter(function(item){
return item != null && item.key == key;
});
return newArr[0];
};
var getValueFromQuery = function (key)
{
return getParamFromQuery(key).value;
};
var paxid = getValueFromQuery("paxid");
getParamFromQuery返回带有键,值和禁用字段的参数。 getValueFromQuery只返回值。
答案 9 :(得分:0)
邮递员 8.7 及以上版本低于 1
var ref = pm.request.url.query.get('your-param-name');