Приветствую, любители нагрузки. Для истории прошлые выпуски:
-
Новости Perfscale № 1
-
Perfscale news #2: Fix Protocol, Magic metrics и MCP
-
perfscale news #3 Websocket, Inference, NPM
-
Perfscale news #4. GRPC, Fixed Triggers, Child Process
-
Perfscale news #5. SQL, Thresholds, неработающие Linked Accounts
-
Perfscale news #6. GraphQL, поддержка Import, и метрики
И по традиции мы начинаем с
Perfscale OSS (open source software)
Теперь версии 0.11.0. Github release.
Import
В прошлом релизе я делал поддержку import. Но во-первых, в релиз он не вошел. А во-вторых я немного поменял кеширование. Теперь оно должно быть коррекнтным, а то иногда не показывался
HTTP Metrics
Теперь в HTTP шагах еще больше метрик можно отслеживать: timed_exchange, request_line, transport_error и error_chain. Это нужно для следующей фичи — SOAP.
Perfscale Platform
SOAP
В рамках новой нишевой фичи я решил, что нагрузочное тестирование SOAP протокола самое то поместить в платную версию.
Вот пример простого теста
steps: - name: add two numbers uses: pro/soap@v1 with: url: dneonline.com/calculator.asmx soap_action: "tempuri.org/Add" payload: | 2 2 check: status: 200 body_contains: "4"
Не забыл и про Configuration:
# config.yamlvus: 50duration: 5mbefore: - uses: pro/soap-config@v1 with: { wsdl_url: dneonline.com/calculator.asmx?WSDL } outputs: calc
А тест соотвественно выглядит как-то так
# test.yaml — endpoint/version/soapAction are inherited from the profilesteps: - uses: pro/soap@v1 with: connection: "${{ config.calc }}" operation: Add payload: | 22
метрики, которые пишет SOAP
-
soap_requests
-
soap_faults
-
soap_errors
-
http_req_duration
Пару слов о faults и errors:
В обычном HTTP-запросе 200 OK считается успешным — для SOAP это не так: серверы отправляют как с 200, так и с 500. pro/soap@v1 всегда анализирует тело ответа:
2xx без Fault → шаг выполнен успешно;
любой статус с Fault → шаг не выполнен; извлекаются fault.code/fault.string (faultcode/faultstring для версии 1.1, Code/Value + Reason/Text для версии 1.2) и попадают в вывод и строку лога;
не-2xxбез Fault → обычная ошибка (метрика soap_errors).
Не обошлось и без ограничений
-
Генерация оболочек из XSD невозможна — payload нужно писать самостоятельно. Это не критично, если вы знаете, что писать. Но хочется в будущем, чтобы XSD генерился для автодополнения в редакторе.
-
WS-Security (подпись, шифрование) не поддерживается. Возможно, пока что. Этот момент еще расследуется.
-
MTOM/вложения — вне области применения. Пока не знаю как это сделать нормально. Если вы специалист — напишите мне и мы разберем ваши случаи нагрузки
И да: есть поддержка версии SOAP 1.1 и 1.2. На 1.0 не проверял. Кстати, у автора мало знаний и работы с SOAP. Всегда рад обратной связи!
Linked Accounts
Кратко — все еще не работают. С авторизацией я работал мало, поэтому я тут новичок. Прошу понять и простить и подождать еще.
А на сегодня все! Zero-downtime вашим сервисам и желаю вам поменьше инцедентов!
Источник: habr.com