Основы JMeter, часть 3: Google Drive и OAuth |
18.12.2020 00:00 |
Автор: Джуао Фариас (João Farias) Во введении в этот цикл статей мы изучили основы тест-плана JMeter, создав серию запросов для получения торговых данных Bitcoin. В первой части мы устранили дупликацию при помощи переменных. И, наконец, во второй части мы научились валидировать результаты – метаданные ответа, продолжительность ответа и JSON-содержимое. В этот раз мы разберемся, как сохранять файлы на Google Drive, используя OAuth для аутентификации запросов. Получение ключа доступа к Google Drive Ключи доступа – это зашифрованные строки, которые позволяют компьютерам безопасно общаться. Для получения доступа к функциям Google Drive надо получить токен. Это делается через выбор области действия токена в OAuth 2.0 Playground. Перейдем туда и выберем Google Drive API:
После этого код авторизации (постоянный) можно обменять на токен доступа (временный), который можно использовать в течение какого-то периода для доступа к функциям Google Drive:
Мы воспользуемся этим токеном в нашем плане JMeter. Подготовка плана JMeter Наш план JMeter будет похож на предыдущие – он будет состоять из одной группы запросов, одного простого контроллера, одного HTTP-запроса и ряда обработчиков событий.
Определим глобальные переменные для тест-плана. Мы указываем, что хотим отправлять запросы к серверу Google API, используя запросы POST HTTPs. К тому же мы указываем токен доступа, созданный ранее. В группе потоков указываем, что будем отправлять 10 запросов.
Компонент HTTP Request – центральная часть нашего плана. Здесь мы указываем, что будем использовать HTTP-протокол, сервер и метод из тест-плана. В поле Path мы задаем конечную точку: /upload/drive/v3/files. К тому же мы сообщаем, что будем передавать информацию несколькими частями: uploadType=multipart И, наконец, заполняем поле Body Data, где кодируем текст, который хотим сохранить в файл. Тут мы создаем файл с текстом Hi there. I am Joao. Теперь нам нужно настроить компонент HTTP-заголовков.
Здесь мы вносим наш ключ авторизации в Bearer – формат, который понимают приложения OAuth. К тому же мы задаем Content-Type как multipart, чтобы приложение Google Drive поняло формат наших данных. Результаты Если добавить обработчик событий "Просмотр результатов" и запустить план, мы увидим, что все запросы прошли успешно.
Мы можем увидеть детали запроса: И детали ответа:
Что будет, если увеличивать количество пользователей? Если попытаться нагрузить конечную точку Google Drive отправкой большего количества запросов, можно увидеть кое-что интересное. К примеру, попробуем отправить 200 запросов за 5 секунд: Мы увидим, что большая часть запросов упадет: Это происходит не из-за плохой производительности Google Drive. Проблема в том, что у каждого пользователя есть лимит на загрузку:
Возможно, вам покажется странным, что первые запросы упали из-за квоты, но некоторые последующие прошли. Дело тут в том, что обработчик событий "Просмотр результатов" показывает запросы в порядке прибытия ответов. Возможно, ошибка с лимитом занимает больше времени на обработку, чем успешные запросы. Если проверить временные отметки на запросах, то мы увидим, что самые первые запросы на самом деле прошли.
Заключение Мы выяснили, что безопасное соединение требует большего времени на подготовку плана Jmeter – нам нужно настроить токены доступа. Пример тут, конечно, элементарный. Для более надежного и регулярного использования безопасных соединений нам пришлось бы управляться с обновлением токена и частотой нагрузки запросами, а это зависит от конкретного приложения. Несмотря на это, после настройки наш план выглядит очень похожим на предыдущие, демонстрируя, как интерфейс JMeter разделяет разные области настроек. В следующий раз мы разберемся, как настроить Jenkins для прогона плана JMeter.\ |