Postman Faker или фикстуры

Faker.js

На официальном сайте есть способ подключения Faker.js.

Этот способ мне кажется костыльным - нужный функционал можно было бы завезти и в сам Постман. И обойтись без лишних запросов к CDN. Дублирую его сюда:

/**
 * The faker code from the CDN is trying to set the faker object as a property of window,
 * which is undefined in the Postman Sandbox. To work around this, we explicitly define
 * window as an empty object before running the faker injection snippet.
 */
 
window = {};
 
pm.sendRequest("https://cdnjs.cloudflare.com/ajax/libs/Faker/3.1.0/faker.min.js", (error, response) => {
    if (error || response.code !== 200) {
        pm.expect.fail('Could not load external library');
    }
 
    eval(response.text());
 
    // This is where you can set the locale. See faker.js docs for all available locales.
    window.faker.locale="fr";
    pm.collectionVariables.set("name", window.faker.name.firstName() + " " + window.faker.name.lastName());
    pm.collectionVariables.set("phoneNumber",window.faker.phone.phoneNumber());
    pm.collectionVariables.set("streetAddress",window.faker.address.streetAddress());
});

Использование переменных

В Постмане предусмотрены такие переменные:

  • $randomInt - случайное число
  • $guid - guid (uuid)
  • $timestamp - текущий таймстемп

Эти переменные можно использовать в Постмане, но они не подставляются в скрипт Pre-request. Чтобы это сделать, нужно сделать так:

const {Property} = require('postman-collection');
let random = Property.replaceSubstitutions("{{$randomInt}} {{$guid}} {{$timestamp}}");
console.log(random);

Пример вывода:

522 b53d7eca-b34b-4a4d-86af-917f092b4f20 1675180530

Uuid

Можно использовать переменную $guid. А в скриптах - воспользоваться функцией:

const uuid = require('uuid');
console.log(uuid.v4())

Пример вывода:

6d5682c8-e010-474d-a77d-16fd5b5a6fd7
Печать/экспорт