Artillery.io — это мощное и простое в использовании решение с открытым исходным кодом для нагрузочного тестирования (и функционального тестирования), написанное на NodeJS. Если вы работаете в экосистеме Javascript, этот инструмент может вам подойти — это современная структура, предназначенная для того, чтобы сделать нагрузочное тестирование менее громоздкой задачей, чем в прошлом, когда вам, возможно, приходилось менять языки, чтобы использовать такой инструмент, как JMeter. . Если вы еще не используете его, я настоятельно рекомендую вам проверить его.

Но это не статья в блоге о преимуществах артиллерии, как вы сами можете судить об этом, и в Интернете есть много материалов, посвященных этому на высоком уровне. Речь идет о простом расширении, которое я только что выпустил для него, и я надеюсь, что оно еще больше упростит вам разработку нагрузочных тестов с использованием Artillery.

Проблема

Проблема, вероятно, преувеличена, но были две вещи, которые всегда немного беспокоили меня, потому что мне постоянно приходилось возвращаться к документации (или смотреть пример нагрузочного теста), чтобы вспомнить это:

  • Правильный отступ YAML для некоторых ключей (например, поток, метод и т. д.);
  • Функциональные сигнатуры Artillery.io предоставили хуки (которые позволяют вам запускать пользовательскую логику между событиями в нагрузочном тесте).

Решение

Я написал очень простое расширение VSCode для создания фрагментов как в файлах YAML, так и в файлах Javascript.

Скачать его можно здесь: https://marketplace.visualstudio.com/items?itemName=bernardobridge.artillery-io-snippets. Вы также можете просто найти его в своем VSCode под названием Artillery.io Snippets.

YAML

Включает:

  • артиллерияBasicConfig — просто базовая конфигурация для запуска сценария;
  • артиллерияBasicScenario — простой сценарий, попадающий в гугл;
  • артиллерияScenarioWithHooks — простой сценарий с правильным размещением крюков, поэтому вам не нужно искать их правильное расположение.

Javascript

Включает сигнатуры функций для всех хуков: beforeScenario, afterScenario, beforeRequest, afterRequest и обычной функции.

Надеюсь, это сделает ваш опыт разработки с Artillery.io еще лучше! Вы можете сами внести свой вклад в расширение, открыв вопрос или пулл-реквест на Github.