Ответ
Получение токена — это первый шаг в тестировании защищенных эндпоинтов. Процесс обычно заключается в отправке запроса аутентификации и извлечении токена из ответа.
Пример на Java с использованием REST Assured:
import io.restassured.RestAssured;
import io.restassured.response.Response;
public class AuthTest {
public static String getAuthToken() {
String authEndpoint = "https://api.example.com/v1/auth/login";
Response response = RestAssured.given()
.contentType("application/json")
.body("{"username": "testuser", "password": "Pass123!"}")
.post(authEndpoint);
// Извлекаем токен из JSON-ответа. Поле может называться "token", "access_token" и т.д.
String token = response.jsonPath().getString("access_token");
// Валидируем, что токен получен
if (token == null || token.isEmpty()) {
throw new RuntimeException("Failed to retrieve authentication token");
}
return token;
}
// Пример использования токена в последующем запросе
public static void testSecuredEndpoint() {
String token = getAuthToken();
RestAssured.given()
.header("Authorization", "Bearer " + token) // Передача токена в заголовке
.get("https://api.example.com/v1/users/me")
.then()
.statusCode(200);
}
}
Важные аспекты для QA:
- Безопасность: Никогда не хардкодите реальные учетные данные в код. Используйте переменные окружения или защищенные vault.
- Жизненный цикл: Учитывайте срок действия токена (
expires_in). Для длительных тест-сьютов может потребоваться логика его обновления. - Негативные сценарии: Обязательно тестируйте запросы с неверными учетными данными, просроченными или невалидными токенами.