Faker Reference для Mockarty
Содержание
- Обзор
- Адреса
- Дата и время
- Интернет
- Текст
- Платежи
- Персональные данные
- Телефоны
- Идентификаторы и хеши
- Бизнес
- Русские данные
- Общие типы
- Математические функции
- Синтаксис Go Template
- Практические примеры
Обзор
Faker в Mockarty генерирует случайные тестовые данные для динамических ответов моков. Каждое поле, перечисленное ниже, доступно как $.fake.FieldName в JPath-выражениях (без аргументов).
{
"response": {
"payload": {
"id": "$.fake.UUID",
"name": "$.fake.FirstName",
"email": "$.fake.Email",
"createdAt": "$.fake.RFC3339"
}
}
}
Важно: JPath-режим НЕ поддерживает параметризованные вызовы.
$.fake.UUID– правильно;$.fake.IntBetween(1, 100)– НЕ будет работать. Для арифметики используйте математические функции ($.increment,$.sum,$.multiply,$.subtract).
Совет: повторное использование сгенерированных значений. Каждый вызов
$.fake.*генерирует новое случайное значение при каждом вычислении. Если вам нужно одно и то же сгенерированное значение в нескольких местах (например, один и тот же UUID в ответе и в извлечении), сначала сохраните его в Mock Store (mStore), а затем ссылайтесь на него через$.mS.key:{ "extract": { "mStore": { "generatedId": "$.fake.UUID" } }, "response": { "payload": { "id": "$.mS.generatedId", "link": "https://example.com/items/$.mS.generatedId" } } }Таким образом
generatedIdсоздаётся один раз и используется повторно единообразно.
Адреса
| Функция | Описание | Пример |
|---|---|---|
$.fake.Latitude |
Случайная широта | 81.12195 |
$.fake.Longitude |
Случайная долгота | -84.38158 |
$.fake.City |
Название города | "New York" |
$.fake.Country |
Название страны | "United States" |
$.fake.CountryCode |
ISO-код страны | "US" |
$.fake.State |
Название штата (США) | "California" |
$.fake.StreetAddress |
Номер дома и улица | "4821 Maple Avenue" |
$.fake.ZipCode |
5-значный почтовый индекс | "07432" |
$.fake.Address |
Полный адрес (улица, город, штат, индекс) | "4821 Maple Avenue, New York, California 07432" |
{
"response": {
"payload": {
"location": {
"address": "$.fake.Address",
"city": "$.fake.City",
"state": "$.fake.State",
"zip": "$.fake.ZipCode",
"country": "$.fake.Country",
"countryCode": "$.fake.CountryCode",
"coordinates": {
"lat": "$.fake.Latitude",
"lng": "$.fake.Longitude"
}
}
}
}
}
Дата и время
| Функция | Описание | Пример |
|---|---|---|
$.fake.UnixTime |
Unix-время (секунды) | 1197930901 |
$.fake.Date |
Случайная дата (YYYY-MM-DD) | "1982-02-27" |
$.fake.TimeString |
Случайное время (HH:MM:SS) | "03:10:25" |
$.fake.MonthName |
Название месяца | "February" |
$.fake.YearString |
Год в виде строки | "1994" |
$.fake.DayOfWeek |
День недели | "Sunday" |
$.fake.DayOfMonth |
День месяца | "20" |
$.fake.Timestamp |
Полная метка времени (YYYY-MM-DD HH:MM:SS) | "1973-06-21 14:50:46" |
$.fake.RFC3339 |
Текущее время в формате RFC 3339 | "2024-01-15T14:30:45Z" |
$.fake.Century |
Век (римские цифры) | "IV" |
$.fake.Timezone |
Идентификатор часового пояса | "Asia/Jakarta" |
$.fake.TimePeriod |
AM или PM | "PM" |
{
"response": {
"payload": {
"createdAt": "$.fake.RFC3339",
"date": "$.fake.Date",
"time": "$.fake.TimeString",
"unixTs": "$.fake.UnixTime",
"month": "$.fake.MonthName",
"year": "$.fake.YearString",
"dayOfWeek": "$.fake.DayOfWeek",
"dayOfMonth": "$.fake.DayOfMonth",
"fullTimestamp": "$.fake.Timestamp",
"timezone": "$.fake.Timezone",
"period": "$.fake.TimePeriod"
}
}
}
Интернет
| Функция | Описание | Пример |
|---|---|---|
$.fake.Email |
Адрес электронной почты | "mJBJtbv@OSAaT.com" |
$.fake.MacAddress |
MAC-адрес | "cd:65:e1:d4:76:c6" |
$.fake.DomainName |
Доменное имя | "FWZcaRE.org" |
$.fake.URL |
URL-адрес | "https://www.oEuqqAY.org/QgqfOhd" |
$.fake.Username |
Имя пользователя | "lVxELHS" |
$.fake.IPv4 |
IPv4-адрес | "99.23.42.63" |
$.fake.IPv6 |
IPv6-адрес | "975c:fb2c:2133:fbdd:beda:282e:1e0a:ec7d" |
$.fake.Password |
Случайный пароль | "dfJdyHGuVkHBgnHLQQgpINApynzexnRpgIKBpiIjpTP" |
$.fake.UserAgent |
Строка User-Agent браузера | "Mozilla/5.0 (Windows NT 10.0; Win64; x64) ..." |
$.fake.Color |
Название цвета | "Teal" |
$.fake.HexColor |
Цвет в HEX-формате | "#3a2f1c" |
{
"response": {
"payload": {
"contact": {
"email": "$.fake.Email",
"website": "$.fake.URL"
},
"technical": {
"ip": "$.fake.IPv4",
"ipv6": "$.fake.IPv6",
"mac": "$.fake.MacAddress",
"userAgent": "$.fake.UserAgent",
"domain": "$.fake.DomainName"
},
"style": {
"color": "$.fake.Color",
"hex": "$.fake.HexColor"
}
}
}
}
Текст
| Функция | Описание | Пример |
|---|---|---|
$.fake.Word |
Случайное слово | "nesciunt" |
$.fake.Sentence |
Случайное предложение | "Consequatur perferendis voluptatem accusantium." |
$.fake.Paragraph |
Случайный абзац (несколько предложений) | "Aut consequatur sit perferendis ..." |
$.fake.Letter |
Одна заглавная буква (A-Z) | "M" |
{
"response": {
"payload": {
"title": "$.fake.Sentence",
"description": "$.fake.Paragraph",
"keyword": "$.fake.Word",
"initial": "$.fake.Letter"
}
}
}
Платежи
| Функция | Описание | Пример |
|---|---|---|
$.fake.CCType |
Тип кредитной карты | "American Express" |
$.fake.CCNumber |
Номер кредитной карты | "373641309057568" |
$.fake.Currency |
Код валюты | "USD" |
$.fake.AmountWithCurrency |
Сумма с кодом валюты | "USD 49257.100" |
$.fake.Price |
Цена с двумя знаками после запятой | "123.45" |
{
"response": {
"payload": {
"payment": {
"cardType": "$.fake.CCType",
"cardNumber": "$.fake.CCNumber",
"currency": "$.fake.Currency",
"total": "$.fake.AmountWithCurrency",
"price": "$.fake.Price"
}
}
}
}
Персональные данные
| Функция | Описание | Пример |
|---|---|---|
$.fake.TitleMale |
Мужское обращение | "Mr." |
$.fake.TitleFemale |
Женское обращение | "Mrs." |
$.fake.FirstName |
Имя (любой пол) | "Whitney" |
$.fake.FirstNameMale |
Мужское имя | "Kenny" |
$.fake.FirstNameFemale |
Женское имя | "Jana" |
$.fake.LastName |
Фамилия | "Rohan" |
$.fake.Name |
Полное имя с обращением | "Mrs. Casandra Kiehn" |
$.fake.Gender |
Пол | "Male" или "Female" |
{
"response": {
"payload": {
"user": {
"title": "$.fake.TitleMale",
"firstName": "$.fake.FirstName",
"lastName": "$.fake.LastName",
"fullName": "$.fake.Name",
"gender": "$.fake.Gender"
}
}
}
}
Телефоны
| Функция | Описание | Пример |
|---|---|---|
$.fake.PhoneNumber |
Номер телефона | "201-886-0269" |
$.fake.Phone |
Алиас для PhoneNumber |
"201-886-0269" |
$.fake.TollFreePhoneNumber |
Бесплатный номер | "(777) 831-964572" |
$.fake.E164PhoneNumber |
Телефон в формате E.164 | "+724891571063" |
{
"response": {
"payload": {
"contact": {
"phone": "$.fake.Phone",
"tollFree": "$.fake.TollFreePhoneNumber",
"international": "$.fake.E164PhoneNumber"
}
}
}
}
Идентификаторы и хеши
| Функция | Описание | Пример |
|---|---|---|
$.fake.UUID |
UUID v4 с дефисами | "8f8e4463-9560-4a38-9b0c-ef24481e4e27" |
$.fake.UUIDDigit |
UUID без дефисов | "90ea6479fd0e4940af741f0a87596b73" |
$.fake.JWT |
Реалистичный JWT (header.payload.signature) | "eyJhbGciOiJIUzI1NiIs..." |
$.fake.MD5 |
MD5-хеш (32 hex-символа) | "5d41402abc4b2a76b9719d911017c592" |
$.fake.SHA256 |
SHA-256-хеш (64 hex-символа) | "e3b0c44298fc1c149afbf4c8996fb924..." |
{
"response": {
"payload": {
"id": "$.fake.UUID",
"shortId": "$.fake.UUIDDigit",
"token": "$.fake.JWT",
"checksum": "$.fake.MD5",
"hash": "$.fake.SHA256"
}
}
}
Бизнес
| Функция | Описание | Пример |
|---|---|---|
$.fake.Company |
Название компании | "Stark Industries" |
$.fake.JobTitle |
Должность | "Software Engineer" |
{
"response": {
"payload": {
"employee": {
"company": "$.fake.Company",
"jobTitle": "$.fake.JobTitle"
}
}
}
}
Русские данные
| Функция | Описание | Пример |
|---|---|---|
$.fake.RussianFirstNameMale |
Русское мужское имя | "Александр" |
$.fake.RussianLastNameMale |
Русская мужская фамилия | "Иванов" |
$.fake.RussianFirstNameFemale |
Русское женское имя | "Анна" |
$.fake.RussianLastNameFemale |
Русская женская фамилия | "Иванова" |
{
"response": {
"payload": {
"russianUser": {
"firstName": "$.fake.RussianFirstNameMale",
"lastName": "$.fake.RussianLastNameMale"
},
"russianUserFemale": {
"firstName": "$.fake.RussianFirstNameFemale",
"lastName": "$.fake.RussianLastNameFemale"
}
}
}
}
Общие типы
| Функция | Описание | Пример |
|---|---|---|
$.fake.Bool |
Случайное булево значение | true или false |
$.fake.String |
Случайное слово (аналог Word) | "lorem" |
$.fake.Number |
Случайное целое число (0 до 999999) | 482731 |
$.fake.Int |
Случайное целое число (0 до 999999) | 348217 |
$.fake.Float |
Случайное дробное число (0 до 1000) | 472.839 |
$.fake.Digit |
Одна цифра (0-9) в виде строки | "7" |
$.fake.PositiveInt |
Большое положительное целое число | 4823947291847 |
$.fake.NegativeInt |
Отрицательное целое число | -2839174 |
$.fake.Base64 |
Случайные байты в Base64 | "dGVzdCBiYXNlNjQ=" |
$.fake.Duration |
Строка длительности в секундах | "1842s" |
{
"response": {
"payload": {
"isActive": "$.fake.Bool",
"label": "$.fake.String",
"count": "$.fake.Number",
"score": "$.fake.Int",
"rate": "$.fake.Float",
"code": "$.fake.Digit",
"positiveId": "$.fake.PositiveInt",
"offset": "$.fake.NegativeInt",
"encoded": "$.fake.Base64",
"ttl": "$.fake.Duration"
}
}
}
Математические функции
Эти функции НЕ являются частью $.fake.*, а представляют собой самостоятельные JPath-выражения. Принимают JPath-выражения или числовые литералы в качестве аргументов.
| Функция | Описание | Пример |
|---|---|---|
$.increment(expr) |
Увеличить числовое значение на 1 | $.increment($.gS.counter) |
$.sum(a, b) |
Сумма двух значений | $.sum($.gS.price, 10) |
$.multiply(a, b) |
Произведение двух значений | $.multiply($.gS.quantity, $.gS.unitPrice) |
$.subtract(a, b) |
Разность двух значений | $.subtract($.gS.total, $.gS.discount) |
Аргументы могут быть:
- Числовыми литералами:
5,3.14 - JPath-выражениями:
$.gS.counter,$.cS.amount - Выражениями со значением по умолчанию:
$.gS.counter || 0(если ключа нет в хранилище, используется 0)
{
"response": {
"payload": {
"nextId": "$.increment($.gS.lastId || 0)",
"total": "$.sum($.gS.subtotal, $.gS.tax)",
"extendedPrice": "$.multiply($.gS.quantity, $.gS.unitPrice)",
"balance": "$.subtract($.gS.credit, $.gS.debit)"
}
}
}
Синтаксис Go Template
При использовании Go-шаблонов (.tmpl-файлы или goTemplate: true) Faker доступен через функцию fake, которая возвращает объект Faker. Вызывайте методы без аргументов:
{
"id": "{{(fake).UUID}}",
"name": "{{(fake).FirstName}}",
"email": "{{(fake).Email}}",
"createdAt": "{{(fake).RFC3339}}"
}
Вызов (fake) возвращает структуру Faker, затем .MethodName вызывает соответствующий метод. Например:
{
"user": {
"id": "{{(fake).UUID}}",
"firstName": "{{(fake).FirstName}}",
"lastName": "{{(fake).LastName}}",
"phone": "{{(fake).PhoneNumber}}",
"isAdmin": {{(fake).Bool}},
"createdAt": "{{(fake).RFC3339}}"
}
}
Важно: не все JPath-поля имеют методы Go Template. Только методы, перечисленные в таблице ниже, доступны в режиме Go Template. JPath-only поля (такие как
City,Company,MD5,Phone,Priceи др.) заполняются в структуреJpathTemplateFakeDataи НЕ могут быть вызваны через{{(fake).FieldName}}.
Доступные методы Go Template
| Метод | Тип возврата | Категория |
|---|---|---|
{{(fake).Latitude}} |
float64 | Адреса |
{{(fake).Longitude}} |
float64 | Адреса |
{{(fake).GetRealAddress}} |
объект | Адреса (только Go Template) |
{{(fake).UnixTime}} |
int64 | Дата и время |
{{(fake).Date}} |
string | Дата и время |
{{(fake).TimeString}} |
string | Дата и время |
{{(fake).MonthName}} |
string | Дата и время |
{{(fake).YearString}} |
string | Дата и время |
{{(fake).DayOfWeek}} |
string | Дата и время |
{{(fake).DayOfMonth}} |
string | Дата и время |
{{(fake).Timestamp}} |
string | Дата и время |
{{(fake).RFC3339}} |
string | Дата и время |
{{(fake).Century}} |
string | Дата и время |
{{(fake).Timezone}} |
string | Дата и время |
{{(fake).TimePeriod}} |
string | Дата и время |
{{(fake).Email}} |
string | Интернет |
{{(fake).MacAddress}} |
string | Интернет |
{{(fake).DomainName}} |
string | Интернет |
{{(fake).URL}} |
string | Интернет |
{{(fake).Username}} |
string | Интернет |
{{(fake).IPv4}} |
string | Интернет |
{{(fake).IPv6}} |
string | Интернет |
{{(fake).Password}} |
string | Интернет |
{{(fake).Word}} |
string | Текст |
{{(fake).Sentence}} |
string | Текст |
{{(fake).Paragraph}} |
string | Текст |
{{(fake).CCType}} |
string | Платежи |
{{(fake).CCNumber}} |
string | Платежи |
{{(fake).Currency}} |
string | Платежи |
{{(fake).AmountWithCurrency}} |
string | Платежи |
{{(fake).TitleMale}} |
string | Персональные данные |
{{(fake).TitleFemale}} |
string | Персональные данные |
{{(fake).FirstName}} |
string | Персональные данные |
{{(fake).FirstNameMale}} |
string | Персональные данные |
{{(fake).FirstNameFemale}} |
string | Персональные данные |
{{(fake).LastName}} |
string | Персональные данные |
{{(fake).Name}} |
string | Персональные данные |
{{(fake).PhoneNumber}} |
string | Телефоны |
{{(fake).TollFreePhoneNumber}} |
string | Телефоны |
{{(fake).E164PhoneNumber}} |
string | Телефоны |
{{(fake).UUID}} |
string | Идентификаторы |
{{(fake).UUIDDigit}} |
string | Идентификаторы |
{{(fake).JWT}} |
string | Идентификаторы |
{{(fake).Bool}} |
bool | Общие типы |
{{(fake).String}} |
string | Общие типы |
{{(fake).PositiveInt}} |
int64 | Общие типы |
{{(fake).NegativeInt}} |
int64 | Общие типы |
{{(fake).RussianFirstNameMale}} |
string | Русские данные |
{{(fake).RussianLastNameMale}} |
string | Русские данные |
{{(fake).RussianFirstNameFemale}} |
string | Русские данные |
{{(fake).RussianLastNameFemale}} |
string | Русские данные |
JPath-only поля (НЕ доступны в Go Template)
Следующие поля доступны только через JPath $.fake.* и НЕ имеют соответствующих методов Go Template:
City, Country, CountryCode, State, StreetAddress, ZipCode, Address, UserAgent, Color, HexColor, Letter, Digit, Gender, Phone, Number, Int, Float, Base64, Duration, Price, Company, JobTitle, MD5, SHA256
Все перечисленные поля полностью заполняются и возвращают реалистичные значения в режиме JPath.
Только Go Template:
GetRealAddress()возвращает объект реального адреса с полямиStreet,City,StateиZip. Этот метод доступен только в режиме Go Template через{{(fake).GetRealAddress}}– он НЕ доступен через JPath$.fake.GetRealAddress.{ "address": { "street": "{{(fake).GetRealAddress.Street}}", "city": "{{(fake).GetRealAddress.City}}", "state": "{{(fake).GetRealAddress.State}}", "zip": "{{(fake).GetRealAddress.Zip}}" } }
Практические примеры
Полный профиль пользователя
{
"id": "user-profile",
"http": {
"route": "/api/users/profile"
},
"response": {
"payload": {
"user": {
"id": "$.fake.UUID",
"username": "$.fake.Username",
"firstName": "$.fake.FirstName",
"lastName": "$.fake.LastName",
"fullName": "$.fake.Name",
"gender": "$.fake.Gender",
"email": "$.fake.Email",
"phone": "$.fake.Phone",
"address": {
"street": "$.fake.StreetAddress",
"city": "$.fake.City",
"state": "$.fake.State",
"zip": "$.fake.ZipCode",
"country": "$.fake.Country",
"lat": "$.fake.Latitude",
"lng": "$.fake.Longitude"
},
"work": {
"company": "$.fake.Company",
"jobTitle": "$.fake.JobTitle"
},
"notifications": "$.fake.Bool",
"createdAt": "$.fake.RFC3339",
"ipAddress": "$.fake.IPv4",
"userAgent": "$.fake.UserAgent"
}
}
}
}
Финансовая транзакция
{
"id": "financial-transaction",
"http": {
"route": "/api/transactions"
},
"response": {
"payload": {
"transaction": {
"id": "$.fake.UUID",
"type": "payment",
"status": "completed",
"amount": "$.fake.Price",
"currency": "$.fake.Currency",
"total": "$.fake.AmountWithCurrency",
"card": {
"type": "$.fake.CCType",
"number": "$.fake.CCNumber"
},
"merchant": {
"name": "$.fake.Company",
"address": "$.fake.Address"
},
"customer": {
"name": "$.fake.Name",
"email": "$.fake.Email",
"phone": "$.fake.Phone"
},
"hash": "$.fake.SHA256",
"authCode": "$.fake.MD5",
"processedAt": "$.fake.RFC3339"
}
}
}
}
Полный список функций (краткая справка)
Все 74 доступных поля $.fake.*:
| # | Поле | Категория |
|---|---|---|
| 1 | Latitude |
Адреса |
| 2 | Longitude |
Адреса |
| 3 | City |
Адреса |
| 4 | Country |
Адреса |
| 5 | CountryCode |
Адреса |
| 6 | State |
Адреса |
| 7 | StreetAddress |
Адреса |
| 8 | ZipCode |
Адреса |
| 9 | Address |
Адреса |
| 10 | UnixTime |
Дата и время |
| 11 | Date |
Дата и время |
| 12 | TimeString |
Дата и время |
| 13 | MonthName |
Дата и время |
| 14 | YearString |
Дата и время |
| 15 | DayOfWeek |
Дата и время |
| 16 | DayOfMonth |
Дата и время |
| 17 | Timestamp |
Дата и время |
| 18 | RFC3339 |
Дата и время |
| 19 | Century |
Дата и время |
| 20 | Timezone |
Дата и время |
| 21 | TimePeriod |
Дата и время |
| 22 | Email |
Интернет |
| 23 | MacAddress |
Интернет |
| 24 | DomainName |
Интернет |
| 25 | URL |
Интернет |
| 26 | Username |
Интернет |
| 27 | IPv4 |
Интернет |
| 28 | IPv6 |
Интернет |
| 29 | Password |
Интернет |
| 30 | UserAgent |
Интернет |
| 31 | Color |
Интернет |
| 32 | HexColor |
Интернет |
| 33 | Word |
Текст |
| 34 | Sentence |
Текст |
| 35 | Paragraph |
Текст |
| 36 | Letter |
Текст |
| 37 | CCType |
Платежи |
| 38 | CCNumber |
Платежи |
| 39 | Currency |
Платежи |
| 40 | AmountWithCurrency |
Платежи |
| 41 | Price |
Платежи |
| 42 | TitleMale |
Персональные данные |
| 43 | TitleFemale |
Персональные данные |
| 44 | FirstName |
Персональные данные |
| 45 | FirstNameMale |
Персональные данные |
| 46 | FirstNameFemale |
Персональные данные |
| 47 | LastName |
Персональные данные |
| 48 | Name |
Персональные данные |
| 49 | Gender |
Персональные данные |
| 50 | PhoneNumber |
Телефоны |
| 51 | Phone |
Телефоны |
| 52 | TollFreePhoneNumber |
Телефоны |
| 53 | E164PhoneNumber |
Телефоны |
| 54 | UUID |
Идентификаторы и хеши |
| 55 | UUIDDigit |
Идентификаторы и хеши |
| 56 | JWT |
Идентификаторы и хеши |
| 57 | MD5 |
Идентификаторы и хеши |
| 58 | SHA256 |
Идентификаторы и хеши |
| 59 | Company |
Бизнес |
| 60 | JobTitle |
Бизнес |
| 61 | RussianFirstNameMale |
Русские данные |
| 62 | RussianLastNameMale |
Русские данные |
| 63 | RussianFirstNameFemale |
Русские данные |
| 64 | RussianLastNameFemale |
Русские данные |
| 65 | Bool |
Общие типы |
| 66 | String |
Общие типы |
| 67 | Number |
Общие типы |
| 68 | Int |
Общие типы |
| 69 | Float |
Общие типы |
| 70 | Digit |
Общие типы |
| 71 | PositiveInt |
Общие типы |
| 72 | NegativeInt |
Общие типы |
| 73 | Base64 |
Общие типы |
| 74 | Duration |
Общие типы |
Смотрите также
- Руководство по JsonPath – язык запросов, используемый вместе с Faker для динамических ответов
- Системы хранилищ (Store) – сохранение сгенерированных Faker данных между вызовами моков
- Справочник API – полный REST API для создания моков с Faker
- Руководство по веб-интерфейсу – создание моков с Faker визуально в Конструкторе
- Быстрый старт – начните работу с первым моком на Faker