Параметризация в SoapUI. Хранение параметров

Что такое параметризация и зачем она нужна. Параметры = переменная = аргумент - то, что наша функция (метод) принимает на вход и возвращает на выход. Некоторые запросы в SoapUI не нуждаются в параметрах, например запросы, которые возвращают нам небольшие списки чего либо. Мы посылаем запрос без параметров: список всех людей на планете. И в ответе приходит список:

<getPerson>
          <id>13222312</id>
          <name>Oleg</name
          <character>scandalous</character>
          <country>Russia</country>
          <profession>astronaut</profession>
          <theFavoriteMusic>blues</theFavoriteMusic>
</getPerson>

Таких блоков в ответе будет почти 8 миллиардов. Параметры ответа могут быть любыми и описываются они в xsd проекта. В нашем случае ответ приходит с шестью параметрами.

Но чаще всего схема предусматривает запросы с параметрами. Например, если наш запрос позволит, то мы укажем, что хотим найти  только людей, которые живут в Англии, с именем Фёдор, с характером дружелюбным, по профессии стекольщик, любимая музыка рэгги. Все это мы укажем в запросе (с точными формулировками, соответствующими ожиданию, так как SOAP это протокол, а протокол любит только заранее оговоренные значения). И когда мы отправим запрос с такими параметрами, нам в ответе вернется только 1 человек. Или ноль (если Фёдор переехал или сменил профессию).

В любом случае в SOAP у нас есть параметры запроса и параметры ответа. И для того, чтобы посылать параметры в запросах и брать их в ответах у нас есть специальные места хранения и инструменты получения.

Представьте себе - 1000 запросов в сотне кейсов, и у всех запросов вверху указан адрес стенда, где развернуто приложение. А стендов у вас, например, 5. Т.е. иногда вы отправляете на один, иногда на другой. В любом случае совершенно не хочется каждый раз 1000 раз открывать запросы и заменять в них адреса сервера. Хотя есть такие люди, которые пишут скрипт, подменяющий везде адреса, но это немного слишком - гораздо проще параметризовать этот параметр. 

SoapUI дает возможность хранить:

  1. Глобальные параметры (их могут использовать все проекты) "Global Properties"
  2. Параметры проекта (их могут использовать все сьюты проекта "Project Properties"
  3. Параметры cьюта (их могут использовать все кейсы сьюта) "TestSuite Properties"
  4. Параметры кейса (используются всем методами кейса) "TestCase Properties"
  5. Параметры метода (их обычно вообще никто не использует) "TestRequest Properties"

Что обычно хранится в глобальных параметрах? То, что вы используете постоянно, во всех проектах и что неизменно, но такие вещи редко встречаются, поэтому глобальные параметры практически никогда не используются.

В параметрах проекта обычно хранятся endPointы (адреса продуктов на тестовых стендах), настройки подключения к БД, еще какие-то параметры, которые могут быть использованы во всех кейсах проекта.

В параметрах кейса хранятся более узкоиспользуемые параметры, нужные в данном конкретном кейсе.

В сьюте чаще всего хранят переменные параметры из этого самого сьюта. Подробнее я расскажу ниже, в примерах.

Вот картинка, где я попыталась понятно изобразить как мы храним свойства нашего эндпойнта в properties проекта и как ссылаемся на эти пропертиз.

Уроки по SOAPUI

В этом примере мы видим вместо ссылки в поле endPoint-а этот текст: ${#Project#endPoint}, который означает, что необходимо пойти в параметры проекта и найти там переменную, которая называется endPoint и свойства этой переменной подставить в поле.

Ссылки на параметры выглядят следующим образом:

${#Project#Parameter} - ссылка на параметр проекта, в котором находится тест
${#TestSuite#Parameter} - ссылка на параметр сьюта, в котором находится тест
${#TestCase#Parameter} - ссылка на параметр кейса, в котором находится тест

Но запоминать все это не нужно, так как подставлять параметры мы можем прямо в интерфейсе, нужно просто щелкнуть правой кнопкой в том месте, куда нужно подставить параметр и выбрать из списка GetData (при условии, что в этих всех местах есть заранее установленные параметры):

Уроки по SOAPUI

Там мы просто выбираем параметр, на который хотим ссылаться, а значения этого параметра меняем в Properties когда это будет нужно. Тогда везде, где указана ссылка на это свойство, произойдут изменения.

Соответственно если мы в параметре endPoint изменим свойства (поменяем один стенд на другой), то это свойство изменится и во всех 1000 тестах. 

Что нужно не забыть: когда Вы параметризуете свои тесты, ссылки на пропертиз будут работать только внутри вашего проекта, и если вы хотите перенести тест в другой проект, или просто скинуть кому-то запрос из теста, то нужно копировать из формата raw:

Уроки по SOAPUI Уроки по SOAPUI


© 2021 YU-GO.RU