Аутентификация в Google с Oauth2 в JMeter
Я делаю вызов POST, чтобы получить токен oAuth в JMeter. Так что я могу загружать файлы на Google Drive. Ниже мои детали запроса в JMeter.
POST https://accounts.google.com/o/oauth2/token
POST data:
client_id=<my_client_id>&auth_uri=https%3A%2F%2Faccounts.google.com%2Fo%2Foauth2%2Fauth&token_uri=https%3A%2F%2Faccounts.google.com%2Fo%2Foauth2%2Ftoken&client_secret=<my_client_secret>&grant_type=authorization_code&redirect_uris=%5B%22urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob%22%2C+%22127.0.0.1%3A3000%22%5D%0A&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive
[no cookies]
Request Headers:
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 424
Host: accounts.google.com
User-Agent: Apache-HttpClient/4.5.2 (Java/1.8.0_121)
Но я получаю ошибку ниже. Любая помощь приветствуется. Благодарю.
{
:
"error"
: : "invalid_request",
: "error_description" : "Missing required parameter: code"
}
2 ответа
Я не могу помочь вам с JMeter, но я могу сказать вам, что означает сообщение об ошибке.
grant_type=authorization_code
это второй шаг в потоке Oauth2. У него есть несколько обязательных параметров, один из которых - код.
https://accounts.google.com/o/oauth2/token
code=4/X9lG6uWd8-MMJPElWggHZRzyFKtp.QubAT_P-GEwePvB8fYmgkJzntDnaiAI&client_id={ClientId}.apps.googleusercontent.com&client_secret={ClientSecret}&redirect_uri=urn:ietf:wg:oauth:2.0:oob&grant_type=authorization_code
Код, о котором идет речь, - это код, который был возвращен из первоначального запроса пользователя для подтверждения доступа к приложениям.
Я также хотел бы добавить, что у Google есть ряд официальных клиентских библиотек, которые будут заниматься этими вызовами для вас. Использование одного из них намного проще, чем попытка понять поток Oauth2, если вам это не нужно. Если вы не можете использовать библиотеку и заинтересованы в том, чтобы увидеть весь поток Oauth2 в Google, у меня есть учебник по нему. Поток Oauth2 в Google 3 на нем показывает чистые HTTP-вызовы.
Я бы порекомендовал использовать клиентскую библиотеку Google OAuth Java из тестовых элементов JSR223 с использованием Groovy в качестве языка программирования, это самый быстрый и простой способ получения / обновления токенов OAuth.
Посмотрите, Как Выполнить Тесты производительности на Защищенных приложениях OAuth со статьей JMeter для подробного объяснения и примера авторизации.