Я пишу тесты для Postman, которые в целом работают довольно легко. Однако теперь я хочу получить доступ к некоторым данным запроса, точнее, к параметру запроса. Вы можете получить доступ к URL-адресу запроса через объект request.url, который возвращает String. Есть ли простой способ в Postman проанализировать эту строку URL для доступа к параметрам запроса?
Как получить запрос в Postman?
Ответ 1
Если вы хотите извлечь строку запроса в формате, закодированном по URL, без ее анализа. Вот как это сделать:
pm.request.url.getQueryString() // example output: foo=1&bar=2&baz=3
Ответ 2
Я искал доступ к параметрам запроса для написания тестов (в POSTMAN). Я закончил разбор request.url
который доступен в 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
редактировать: добавлен Github Gist
Ответ 3
Массив pm.request.url.query.all()
содержит все параметры запроса как объекты.
Чтобы получить параметры в качестве словаря, вы можете использовать:
var query = {};
pm.request.url.query.all().forEach((param) => { query[param.key] = param.value});
Ответ 4
Я не думаю, что в объекте запроса Postman для параметров запроса есть какое-либо свойство поля.
В настоящее время с объектом 'Request' связаны четыре свойства:
data {object} - это словарь данных формы для запроса. (request.data [ "key" ] == "value" ) headers {object} - это словарь заголовков для запроса (request.headers [ "key" ] == "value" ) метод {строка} - GET/POST/PUT и т.д.
url {string} - URL-адрес запроса.
Источник: https://www.getpostman.com/docs/sandbox
Ответ 5
pm.request.url.query
возвращает PropertyList QueryParam. Вы можете получить один параметр pm.request.url.query.get()
или все pm.request.url.query.all()
, например. См. Методы PropertyList
.
Ответ 6
посмотрите в консоли:
console.log(request);
он покажет вам все, что вы можете получить от запроса. Затем вы получите доступ к различным параметрам с помощью запроса. request.name, если вы хотите имя теста. Если вам нужен определенный элемент в URL-адресе, я боюсь, вам придется использовать некоторую кодировку для его получения (извините, что я новичок в javascript)
Надеюсь, что это поможет
Александр
Ответ 7
Здесь немного запоздало, но я использовал следующее, чтобы получить массив параметров 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;
}
});
так что если мой URL-адрес example.com
то массив пуст и структура не имеет ничего, {}
если URL-адрес example.com?foo=bar
то массив содержит
{
description: {},
disabled:false
key:"foo"
value:"bar"
}
и моя структура оказывается { foo: 'bar' }
Установка флажка рядом со свойством обновляет disabled
свойство:
Ответ 8
Предыдущий пост, но я получил это на работу:
По какой-то причине отладчик видит pm.request.url.query как массив с элементами, которые вы хотите, но как только вы пытаетесь получить из него элемент, он всегда равен нулю. Т.е. pm.request.url.query [0] (или .get(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 возвращает только значение.