Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Узнайте, как использовать расширение Azure Load Testing для Visual Studio Code, чтобы легко создавать тесты нагрузки Locust с помощью Copilot, выполнять итерацию локально и масштабировать без усилий в Azure. Независимо от того, вы не знакомы с Locust или экспертом по тестированию производительности, расширение Azure Load Testing упрощает создание тестов, итерацию и масштабирование прямо из среды VS Code. Azure Load Testing — это управляемый сервис, который позволяет проводить нагрузочное тестирование в облаке на масштабном уровне. Locust — это средство нагрузочного тестирования с открытым исходным кодом, позволяющее записывать все тесты в коде Python.
В этом кратком руководстве описывается создание, уточнение и выполнение реалистичных нагрузочных тестов. К концу у вас есть полнофункциональный скрипт нагрузочного теста, созданный из коллекции Postman, коллекции Insomnia или HTTP-файла, улучшенный с помощью технологий Copilot и готовый к масштабированию в Azure Load Testing.
Предпосылки
- Расширение Azure Load Testing для VS Code. Скачайте и установите его здесь.
- GitHub Copilot. Настройте Copilot в VS Code для создания и уточнения скриптов тестирования. Если у вас нет подписки, вы можете активировать бесплатную пробную версию.
- Python и Локуст. Требуется для выполнения и проверки скриптов тестирования Locust локально из VS Code. Установите Locust здесь.
- Учетная запись Azure с активной подпиской. Требуется для выполнения нагрузочных тестов в масштабе в Azure Load Testing. Создайте учетную запись бесплатно .
Подсказка
GitHub Copilot Chat в VS Code предлагает несколько моделей ИИ. Вы можете переключать модели с помощью средства выбора моделей в поле ввода чата. Если вы не уверены, какой из них следует использовать, рекомендуется использовать GPT-4o.
Открытие пошагового руководства
Чтобы приступить к работе, откройте палитру команд в VS Code и выполните нагрузочное тестирование: откройте пошаговое руководство. В этом пошаговом руководстве представлены ключевые точки входа расширения.
Вы также можете получить доступ к функциям непосредственно из палитры команд с помощью префикса нагрузочного тестирования . К некоторым часто используемым командам относятся:
Нагрузочное тестирование: создание теста для Locust
Нагрузочное тестирование: запуск нагрузочного теста (локальный)
Нагрузочное тестирование: запуск нагрузочного теста (Нагрузочное тестирование Azure)
Создание скрипта Locust с помощью Copilot
Скрипт Locust можно создать из любой существующей коллекции Postman, Insomnia или .http-файла. Если файл содержит несколько запросов, Copilot пытается последовательно объединить их в согласованный сценарий.
Нажмите кнопку "Создать нагрузочный тест" в пошаговом руководстве или запустите нагрузочное тестирование: создание теста Locust из палитры команд.
Вы можете выбрать источник для автоматического создания тестового скрипта Locust:
- Выбор коллекции Postman, коллекции Insomnia или HTTP-файла позволяет Copilot извлекать несколько операций API, данные запроса и информацию о проверке подлинности, создавая более полный и реалистичный нагрузочный тест.
- Выбор одного URL-адреса позволяет ввести один URL-адрес конечной точки, создав простой скрипт, который можно настроить или развернуть.
В этой инструкции можно выбрать Пример: API зоомагазина, который использует файл
petstore-sample.httpдля создания примера тестового скрипта Locust.Copilot анализирует выбранный файл и создает скрипт нагрузочного теста на основе Locust, автоматически упорядочивая запросы API для имитации реального использования и безопасной обработки аутентификации.
После создания скрипта окно Чата Copilot предложит другие шаги настройки, например определение переменных среды. Если Copilot предлагает переменные среды, создайте
.envфайл в проекте и добавьте рекомендуемые значения.
Настройка скрипта нагрузочного теста
Перед выполнением теста его можно уточнить с помощью Copilot. Например, проверив скрипт, вы можете заметить, что один и тот же пейлоуд запроса отправляется каждый раз с запросом.
payload = {
"id": self.pet_id,
"name": "Fluffy",
"category": {"id": 1, "name": "Dogs"},
"photoUrls": ["https://example.com/photo.jpg"],
"tags": [{"id": 1, "name": "cute"}],
"status": "available"
}
Чтобы сделать тест более динамическим, случайным образом изменяя нагрузку запроса:
- Откройте панель чата Copilot .
- Введите:
Randomize request payloadsи нажмите клавишу ввод. - Copilot создает предлагаемое изменение для внедрения случайности.
- Нажмите кнопку "Применить в редакторе ", который отображается над созданным фрагментом кода в окне "Чат Copilot".
- После просмотра изменений нажмите кнопку "Сохранить ", чтобы принять и обновить скрипт.
- Сохранение файла
Теперь каждый запрос имитирует более реалистичное взаимодействие с пользователем. Код выглядит примерно так:
payload = {
"id": self.pet_id,
"name": f"Pet{random.randint(1, 1000)}",
"category": {"id": random.randint(1, 10), "name": random.choice(["Dogs", "Cats", "Birds"])},
"photoUrls": [f"https://example.com/photo{random.randint(1, 100)}.jpg"],
"tags": [{"id": random.randint(1, 10), "name": random.choice(["cute", "friendly", "playful"])}],
"status": random.choice(["available", "pending", "sold"])
}
Запустите нагрузочный тест
Нагрузочный тест можно запустить двумя способами:
- Локальное выполнение для быстрой проверки
- Выполнение нагрузки в Azure Load Testing с высокомасштабным покрытием в нескольких регионах
Локальное выполнение для быстрой проверки
Чтобы быстро проверить тест, запустите его локально с помощью Locust из Visual Studio Code:
Откройте палитру команд и выполните: нагрузочное тестирование: запуск нагрузочного теста (local).
Веб-интерфейс Locust автоматически запускается в браузере. Для готовности сервера Locust и открытия браузера может потребоваться несколько секунд.
На странице "Запуск нового нагрузочного теста " просмотрите поля ввода и нажмите кнопку "Пуск". Locust начинает отправлять запросы, регистрирует любые сбои и отслеживает статистику производительности.
Изучите пользовательский интерфейс Locust для анализа времени отклика, частоты ошибок и пропускной способности запроса.
Подсказка
Если Locust сообщает о сбоях для Retrieve Pet запросов и Update Pet запросов, это может быть связано с тем, как API Pet Store обрабатывает запросы. Попробуйте попросить Copilot "Добавить случайные задержки между запросами в run_scenario". Если вы подозреваете проблему с самим скриптом, задайте DEBUG_MODE=True переменную среды и повторно запустите тест, чтобы получить более подробные сведения об отладке.
Если вы предпочитаете запустить тест из терминала VS Code:
Откройте терминал в VS Code.
Выполните следующую команду:
locust -f path/to/locustfile.py -u 10 -r 2 --run-time 1m-
-f path/to/locustfile.py: указывает скрипт теста Locust. -
-u 10: имитирует до 10 виртуальных пользователей. -
-r 2: увеличивает количество виртуальных пользователей на два в секунду. -
--run-time 1m: выполняет тест в течение 1 минуты.
-
Откройте браузер на
http://0.0.0.0:8089, чтобы увидеть веб-интерфейс Locust.
Масштабирование нагрузки в Azure Load Testing
В сценариях высокой нагрузки, в которых необходимо имитировать множество тысяч одновременных виртуальных пользователей в нескольких регионах, можно выполнить тест в Azure Load Testing.
Чтобы выполнить крупномасштабный тест, выполните следующую команду:
Откройте палитру команд и выполните: нагрузочное тестирование: запуск нагрузочного теста (Azure Load Testing).
Выберите "Создать файл конфигурации...".
Следуйте инструкциям по настройке, которая включает в себя следующее:
Войдите в Azure и выберите подписку.
Создание нового ресурса нагрузочного тестирования Azure или выбор существующего ресурса.
Выбор регионов нагрузочного теста для глобального распределения трафика.
После завершения установки создается файл конфигурации YAML (например,
loadtest.config.yaml) и добавляется в корневую папку рабочей области.Этот файл определяет скрипт Locust, параметры загрузки, переменные среды, регионы и любые другие файлы (например, наборы данных CSV).
По умолчанию используется 200 виртуальных пользователей, работающих в течение 120 секунд в каждом выбранном регионе.
Зафиксируйте этот файл в репозитории, чтобы повторно использовать и автоматизировать будущие выполнения нагрузочного теста.
Copilot проверяет конфигурацию перед выполнением. Следуйте инструкциям, указанным в окне чата. В противном случае, если все в порядке, тестовый скрипт и связанные с ним артефакты загружаются в Azure Load Testing и подготовлены к выполнению. Этот процесс может занять до минуты, а ход выполнения отображается на панели вывода .
При запуске теста появится уведомление (всплывающее сообщение) в правом нижнем углу VS Code. Нажмите кнопку "Открыть на портале Azure" , чтобы отслеживать выполнение тестов в режиме реального времени.
При запуске теста в правом нижнем углу появится уведомление (всплывающее сообщение). Нажмите кнопку "Открыть на портале Azure" , чтобы отслеживать выполнение тестов в режиме реального времени.
Подсказка
Чтобы быстро получить доступ к результатам теста из предыдущих запусков, используйте команду: Load Testing: Просмотр запусков нагрузочного теста.
В этом кратком руководстве конфиденциальные переменные, такие как API_KEY, были сохранены в файле и загружены на .env облачную службу. Однако, как рекомендуется, секреты должны безопасно управляться в Azure Key Vault. Расширение содержит рекомендации по настройке этого параметра.
До сих пор в этом кратком руководстве конфиденциальные переменные, такие как API_KEY, хранились в файле .env и передавались в облачную службу. Однако, как рекомендуется, секреты должны безопасно управляться в Azure Key Vault. Расширение содержит рекомендации по настройке этого параметра.
Откройте окно чата Copilot, введите
@testing /setupLoadTestSecretsInAzureи нажмите клавишу ввод.Copilot поможет вам выполнить следующие действия.
Copilot поможет вам выполнить следующие действия:
- Создание Azure Key Vault.
- Назначение управляемой идентичности для ресурса Azure Load Testing.
- Добавление секретов в Azure Key Vault.
- Настройка YAML-файла для обращения к секретам хранилища ключей вместо
.env.
При изменении скрипта Locust или конфигурации YAML можно повторно запустить тест, выполнив нагрузочный тест (Azure Load Testing).
Сводка
В этом руководстве по быстрому запуску вы использовали расширение Azure Load Testing для Visual Studio Code, чтобы легко создавать тесты нагрузки с использованием Locust с помощью Copilot, выполнять итерацию локально и легко масштабировать в Azure. Расширение Azure Load Testing для VS Code упрощает процесс создания реалистичного скрипта тестирования для тестового сценария. Azure Load Testing упрощает настройку инфраструктуры для моделирования высокой нагрузки пользователей на ваше приложение.
Вы можете расширить нагрузочное тестирование, добавив мониторинг метрик на стороне сервера для приложения под нагрузкой, а также указать метрики, обозначающие сбой теста, чтобы получать оповещения, когда приложение не соответствует вашим требованиям. Чтобы гарантировать, что приложение продолжает хорошо работать, можно также интегрировать нагрузочное тестирование в рабочий процесс непрерывной интеграции и непрерывного развертывания (CI/CD).
Связанный контент
- Узнайте, как отслеживать метрики на стороне сервера для вашего приложения.
- Узнайте, как настроить автоматическое тестирование производительности с помощью CI/CD.