Как настроить заголовок авторизации / сбросить существующий заголовок?

#api #rest-assured #web-api-testing

#API #будьте уверены #web-api-тестирование

Вопрос:

Я работаю над тестированием API с помощью Rest-Assured, и мои сценарии: 1. Загрузка 2. Получение содержимого

Я попытался добавить

 RestAssured.given().auth().basic(userName, password)
  

Он не аутентифицирует меня и не устанавливает заголовок, я получаю сообщение об ошибке аутентификации.

Я также попытался добавить

 RestAssured.given().header("authorization", ConfigHelper.getString(user));
  

Получаю ту же ошибку. Единственное, что сработало для меня, это ,

 getRequest().header("authorization", ConfigHelper.getString(user));
  

Но проблема, с которой я сталкиваюсь при использовании GetRequest, заключается в том, что я не могу сбросить запрос со сценариями 1 и 2, поэтому, если я установил авторизацию в scenario1 и когда я пытаюсь пройти аутентификацию в сценарии 2, он дублирует аутентификацию в заголовке и выдает мне

Неверный запрос

ошибка. Есть ли способ, которым я мог бы сбросить заголовок?

Комментарии:

1. Вы пробовали given().auth().preemptive().basic(«имя пользователя», «пароль»)?

2. Да, @Wilfred Clement, это тоже не работает. Я получаю ошибку 401 при проверке подлинности

3. Это удивительно, для повторной уверенности — Вы уверены, что пробовали .preemptive() ?

4. Да, я использовал RestAssured.given().auth().preemptive().basic(«Имя пользователя, пароль). это не помогло, поэтому я добавил this.setRequest(RestAssured.given().auth().preemptive().basic(«Имя пользователя, пароль)), это сработало, но теперь проблема в загрузке, я устанавливаю content-type в multipart form-data, он не подбирается, я пытался добавить this,setRequest(RestAssured.given().auth().preemptive().basic("userName,password).contentType("multipart/form-data) , но получаю в Content-Type отсутствует составной граничный параметр

5. @Wilfred Clement решил упомянутую выше проблему, мне не хватало для передачи граничного параметра, теперь это работает. Спасибо

Ответ №1:

 this.setRequest(RestAssured.given().auth().preemptive().basic(userName, password)
                .header("Content-type", "multipart/form-data")
                .multiPart("file", new File(pathToFile, "application/json"));
  

Комментарии:

1. Краткое объяснение / комментарии к вашему коду были бы великолепны.