. SoapUI с Selenium для тестирования веб-сервисов
⚡ Умное резюме
SoapUI с Selenium позволяет одному набору инструментов проверить веб-сервис и браузер, который его использует. Groovy это мост, потому что SoapUI работает Groovy родным и Groovy достигает каждого Java библиотеки Selenium судов.

SoapUI является самым популярным проектом с открытым исходным кодом. функциональное тестирование инструмент для API тестирование. Он обеспечивает полную тестовое покрытие и поддерживает все стандартные протоколы и технологии.
Что такое МЫЛО?
SOAP- Это простой протокол на основе XML. Он позволяет приложениям обмениваться информацией по протоколу HTTP. Он использует веб-сервисы. DescriptЯзык программирования WSDL используется для связи, и другие приложения могут взаимодействовать с ним. веб-сервисы через этот WSDL-интерфейс.
SOAP против REST веб-сервисов SoapUI
SoapUI Изначально это был SOAP-клиент, и его название до сих пор это подтверждает, но он также тестирует REST-конечные точки. Знание того, какой тип запроса используется, определяет, как будет построен тест.
| Аспект | SOAP- | ОТДЫХ |
|---|---|---|
| В лице tract | WSDL-файл описывает каждую операцию, поэтому SoapUI может генерировать запросы автоматически. | Обычно используется определение OpenAPI или Swagger, либо отсутствует формальное соглашение.tracт вообще. |
| Формат сообщения | Только XML-конверт. | Обычно используется формат JSON, хотя допускаются XML и другие форматы. |
| Транспорт | Чаще всего используется HTTP, но SOAP не зависит от типа протокола. | HTTP, с использованием метода и URL воплощая намерение. |
| Утверждения в SoapUI | XPath и XQuery выполняют сопоставление с оболочкой ответа. | Утверждения JSONPath и script соответствуют полезной нагрузке. |
| Типичное использование | Банковское дело, телекоммуникации и другие отраслиtracИнтеграция с крупными корпоративными приложениями. | Общедоступные и мобильные сервисы, в которых полезная нагрузка остается небольшой. |
В приведенном ниже примере используется SOAP-сервис прогноза погоды, но тот же класс запуска запускает REST-тест без каких-либо изменений. Java код.
Что такое SOAPUI?
SOAPUI SOAPUI-Pro — это инструмент тестирования веб-сервисов с открытым исходным кодом, работающий на разных платформах. Версия SOAPUI-Pro обладает дополнительными функциями для компаний, работающих с критически важными веб-сервисами. Веб-сервисы играют важную роль в интернет-приложениях.
⚠️ Примечание к названию продукта: Производство SmartBear прекращено. SoapUI Pro в качестве отдельного продукта, а затем объединил его с LoadUI Pro и ServiceV Pro в единое целое. ReadyAPIБесплатная версия сохраняет SoapUI Название и все еще активно используется. Описанные ниже шаги работают в любом из существующих приложений. SoapUI проекты открыты в ReadyAPI.
Что такое Selenium?
Selenium Это не одна программа, а целое семейство инструментов для управления браузером так, как это делал бы человек. Здесь важны два компонента:
- Selenium — Инструмент тестирования, автоматизирующий работу браузеров на различных платформах.
- Selenium Вебдрайвер — Он осуществляет прямые вызовы к браузерам, используя встроенную поддержку автоматизации в каждом браузере.
Зачем объединять SoapUI и Selenium в одном тесте
Проверка сервиса и проверка экрана обычно являются двумя отдельными задачами, выполняемыми двумя разными программными комплексами, поэтому дефект на стыке между ними, как правило, сохраняется в обоих случаях. Совместное выполнение этих двух программ устраняет этот разрыв.
- Докажите, что поездка туда и обратно состоялась. Бронирование, отправленное через браузер, должно отобразиться в ответе сервиса. Только комбинированный тест может подтвердить обе части.
- Быстро настройте состояние. Создание учетной записи клиента через API занимает секунду; создание от одного до двенадцати полей формы занимает минуту и чаще завершается с ошибкой.
- Локализация сбоя. Если пользовательский интерфейс отображает неверную сумму, проверка API в том же запуске сразу же покажет, в чем причина ошибки: в сервисе или на странице.
- Повторно использовать один набор данных. В приведенном ниже примере пары "почтовый индекс" и "город" используются для обработки вызова сервиса и могли бы также использоваться для проверки утверждений браузера.
- Устранить дублирование покрытия. Правила валидации, уже проверенные на уровне сервиса, не требуют для каждого из них медленного тестирования в браузере.
Компромисс заключается в более сложном тестировании: два инструмента, два набора зависимостей и более длительный процесс. Объединяйте тесты только для тех немногих случаев, когда тесты действительно выходят за рамки допустимого, а остальные оставляйте без изменений. API или проверки исключительно браузером.
Selenium с SoapUI
Самый простой и легкий способ интеграции Selenium с SoapUI заключается в использовании Groovy, который SoapUI оказывает всестороннюю поддержку.
Groovy — это объектно-ориентированный скриптовый язык, включающий в себя все Java библиотеки, поэтому каждый Java Ключевые слова и функции могут использоваться в Groovy Скрипт выполняется напрямую. Он запускается на JVM (Java Виртуальная машина), которая и позволяет Groovy шаг внутрь SoapUI и Java Selenium тест позволяет использовать одни и те же классы.
Предварительные условия для использования Selenium с SoapUI
Перед написанием кода установите следующие компоненты:
⚠️ Примечание к версии: Groovy 5.0 — это текущая стабильная версия, для которой требуется JDK 11 или более поздняя версия, поэтому сначала установите JDK, а затем дайте системе выполнить необходимые действия. Groovy следуйте указанной версии. Selenium добавлен в Java проект в Maven или Gradle зависимость, а не в виде загруженной папки, и SoapUI JAR-файл должен находиться в том же пути к классам, что и ваш тест — именно в этом моменте чаще всего терпят неудачу первые попытки.
Позвоните SoapUI средство запуска тестовых примеров в Selenium
Приведённый ниже код вызывает SoapUI Тестовый пример. Он устанавливает свойства для города и соответствующего ему почтового индекса, а при выполнении извлекает значение каждого города и почтового индекса, после чего сообщает количество ошибок для каждой пары, которая не совпадает. Этот код выполняется в Selenium.
Примечание: Здесь используется параметр usePropertyFileFlag=true вместо статического файла свойств для хранения почтового индекса и города. Почтовый индекс и город передаются динамически во время выполнения методом setProjectProperties().
Инструкции по запуску кода:
- Запускать SoapUI.
- Начать новый тестовый случай.
- Добавить новый Groovy шаг.
- Скопируйте и вставьте пример кода в соответствующий шаг.
- Нажмите «Играть».
- Вы можете видеть, Firefox запуск и переход к GoogleПосле этого вы сможете увидеть SoapUI записи в журнале.
- Код выполняется с использованием JUnit.
Code Пример
@when("<I use the weather service to get the weather information") public void i_use_the_weather_service_to_get_the_information() { Set<Entry<String, string>> set = zipAndCities.entrySet(); while (iterator,hasNext)) { Entry<String, String> entry = iterator.next(); String zipCode = entry.getkey(); String city = entry.getValue(); String[] prop = {"usePropertyFileFlag=true","zipCode=" +zipCode, "city=" +city}; try{ SoapUITestCaseRunner soapUITestCaseRunner = new SoapUITestCaseRunner(); soapUITestCaseRunner.setProjectFile("src/test/resources/WeatherSoapTest-soapui-project.xml"); soapUITestCaseRunner.setProjectProperties(prop); soapUITestCaseRunner.setTestSuite("TestSuite1"); soapUITestCaseRunner.setTestCase("TestCase1"); soapUITestCaseRunner.run(); } catch (Exception e) { System.err.println("checking" + zipCode + " failed!"); failureCount++; zipCodes.append(zipCode + " [" + city +"] "); e.printStackTrace(); }finally{ totalCount++; } } } }
⚠️ Code записки: Этот фрагмент кода воспроизведен в точности так, как он был опубликован, и представляет собой не компилируемый класс, а его фрагмент. Перед компиляцией необходимо объявить итератор, полученный из set.iterator(), верный while (iterator,hasNext)) в while (iterator.hasNext()) и entry.getkey() в entry.getKey(), напишите аннотацию с заглавной буквы следующим образом: @КогдаУдалите лишний символ в начале текста шага и используйте строка , а не string в объявлении Set. Оригинальный текст сохраняется, поэтому опубликованный пример остается неизменным.
В режиме консоли вы можете быстро просмотреть все данные. прецедентВыполненные действия. Вы найдете список почтовых индексов и городов, полученных и переданных в функцию. SoapUI Тестовый пример 1.
Детали SoapUI Журнальный файл
В лог-файлах записываются все действия, происходящие в операционной системе или программном приложении. Для просмотра логов... SoapUI Для просмотра файла журнала перейдите в основную директорию, где вы увидите файл с именем soapui.log.
In SoapUIФайл журнала находится в папке bin внутри каталога установки, например, C:\Program Files\SmartBear\soapUI-Pro-4.0.1\bin. В текущей версии папка с версией может отличаться, и ReadyAPI При установке программа записывает данные в свою собственную папку bin.
Когда вы откроете этот файл журнала, щелкнув по нему, он будет выглядеть примерно так, как показано на снимке экрана ниже.
где SoapUI и Selenium Интеграция часто нарушается
Практически все неисправности на этом этапе связаны с проводкой, а не с проблемами при тестировании. Именно их следует проверить в первую очередь.
| Симптом | Вероятная причина | Что проверить |
|---|---|---|
| NoClassDefFoundError или ClassNotFoundException SoapUITestCaseRunner | SoapUI jar-файл отсутствует в пути к классам для тестирования. | Добавьте SoapUI укажите зависимость от файла сборки или укажите путь к файлу jar в classpath. SoapUI Папка lib. Отсутствующий jar-файл отображается как обычный Selenium исключение в консоли. |
| Файл проекта не найден | Функция setProjectFile() определяет относительный путь к рабочему каталогу, что различается в IDE и инструментах сборки. | Запускать из корневой папки проекта или указывать абсолютный путь. |
| Набор тестов или тестовый пример не найден. | Названия в функциях setTestSuite() и setTestCase() должны точно соответствовать названию проекта. | Скопируйте имена прямо из SoapUI дерево проекта; они чувствительны к регистру. |
| Запрос на объект недвижимости так и не был удовлетворен. | Функция setProjectProperties() выполняется после run(), или же запрос не ссылается на это свойство. | Установите все свойства перед вызовом run() и используйте синтаксис заполнителя свойств внутри запроса. |
| Браузер не запускается | Драйвер и установленный браузер имеют разные основные версии. | Позволять Selenium Менеджер определяет драйвер или сопоставляет драйвер со сборкой браузера. |
| Функция работает в IDE, но не из среды выполнения. | Этот шаг основан на функции, доступной только в версии Pro, например, на источнике данных. | Подтвердите лицензию или перестройте этот шаг, используя аналоги с открытым исходным кодом. |
Как только выполнение программы завершится корректно и в файле soapui.log отобразятся ожидаемые записи, интеграция будет считаться работающей и может быть интегрирована в более широкую систему. автоматизация тестирования на.



