POSTMAN - Генерация тела запроса динамически с использованием файлов данных для передачи значений для определенных полей - PullRequest
0 голосов
/ 03 января 2019

Как я могу сгенерировать эту полезную нагрузку автоматически в почтальоне. Пожалуйста, смотрите структуру ниже.

Я меняю только номер счета / имя счета в полезной нагрузке. Если бы я добавил 200 учетных записей для идентификатора клиента, мне пришлось бы вставить 200 отдельных структур в массив. Есть ли лучший способ поддерживать и генерировать полезную нагрузку на лету, поскольку я знаю, что меняются только 2 поля, и я мог бы передать их как переменные. Я пробовал Сборщик Бегов, но я не могу отправить их как один запрос.

К вашему сведению - для другой компании это будет 100, 50 или 500, я хочу использовать ту же полезную нагрузку для любого запроса.

FYI - необходимо передать все эти учетные записи в одном запросе, потому что любой второй запрос обрабатывается сервером как изменение.

{
  "context": {
    "EID": "ACC_123",
    "eventTime": "2018-01-02T00:00:00.000Z",
    "Eaction": "INIT"
  },
"payload": [
{
"accountNumber": "12345",
"accountName": "abcd",
"accountAliasName": "",
"customerId": "150740000",
"ccy": "THB",
"accountStatus": "A",
"branch": "001",
"bankCode":"0001"
},
{
"accountNumber": "123456",
"accountName": "abcde",
"accountAliasName": "",
"customerId": "150740001",
"ccy": "THB",
"accountStatus": "A",
"branch": "001",
"bankCode":"0001"
}
]

Обновлено-

Pre-REQ:

payloadarr.push(
        {
        "accountNumber": Account_Number ,
        "accountName": Account_Name,
...
"context": {
    "eventID": "TEST_JSL_0120191",
    "eventTime": "2018-01-02T00:00:00.000Z",
    "action": "INITIATE"
                },
  "payload": [payloadarr]

Тело:

{{AccountActivation_Payload}}
...

Запрос пройден:

{"context":{"eventID":"TEST_JSL_0120191","eventTime":"2018-01-02T00:00:00.000Z","action":"INITIATE"},"payload":[[]]}

Expectation: полезная нагрузка должна иметь добавленные значения

{"context":{"eventID":"TEST_JSL_0120191","eventTime":"2018-01-02T00:00:00.000Z","action":"INITIATE"},"payload":[{
    "accountNumber": "12345",
    "accountName": "abcd",
    "accountAliasName": "",
    "customerId": "150740000",
    "ccy": "THB",
    "accountStatus": "A",
    "branch": "001",
    "bankCode":"0001"
    },]}

1 Ответ

0 голосов
/ 03 января 2019

вы можете создать следующее Pre-request Script

var requestBody = {
  "context": {
    "EID": "ACC_123",
    "eventTime": "2018-01-02T00:00:00.000Z",
    "Eaction": "INIT"
  },
  "payload": []
};

for (var i = 0; i < 200; i++) {
  requestBody.payload.push({
    "accountNumber": 12345 + i,
    "accountName": "abcd" + i,
    "accountAliasName": "",
    "customerId": "150740000",
    "ccy": "THB",
    "accountStatus": "A",
    "branch": "001",
    "bankCode": "0001"
  });
}

postman.setEnvironmentVariable('requestBody', JSON.stringify(requestBody));

и установить переменную среды requestBody, затем вы можете вызвать ее в теле запроса, используя {{requestBody}}

...