Настройка базовой HTTP-аутентификации для всех запросов

Есть ли способ настроить базовую аутентификацию HTTP для всех запросов в проекте SoapUI?

Я знаю, что это можно сделать для всех запросов в TestSuite, но я не могу понять, как это сделать для всех запросов во всех TestSuite.


person DisscCoder    schedule 23.08.2011    source источник
comment
Есть ли какая-то конкретная причина, по которой вы не настраиваете базовую аутентификацию HTTP через конфигурацию веб-сервера?   -  person Oswald    schedule 23.08.2011
comment
На сервере включена аутентификация, и я не могу пройти аутентификацию, используя SoapUI в качестве клиента. Однако я должен каждый раз настраивать аутентификацию для каждого запроса/TestSuite индивидуально. Я хотел бы иметь возможность настроить его один раз для всех запросов в проекте   -  person DisscCoder    schedule 23.08.2011


Ответы (4)


В SOAPUI 5.0 или выше вы можете установить его в basicHttpBinding вашей службы из окна навигации слева (я думаю, что это интерфейс) (это родитель всех ваших методов и прямой дочерний элемент проекта).

Щелкните правой кнопкой мыши имя интерфейса и выберите «Показать средство просмотра интерфейса». Затем перейдите на вкладку «Конечные точки службы». Поместите туда данные для аутентификации. Теперь вам не нужно указывать аутентификацию для каждого метода в вашей службе.

После ввода учетных данных вам необходимо назначить свои запросы. (Кнопка Назначить под вкладками)

person goku_da_master    schedule 27.10.2014
comment
Это самый простой ответ. Благодарю вас! Я не знаю, почему это не более очевидно в SoapUI... - person Tim; 06.11.2014
comment
Кто-нибудь подтверждает, что это работает для проекта/конечной точки REST? Я получаю ClientProtocolException, если помещаю здесь информацию об аутентификации, в то время как та же аутентификация работает нормально, если я добавляю ее к каждому сообщению запроса отдельно. - person dbreaux; 01.12.2015
comment
Я использую его для доступа к Redmine REST API, и он работает. На панели навигации щелкните правой кнопкой мыши узел службы (с URL-адресом службы) и выберите Показать средство просмотра службы. В средстве просмотра служб выберите вкладку «Конечные точки службы» и заполните поля имени пользователя и пароля. Я не уверен в режиме, но я использую COMPLEMENT. После этого для каждого запроса выберите вкладку Auth и укажите Basic. Пусть поля имени пользователя и пароля пусты. Нажмите Authenticate pre-preventive, чтобы принудительно ввести заголовок аутентификации (не дожидаясь запроса от сервера). - person jramos; 12.01.2016
comment
Для некоторых запросов не нужно устанавливать вкладку «Авторизация», я не знаю, почему. Помните, что моей целью является Redmine, я не уверен в поведении других сервисов. - person jramos; 12.01.2016
comment
На самом деле он не ставит авторизацию на все запросы. Даже если у вас настроена вытесняющая аутентификация в свойствах HTTP. Вам все еще нужно пройти по всем вашим запросам один за другим и включить авторизацию на вкладке аутентификации. Практически бессмысленно. - person Keith Tyler; 01.02.2017
comment
Я чувствую, что я почти там, но это все еще не работает. Нужно ли мне указывать что-то еще, кроме UserName+PassWord+Domain? Спасибо - person Luis Gouveia; 22.02.2017
comment
Небольшое примечание: для меня пункт контекстного меню называется «Показать средство просмотра служб», а не «Показать средство просмотра интерфейса» (v5.3.0 osx) - person João Matos; 28.03.2017
comment
@Keith: мне не нужно было трогать каждый запрос. Когда я добавил службу wsdl, я сказал ей генерировать запросы по умолчанию. Хотя не уверен, что это необходимо. - person goku_da_master; 19.06.2017
comment
@Luis: для имени пользователя попробуйте: домен\имя пользователя. Введите свой пароль в поле пароля. Оставьте поле домена пустым. - person goku_da_master; 19.06.2017

Есть несколько способов сделать это:

  1. Установите учетные данные на уровне конечной точки. Конечно, это затем используется для всех шагов тестирования, где используется эта конечная точка.

  2. Установите учетные данные на уровне Test Case (щелкните значок ключа). Учетные данные распространяются на каждый шаг теста.

  3. Используйте пользовательские свойства проекта для хранения учетных данных, затем используйте расширение свойства на вкладке «Аутентификация» на каждом этапе тестирования, чтобы получить свои настраиваемые свойства (имя пользователя/пароль) http://www.soapui.org/Scripting-Properties/work-with-properties.html
    http://www.soapui.org/Scripting-Properties/property-expansion.html

person Magnus Blomstedt    schedule 29.08.2011
comment
Как выполняется шаг 1? Как добавить учетные данные непосредственно в конечную точку? - person goku_da_master; 24.10.2014
comment
2 и 3 работают только в наборе тестов, а не в объектах запроса в определении службы. И 1 не работает, пока не зайду в каждый метод и не настрою auth. Практически бессмысленно помещать его в определение конечной точки, когда вам все равно нужно активировать его в каждом методе. Я не знаю, почему у него нет механизма, чтобы всегда выполнять аутентификацию, если предоставлены учетные данные аутентификации, но я почти убежден, что никто в SB на самом деле не использует свой собственный продукт. - person Keith Tyler; 01.02.2017

В ReadyAPI (SOAP UI Pro) версии 2.2.0:

Во вкладке «Проекты» в верхней части есть значок Auth Manager

В этом менеджере создайте профиль аутентификации на вкладке Auth Repository с правильными username и password. Оставьте Domain пустым и установите Authenticate Pre-emptively

Во вкладке Auth Manager выберите необходимый верхний уровень, с которого вы хотите применить свои учетные данные (я использовал верхний), и в столбце authorization method выберите свой профиль. На запрос «расширение для детей» скажите «да», все они должны переключиться в состояние «Наследовать от родителя».

Когда вы создаете TestSuite из своего проекта, все ваши запросы будут наследоваться от родителя и применять учетные данные, которые вы установили в профиле.

person A.Joly    schedule 23.01.2018

Если вы используете остальные сервисы в soapUI, сначала сделайте следующее, как описано goku_da_master:

Щелкните правой кнопкой мыши имя службы и выберите «Показать средство просмотра службы». Затем перейдите на вкладку «Конечные точки службы». Поместите туда данные для аутентификации.

Поскольку я не могу найти способ применить эти настройки сразу ко всем запросам, самый простой обходной путь — применить настройки к 1 запросу, сохранить проект (в формате xml) и выполнить простую замену поиска в редакторе кода ????

Откройте случайный Запрос 1, на вкладке запроса нажмите кнопку Аутентификация в левом нижнем углу. В разделе Авторизация: выберите "Добавить новую авторизацию..." и выберите "Основная". Возможно, вам также потребуется включить параметр Разрешить упреждающе. Вы можете протестировать этот запрос прямо сейчас.

Теперь сохраните проект и откройте его в редакторе кода. Я использую vsCode, так как он позволяет выполнять многострочный поиск и замену и имеет функцию формата xml (или плагин). Итак, моя находка и замена выглядели так:

                <con:credentials>
                    <con:username>***</con:username>
                    <con:password>******</con:password>
                    <con:domain xsi:nil="true"/>
                </con:credentials>
------------------------------------------------------------------------
                <con:credentials>
                    <con:username>***</con:username>
                    <con:password>******</con:password>
                    <con:domain xsi:nil="true"/>
                    <con:selectedAuthProfile>Basic</con:selectedAuthProfile>
                    <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes>
                    <con:preemptive>true</con:preemptive>
                    <con:authType>Preemptive</con:authType>
                </con:credentials>
person Stevelot    schedule 03.12.2019