Подтвердить что ты не робот

Как получить запрос в Postman?

Я пишу тесты для Postman, которые в целом работают довольно легко. Однако теперь я хочу получить доступ к некоторым данным запроса, точнее, к параметру запроса. Вы можете получить доступ к URL-адресу запроса через объект request.url, который возвращает String. Есть ли простой способ в Postman проанализировать эту строку URL для доступа к параметрам запроса?

4b9b3361

Ответ 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

POSTMAN CLIENT CONSOLE RESPONSE

редактировать: добавлен 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 свойство:

enter image description here

Ответ 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 возвращает только значение.