Приложение «Тестировщик» предназначено для генерации случайных данных в продуктовом слое платформы. Что может быть полезно для понимания работы отчетов и дашбордов системы, а также разработки собственных.
Запустите приложение Тестировщик с рабочего стола платформы. Приложение доступно для пользователей с ролью tester_admin.
Откройте вкладку Генераторы данных. Импортируйте приложенный файл Генераторы данных.json.
Название каждого скрипта отражает его функциональность.
1. Первичный импорт.

Откройте (JSON) скрипт 1.1. Импорт операторов. Значение поля (object) JSON содержит данные, которые будут загружены. Отредактируйте их при необходимости. Обратите внимание, что значения id должны быть уникальны. Запустите скрипт и убедитесь, что операторы появились в платформе.
Отредактируйте при необходимости и запустите скрипт 1.2. Импорт очередей. Убедитесь, что появились очереди в платформе.
Повторное выполнение скриптов возможно только после удаления операторов и очередей или изменения id на новые уникальные.
2. Генерация годовых архивов.

Откройте скрипт 2.1. Генерация архива звонков. Отредактируйте при необходимости период времени, за который необходима генерация архива. Значения по умолчанию:
"timeStart": { "from": "2024-01-01", "to": "2024-12-31", "weekday": true, "worktime": true
Обратите внимание, что указать период необходимо в двух местах: для входящих и исходящих звонков.
Запустите скрипт и убедитесь, что архив звонков содержит случайный набор данных. Для этого запустите приложение «Отчеты» и перейдите во вкладку «Звонки — Завершенные». Используйте быстрые фильтры («Сегодня», «Вчера», «Неделя», «Месяц» и «Год»).
Повторите указанные выше действия для всех скриптов 2.X для постепенного заполнения платформы архивными данными.
Для очистки архивов используйте скрипты 0.X.
Обратите внимание, что некоторые скрипты содержат поля периода несколько раз.
3. Генерация данных на сегодня.
Используйте скрипты 3.X для заполнения данных на сегодняшний день. Это позволит заполнить данными дашборды, которые отображают данные за час и текущие сутки.
4. Генерация текущих данных.
Для того чтобы сгенерировать текущие данные по активности в контактного центре используйте скрипты 5.X.
Для того чтобы текущие данные изменялись во времени случайным образом используйте скрипты 6.X.
Текущие данные будут храниться в течение двух часов.
n.b. Для очистки данных остановите “долгоиграющие” генераторы и запустите скрипты очистки.
или
Для того чтобы полностью остановить все скрипты и освободить оперативную память, перезапустите продуктовый слой. Для этого в приложении «Настройки» откройте вкладку «Микросервисы» и для микросервиса platform_super_macro установите флаг «Выключен». Через несколько секунд верните флаг в исходное состояние.
Общее описание
Тестировщик — это приложение, предназначенное для:
- Генерации тестовых данных для различных классов системы
- Нагрузочного и функционального тестирования
- Имитации работы реальных бизнес-процессов (call-центры, кампании, операторы)
- Создания демонстрационных данных для презентаций и тестирования интерфейсов
Ключевые возможности:
- Множественные типы операций: добавление, изменение, удаление, импорт, очистка
- Контроль скорости генерации: через паузы (milliseconds) или CPS (calls per second)
- Гибкая конфигурация данных: JSON-based с поддержкой случайных значений, диапазонов, параметров
Типы генераторов
1. add (Добавление)
Создает новые записи в указанном классе.
Пример конфигурации:
{
"kind": "add",
"className": "callcenter/connections/ArchiveConnections",
"totalCount": 86400,
"cps": 1,
"values": {
"direction": [
"in",
"out"
],
"duration": {
"from": 10,
"to": 600
},
"timeStart": {
"from": "$param.from_time",
"to": "$param.to_time"
}
}
}
Формула для 24-часовой генерации:
totalCount = CPS × 86,400 (секунд в сутках)
2. edit (Изменение)
Изменяет существующие записи, выбранные случайным образом.
Особенности:
- Требует наличия загруженных данных (через
filterили без фильтра) - Выбирает случайную запись из кеша
- Останавливается, если данных больше нет
3. delete (Удаление)
Удаляет существующие записи случайным образом.
Особенности:
- Похож на
edit, но удаляет записи - Автоматически останавливается при отсутствии данных
4. import (Импорт)
Импортирует предопределенный массив данных за один раз.
Пример конфигурации:
{
"kind": "import",
"className": "callcenter/outbound/Campaigns",
"totalCount": 1,
"values": [
{
"id": "campaign_auto1_uuid",
"name": "Автообзвон 1",
"kind": "auto"
},
{
"id": "campaign_auto2_uuid",
"name": "Автообзвон 2",
"kind": "auto"
}
]
}
5. clear (Очистка)
Удаляет ВСЕ данные указанного класса.
ВНИМАНИЕ: Необратимая операция!
Пример конфигурации:
{
"kind": "clear",
"className": "callcenter/connections/CurrentConnections",
"totalCount": 1
}
6. action (Вызов метода)
Вызывает метод сервиса с заданными параметрами.
Пример конфигурации:
{
"kind": "action",
"serviceName": "callcenter.HolderService",
"methodName": "makeCall",
"totalCount": 100,
"cps": 5,
"values": {
"phoneNumber": {
"from": "9211111111",
"to": "9219999999"
}
}
}
Возвращает статистику:
- Время выполнения запросов
- Время выполнения действий
- Min/Max/Avg значения
7. commandline (Командная строка)
Выполняет системные команды.
Пример конфигурации:
{
"kind": "commandline",
"totalCount": 10,
"values": "echo 'Test command $random3'"
}
Доступные переменные:
$random1...$random7— случайные числа разной длины$provider.name— данные провайдеров
Конфигурация генераторов
Синтаксис values (значений)
1. Простые значения
{
"status": "active",
"priority": 5
}
2. Случайный выбор из массива
{
"direction": [
"in",
"out"
],
"result": [
"success",
"fail",
"busy",
"noanswer"
]
}
3. Диапазоны чисел
{
"duration": {
"from": 0,
"to": 65
},
"age": {
"from": 18,
"to": 600
}
}
4. Временные диапазоны
{
"timeStart": {
"from": "2024-01-01T00:00:00",
"to": "2024-12-31T23:59:59"
}
}
Специальное значение:
{
"timeStart": {
"from": "today",
"to": "today"
}
}
Генерирует время в пределах ±24 часа от текущего момента.
5. Рабочее время и будни
{
"callTime": {
"from": "$param.from_time",
"to": "$param.to_time",
"worktime": true,
"weekday": true
}
}
6. Параметры
{
"campaign_id": "$param.campaign_auto1_id",
"startDate": "$param.from_time"
}
ВАЖНО: В массивах параметры не работают напрямую! Используйте expressionKind :
{
"campaign_id": {
"expressionKind": "code",
"code": "return $params.campaign_auto1_id;"
}
}
7. Встроенные функции
{
"domain": "$$$CurrentDomain$$$",
"createdAt": "now()",
"lastActivity": "lasthour()"
}
now()— текущий timestamp▸lasthour()— случайное время за последний час$$$CurrentDomain$$$— текущий домен сессии
8. Ссылки на другие сущности (random_id)
{
"user_id": {
"random_id": "platform/Users"
},
"queue_id": {
"random_id": "callcenter/acd/ACDQueues"
}
}
Выбирает случайный ID из указанного класса.
9. Код JavaScript (expressionKind)
Для сложных вычислений:
{
"fullPhone": {
"expressionKind": "code",
"code": "return '7' + GlobalUtils.randomRange(9000000000, 9999999999);"
},
"customId": {
"expressionKind": "code",
"code": "return GlobalUtils.generateUuid();"
},
"calculatedValue": {
"expressionKind": "code",
"code": "return this.field1 + this.field2 * 100;"
}
}
Доступный контекст:
this— текущий объект с уже заполненными полямиindex— номер итерации (1, 2, 3...)$params— объект со всеми параметрамиGlobalUtils— утилиты платформы
10. Вложенные объекты
{
"sideA": {
"kind": "inner",
"display": {
"from": "100",
"to": "200"
},
"user_id": {
"random_id": "platform/Users"
}
},
"sideB": {
"kind": "outer",
"display": {
"from": "9211111111",
"to": "9219999999"
}
}
}
Управление скоростью генерации Способ 1: CPS (Calls Per Second)
{
"cps": 2,
"totalCount": 172800,
"_comment": "2 CPS × 86400 секунд (24 часа)"
}
Формула:
totalCount = CPS × duration_in_seconds
Для 24 часов: totalCount = CPS × 86400
Способ 2: Pause (миллисекунды)
{
"pause": 500,
"totalCount": 1000,
"_comment": "pause = 500 мс (0.5 секунды между операциями)"
}