Почтальон - Как добавить элементы в массив, а затем использовать элементы массива случайным образом? - PullRequest
0 голосов
/ 10 октября 2019

У меня есть этот json

enter image description here

Этот JSON представляет корзину покупок, мне нужно получить все параметры "id" в массив и установить этот массивв качестве переменной среды. В JSON может быть несколько параметров «id». Тогда мне нужно использовать элементы из созданного массива случайным образом. (Мне нужно удалить товары из корзины случайным образом на основе идентификатора)

Есть ли способ достичь этого? Я изо всех сил пытаюсь найти решение для этого. Спасибо

Ответы [ 3 ]

0 голосов
/ 10 октября 2019

Если вы хотите вернуть только случайные данные из вашего массива объектов, вы можете сделать это следующим образом:

let order = {
    id: "7824t70ujhfiu",
    totalCommerce: 5,
    commerceItems:[
        {
            value: 'value 1',
            anotheValue: 'another one 1',
            name: 'name 1',
            id: "iuhvue0743bg3y"
        },
        {
            value: 'value 2',
            anotheValue: 'another one 2',
            name: 'name 2',
            id: "sdhvuhsdupvhh9y470y3yg"
        },
        {
            value: 'value 3',
            anotheValue: 'another one 3',
            name: 'name 3',
            id: "o0402t207t782yt78"
        },
        {
            value: 'value 4',
            anotheValue: 'another one 4',
            name: 'name 4',
            id: "72b07t347y74y7by"
        },
        {
            value: 'value 5',
            anotheValue: 'another one 5',
            name: 'name 5',
            id: "oin98y49yb2y49y"
        }
    ]
};

pickRandom = () => {
    var arr = order.commerceItems;
    return arr[Math.floor(Math.random() *arr.length)];
}

const random_data = [pickRandom(), pickRandom()];

const filter_array = [...new Map(random_data.map(item => [item.id, item])).values()];

order = {
    ...order,
    totalCommerce: filter_array.length,
    commerceItems: filter_array 
  };

console.log(order);
0 голосов
/ 10 октября 2019

Сначала получите полный ответ, разберите его. Вы поместили этот код во вкладку Tests из postman

enter image description here

Для вашего случая:

var array = JSON.parse(responseBody).order.commerceItems;

var ids = [];

for(var i=0; i< array.length; i++)
{
    ids.push(array[i].id);
}

Теперь поместитеids в переменной окружения или глобальной переменной PostMan.

postman.setEnvironmentVariable("ProductIds",JSON.stringify(ids));

После этого это будет выглядеть следующим образом. enter image description here

Теперь, когда вы хотите получить доступ к идентификатору из этих идентификаторов в случайном порядке, вы должны написать на вкладке Pre-request Script, например:

enter image description here и в теле запроса:

enter image description here

0 голосов
/ 10 октября 2019
let order = {
    commerceItems:[
        {
            name: 'test1',
            id: 1
        },
        {
            name: 'test2',
            id: 2
        },
        {
            name: 'test3',
            id: 3
        }
    ]
};

let arr = [];

for (item of order.commerceItems) {
    arr.push(item.id);
}
console.log(arr);

[1, 2, 3]

...