Для тестирования производительности точек доступа параллельными нагрузочным испытанием при помощи сенсоров типа qow-lite (wdq) применяется упрощенный способ.
Вместо генерации периодического задания с набором инструкций, из административного интерфейса сервера WNAM QoW, из раздела панели управления в "Группе", запускается разовое измерение.
Оно имеет следующие параметры выбора:
- SSID, BSSID и частотный канал конкретной тестируемой точки доступа (выпадающий список)
- Число тестирующих сенсоров типа 820; если задано "0" - работают все доступные сенсоры в группе
- Число тестирующих сенсоров типа 840; если задано "0" - работают все доступные сенсоры в группе
- Задержка запуска, время (в секундах), которое используется для формирование потока команд на сенсоры так, чтобы запуск подключения-измерения проводился с некоторой задержкой между сенсорами, для избежания массового одновременного старта. По умолчанию 1 секунда.
- Тип теста: TCP или UDP (по умолчанию: TCP)
- Длительность теста, в секундах (по умолчанию: 30)
- Направление теста (передачи трафика): прямое, обратное, оба
- Ограничение скорости, в Мбит/с (для UDP теста)
Запуск теста приводит к отправке на каждый сенсор MQTT-команды типа "FASTTEST" с следующими параметрами:
qos/XX:XX:XX:XX:XX:XX/cmd {"type":"FASTTEST", "sid":"random-sid-value","connect": {"ssid":"network-name", "security":"psk", "password":"12345678", "bssid":"XX:XX:XX:XX:XX:XX", "band":0},"measure": {"duration": 30, "cmd": "iperf3 -4 -c 1.2.3.4:4444 100M -u -J -R"}}
Сенсор должен подключиться к заданной сети, запустить получение IP адреса, и затем выполнить команду, указанную в measure.cmd. Максимальное её время выполнения задается в duration, при превышении этого времени запускаемый процесс должен быть убит.
В ответ сенсор должен собрать stdout тестирующей утилиты iperf (или что было указано в командной строке measure.cmd), и вернуть его результаты на сервер в следующем формате:
qos/XX:XX:XX:XX:XX:XX/data {"type":"FASTTEST", "sid":"req-sid-value","connect": {"status": true, "duration": 12345, "ip":"5.6.7.8"},"measure":{"status": true, "duration": 12345, "result":{iperf-json-object} }}
Где { iperf-json-object } - объект, полученный в результате выполнения команды iperf.
Если подключение к сети не успешно, то запуск iperf не производится, и возвращается ответ вида:
qos/XX:XX:XX:XX:XX:XX/data {"type":"FASTTEST", "sid":"req-sid-value","connect": {"status": false, "duration": 12345, "error":"словесное описание причины ошибки"},"measure":{"status": false, "duration": 0, "result":{} }}
4 Comments
Ruslan Isaev
Anton Vinokurov
посмотри iperf3 -J
Anton Vinokurov
test
Ruslan Isaev
Предлагаю поменять возвращаемый формат сообщения. Т.к. возвращать нужно не только по ней, но и по другим.
Когда делали wda я соглашался с названиями Андрея, теперь постоянно путаюсь. Давай здесь хотя бы api делать самодокументируемым. Чтобы вместо restart reload, а вместо uuid - sid.