<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Тестирование веб сервисов или как пользоваться SoapUI</title>
		<description>Обсуждение Тестирование веб сервисов или как пользоваться SoapUI</description>
		<link>http://proghouse.ru/programming/20-soapui</link>
		<lastBuildDate>Thu, 16 Apr 2026 16:13:30 +0300</lastBuildDate>
		<generator>JComments</generator>
		<atom:link href="http://proghouse.ru/component/jcomments/feed/com_content/20" rel="self" type="application/rss+xml" />
		<item>
			<title>Yuriy Kravchenko написал:</title>
			<link>http://proghouse.ru/programming/20-soapui#comment-2024</link>
			<description><![CDATA[Подскажите, куда именно в проекте Visual Studio вставлять код для создания тестового веб-приложения?]]></description>
			<dc:creator>Yuriy Kravchenko</dc:creator>
			<pubDate>Fri, 09 Aug 2019 18:36:30 +0300</pubDate>
			<guid>http://proghouse.ru/programming/20-soapui#comment-2024</guid>
		</item>
		<item>
			<title>Владимир Андронов написал:</title>
			<link>http://proghouse.ru/programming/20-soapui#comment-1738</link>
			<description><![CDATA[ Вот здесь как раз про такую ошибку: https://stackoverflow.com/questions/6353849/received-fatal-alert-handshake-failure-through-sslhandshakeexception Хорошо, спасибо Огромное!]]></description>
			<dc:creator>Владимир Андронов</dc:creator>
			<pubDate>Sat, 13 Apr 2019 12:19:09 +0300</pubDate>
			<guid>http://proghouse.ru/programming/20-soapui#comment-1738</guid>
		</item>
		<item>
			<title>Alex написал:</title>
			<link>http://proghouse.ru/programming/20-soapui#comment-1737</link>
			<description><![CDATA[ Вот здесь как раз про такую ошибку: https://stackoverflow.com/questions/6353849/received-fatal-alert-handshake-failure-through-sslhandshakeexception]]></description>
			<dc:creator>Alex</dc:creator>
			<pubDate>Sat, 13 Apr 2019 10:26:48 +0300</pubDate>
			<guid>http://proghouse.ru/programming/20-soapui#comment-1737</guid>
		</item>
		<item>
			<title>Владимир Андронов написал:</title>
			<link>http://proghouse.ru/programming/20-soapui#comment-1735</link>
			<description><![CDATA[ Попробуйте копнуть в сторону SSL Keystore. Пробовал, но получаю постоянно ERROR:Exception in request: javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure Сертификат в норме точно, то ли сертификат не подхватывает, то ли не подходит, то ли ошибка сервера, не возвращает заголовок ответа, нет внятных ответов от программы, не подходят ни *.cer, ни *.pem, даже с дуру запихал туда *.p7b... Всё также, пока тёмный лес]]></description>
			<dc:creator>Владимир Андронов</dc:creator>
			<pubDate>Fri, 12 Apr 2019 11:34:24 +0300</pubDate>
			<guid>http://proghouse.ru/programming/20-soapui#comment-1735</guid>
		</item>
		<item>
			<title>Alex написал:</title>
			<link>http://proghouse.ru/programming/20-soapui#comment-1731</link>
			<description><![CDATA[ Попробуйте копнуть в сторону SSL Keystore. http://proghouse.ru/images/articles/programs/soup-ui-ssl-keystore.jpg]]></description>
			<dc:creator>Alex</dc:creator>
			<pubDate>Wed, 10 Apr 2019 19:33:43 +0300</pubDate>
			<guid>http://proghouse.ru/programming/20-soapui#comment-1731</guid>
		</item>
		<item>
			<title>Владимир Андронов написал:</title>
			<link>http://proghouse.ru/programming/20-soapui#comment-1726</link>
			<description><![CDATA[Не нашёл, как подкладывать сертификат с ключом закрытым для систем с проверкой по сертификатам, всё обрыл, нету или я не увидел, если нету возможности - то минус программе, если я не увидел, то минус за не внимательность мне. Кто нибудь знает, есть возможность с сертификатом запросы делать?]]></description>
			<dc:creator>Владимир Андронов</dc:creator>
			<pubDate>Wed, 10 Apr 2019 12:12:11 +0300</pubDate>
			<guid>http://proghouse.ru/programming/20-soapui#comment-1726</guid>
		</item>
		<item>
			<title>Alex написал:</title>
			<link>http://proghouse.ru/programming/20-soapui#comment-1573</link>
			<description><![CDATA[ Добрый день. Первое, то приходит в голову: сделайте TestCase и в нём 2 шага. Первый шаг - doLogin, второй - вызов метода.]]></description>
			<dc:creator>Alex</dc:creator>
			<pubDate>Tue, 11 Dec 2018 21:07:40 +0300</pubDate>
			<guid>http://proghouse.ru/programming/20-soapui#comment-1573</guid>
		</item>
		<item>
			<title>ЕленаШева написал:</title>
			<link>http://proghouse.ru/programming/20-soapui#comment-1568</link>
			<description><![CDATA[Добрый день! Первый раз пишу тесты в SoapUI. Подскажите, пожалуйста, все мои POST запросы должны содержать в своем Header информацию с авторизацией (в моем случае Authorization + Token в поле Value). Этот самый Token генерируется в методе doLogin, где я передаю имя и пароль. В общем, как мне заставить во всех POST методах выполнить сначала doLogin, получить оттуда информацию и подставить ее в мои тестируемые методы? Так как если я сейчас руками это делаю, то через 2 часа все тесты упадут, хотелось бы мочь их запускать в любой момент без корректировки.]]></description>
			<dc:creator>ЕленаШева</dc:creator>
			<pubDate>Tue, 04 Dec 2018 13:57:58 +0300</pubDate>
			<guid>http://proghouse.ru/programming/20-soapui#comment-1568</guid>
		</item>
		<item>
			<title>Имярек написал:</title>
			<link>http://proghouse.ru/programming/20-soapui#comment-1468</link>
			<description><![CDATA[Кто-нибудь встречал примеры использования SOAP UI со скриптами на яве, а не на груви?]]></description>
			<dc:creator>Имярек</dc:creator>
			<pubDate>Fri, 30 Mar 2018 14:45:43 +0300</pubDate>
			<guid>http://proghouse.ru/programming/20-soapui#comment-1468</guid>
		</item>
		<item>
			<title>Alex написал:</title>
			<link>http://proghouse.ru/programming/20-soapui#comment-768</link>
			<description><![CDATA[Вот так: assert messageExchange.getResponseHeaders().get("#status# ", "").equals("HTTP/1.1 200 OK") А вообще можно добавить Assertion "Invalid HTTP Status Codes" и SoapUI будет проверять статусы сама.]]></description>
			<dc:creator>Alex</dc:creator>
			<pubDate>Tue, 21 Feb 2017 09:41:52 +0300</pubDate>
			<guid>http://proghouse.ru/programming/20-soapui#comment-768</guid>
		</item>
		<item>
			<title>Анна написал:</title>
			<link>http://proghouse.ru/programming/20-soapui#comment-767</link>
			<description><![CDATA[Добрый день! Только начинаю изучать автоматизацию тестирования посредством SoapUI. Подскажите, можно ли как-то "выдернуть" значение header "#status#" из response. По сути мне нужно даже не полное значение, а сам код статуса (200, 500 и т.п.)]]></description>
			<dc:creator>Анна</dc:creator>
			<pubDate>Tue, 21 Feb 2017 08:12:47 +0300</pubDate>
			<guid>http://proghouse.ru/programming/20-soapui#comment-767</guid>
		</item>
		<item>
			<title>Alex написал:</title>
			<link>http://proghouse.ru/programming/20-soapui#comment-733</link>
			<description><![CDATA[ Добрый день. Чтобы понять, что и где вы потеряли, мне нужно видеть ваш WSDL, а также ваши запросы и ответы.]]></description>
			<dc:creator>Alex</dc:creator>
			<pubDate>Thu, 19 Jan 2017 08:53:59 +0300</pubDate>
			<guid>http://proghouse.ru/programming/20-soapui#comment-733</guid>
		</item>
		<item>
			<title>Andy написал:</title>
			<link>http://proghouse.ru/programming/20-soapui#comment-732</link>
			<description><![CDATA[Доброго времени суток! пишу первый SOAP сервер, пытаюсь пройти тест при включенном параметре Add Schema Assertion (добавляет утверждение, что ответ соответствует схеме) возникает ошибка: line -1: Missing message wrapper element не подскажите что и где я мог потерять?]]></description>
			<dc:creator>Andy</dc:creator>
			<pubDate>Wed, 18 Jan 2017 01:00:57 +0300</pubDate>
			<guid>http://proghouse.ru/programming/20-soapui#comment-732</guid>
		</item>
		<item>
			<title>Alex написал:</title>
			<link>http://proghouse.ru/programming/20-soapui#comment-718</link>
			<description><![CDATA[ Допустим нам нужно потестить функцию GetSum1 из статьи. Она принимает три числа на вход. Чтобы сделать тестирование как вы пишите, я сделал следующий XML и сохранил его в файл C:\Test\test1.xml &lt;tst&gt;   &lt;value a="10" b="1" c="2"/&gt;   &lt;value a="2" b="2" c="4"/&gt;   &lt;value a="4" b="4" c="12"/&gt;   &lt;value a="6" b="6" c="6"/&gt;   &lt;value a="50" b="11" c="8"/&gt;   &lt;value a="7" b="61" c="3"/&gt;   &lt;value a="9" b="91" c="0"/&gt; &lt;/tst&gt; Затем в тесткейс я добавил 4 свойства: aValue, bValue, cValue и valueIndex и следующий скрипт инициализации: testRunner.testCase.setPropertyValue("valueIndex", "0") Затем я добавил 3 тестовых шага: Первый шаг - Groovy Script со следующим скриптом: import javax.xml.parsers.* import org.w3c.dom.* DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); Document xml = db.parse("c:\\Test\\test1.xml"); NodeList nodes = xml.getDocumentElement().getElementsByTagName("val ue"); int valueCount = nodes.getLength(); int valueIndex = Integer.parseInt(testRunner.testCase.getPropertyVa lue( "valueIndex" )); if (valueIndex &lt; valueCount) {   testRunner.testCase.setPropertyValue("aValue", nodes.item(valueIndex).getAttribute("a"));   testRunner.testCase.setPropertyValue("bValue", nodes.item(valueIndex).getAttribute("b"));   testRunner.testCase.setPropertyValue("cValue", nodes.item(valueIndex).getAttribute("c"));   testRunner.testCase.setPropertyValue("valueIndex", new Integer(valueIndex + 1).toString()); } else   testRunner.cancel("Конец XML"); Второй шаг – Test Request: &lt;soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelop e" xmlns:soap1="http://www.proghouse.ru/SoapUITester" &gt;   &lt;soap:Header/&gt;   &lt;soap:Body&gt;      &lt;soap1:GetSum1&gt;         &lt;soap1:a&gt;${#TestCase#aValue}&lt;/soap1:a&gt;         &lt;soap1:b&gt;${#TestCase#bValue}&lt;/soap1:b&gt;         &lt;soap1:c&gt;${#TestCase#cValue}&lt;/soap1:c&gt;      &lt;/soap1:GetSum1&gt;      &lt;/soap:Body&gt; &lt;/soap:Envelope&gt; Третий шаг – Conditional Goto у которого условие 1=1 и переход на первый шаг. Работает это так: в свойстве valueIndex хранится индекс текущего тэга value в моём XML-файле, из него на первом шаге я считываю атрибуты a, b и c и записываю их значения в свойства aValue, bValue и cValue. После этого я увеличиваю значение свойства valueIndex на 1. Если значение свойства valueIndex больше или равно количеству тэгов value в моём XML-файле, то я останавливаю тест. На втором шаге тестируется сервис со значениями из этих свойств. Третий шаг запускает выполнение первого шага, создавая цикл. Аналогично можете сделать и с Excel, только тогда меняется Groovy Script в первом шаге. Допустим, у вас будет простая таблица, как на картинке, сохранённая в файл c:\Test\test1.xls. http://www.proghouse.ru/images/articles/programs/groovy-excel-example.png Тогда скрипт будет таким: import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Row; InputStream inputStream = new FileInputStream("c:\\Test\\test1.xls"); HSSFWorkbook workbook = new HSSFWorkbook(inputStream); Sheet sheet = workbook.getSheetAt(0); int valueIndex = Integer.parseInt(testRunner.testCase.getPropertyVa lue( "valueIndex" )); Row row = sheet.getRow(valueIndex); if (row != null) {         testRunner.testCase.setPropertyValue("aValue", ((int)row.getCell(0).getNumericCellValue()).toStri ng());         testRunner.testCase.setPropertyValue("bValue", ((int)row.getCell(1).getNumericCellValue()).toStri ng());         testRunner.testCase.setPropertyValue("cValue", ((int)row.getCell(2).getNumericCellValue()).toStri ng());         testRunner.testCase.setPropertyValue("valueIndex", new Integer(valueIndex + 1).toString()); } else         testRunner.cancel("Конец документа"); Здесь я использовал библиотеку Apache POI: http://poi.apache.org/. Чтобы код выше работал, нужно скачать библиотеку Apache POI с бинарником отсюда: http://poi.apache.org/download.html, из скачанного архива достать бинарник (у меня это файл poi-3.16-beta1.jar) и положить его в папку \bin\ext, внутри папки с SoapUI (у меня это папка C:\Program Files (x86)\SmartBear\SoapUI-5.0.0\bin\ext) и перезапустить SoapUI.]]></description>
			<dc:creator>Alex</dc:creator>
			<pubDate>Wed, 11 Jan 2017 13:01:28 +0300</pubDate>
			<guid>http://proghouse.ru/programming/20-soapui#comment-718</guid>
		</item>
		<item>
			<title>Omi написал:</title>
			<link>http://proghouse.ru/programming/20-soapui#comment-693</link>
			<description><![CDATA[Доброго дня. У меня вопрос, связанный с получением значений переменных из excel файла. Есть несколько наборов значений переменных. Необходимо по очереди считывать эти наборы и загонять из файла в переменные SoapUI, и с полученными значениями выполнять тест. Есть такая возможность? Если excel сложно считать, могу все в xml перегнать, особой разницы откуда читать данные в тест для меня нет. В крайнем случае могу иx вручную в Groovy Script прописывать. В этом случае вопрос в том, как из того же Groovy запускать одиночный тесткейс?]]></description>
			<dc:creator>Omi</dc:creator>
			<pubDate>Thu, 29 Dec 2016 11:38:16 +0300</pubDate>
			<guid>http://proghouse.ru/programming/20-soapui#comment-693</guid>
		</item>
		<item>
			<title>Alex написал:</title>
			<link>http://proghouse.ru/programming/20-soapui#comment-521</link>
			<description><![CDATA[ Щёлкните по проекту правой кнопкой, выберите "Launch TestRunner". В поднявшемся диалоге в поле "TestSuite" выберите "&lt;all&gt;" и нажмите "Launch". Там же в окне вы увидите, какой bat-файл нужно запускать и с какими параметрами.]]></description>
			<dc:creator>Alex</dc:creator>
			<pubDate>Fri, 29 Jul 2016 12:48:04 +0300</pubDate>
			<guid>http://proghouse.ru/programming/20-soapui#comment-521</guid>
		</item>
		<item>
			<title>Victor_25 написал:</title>
			<link>http://proghouse.ru/programming/20-soapui#comment-520</link>
			<description><![CDATA[Подскажите как сделать настройку, чтобы созданные мной тест сьюты для автотестов запускались один за другим. т.е. чтобы не приходилось открывать каждый сьют и запускать его , а просто выбрать набор сьютов и запускать их одним нажатием кнопки?]]></description>
			<dc:creator>Victor_25</dc:creator>
			<pubDate>Fri, 29 Jul 2016 11:04:48 +0300</pubDate>
			<guid>http://proghouse.ru/programming/20-soapui#comment-520</guid>
		</item>
		<item>
			<title>sejal написал:</title>
			<link>http://proghouse.ru/programming/20-soapui#comment-516</link>
			<description><![CDATA[hi,we provide online training & video tutorial for soapui for free videos refer http://soapui-tutorial.com/soapui-tutorial/introduction-to-webservices/]]></description>
			<dc:creator>sejal</dc:creator>
			<pubDate>Fri, 22 Jul 2016 10:29:25 +0300</pubDate>
			<guid>http://proghouse.ru/programming/20-soapui#comment-516</guid>
		</item>
		<item>
			<title>well написал:</title>
			<link>http://proghouse.ru/programming/20-soapui#comment-313</link>
			<description><![CDATA[ Собственно, и ответ: Доступ к свойствам может получить через messageExchange. Например, так: messageExchange.modelItem.testCase.setPropertyValu e("myProperty", "myValue") Примеры можно найти здесь: http://www.soapui.org/scripting-properties/tips-tricks.html#6229412077106442722 и здесь: https://learnsoapui.wordpress.com/2011/07/17/10-groovy-scripts-on-your-finger-tips-soapui/.]]></description>
			<dc:creator>well</dc:creator>
			<pubDate>Mon, 21 Dec 2015 10:31:14 +0300</pubDate>
			<guid>http://proghouse.ru/programming/20-soapui#comment-313</guid>
		</item>
		<item>
			<title>well написал:</title>
			<link>http://proghouse.ru/programming/20-soapui#comment-306</link>
			<description><![CDATA[Доброго времени. Подскажите, есть ли возможность добавить значение в свойство скриптом на шаге? Вот так: testRunner.testCase.setPropertyValue("nameProp", "Value") нет доступа к testRunner. В общем, задача состоит в том, чтобы использовать значение, полученное из ответа на следующих шагах.]]></description>
			<dc:creator>well</dc:creator>
			<pubDate>Thu, 17 Dec 2015 10:20:13 +0300</pubDate>
			<guid>http://proghouse.ru/programming/20-soapui#comment-306</guid>
		</item>
		<item>
			<title>Alex написал:</title>
			<link>http://proghouse.ru/programming/20-soapui#comment-284</link>
			<description><![CDATA[ Не совсем понятно, что вы хотите передать. Object - это что-то неопределённое...]]></description>
			<dc:creator>Alex</dc:creator>
			<pubDate>Tue, 24 Nov 2015 19:05:38 +0300</pubDate>
			<guid>http://proghouse.ru/programming/20-soapui#comment-284</guid>
		</item>
		<item>
			<title>Владимир написал:</title>
			<link>http://proghouse.ru/programming/20-soapui#comment-281</link>
			<description><![CDATA[А как передать в него значение, для параметра типа object?]]></description>
			<dc:creator>Владимир</dc:creator>
			<pubDate>Tue, 24 Nov 2015 00:28:46 +0300</pubDate>
			<guid>http://proghouse.ru/programming/20-soapui#comment-281</guid>
		</item>
		<item>
			<title>Alex написал:</title>
			<link>http://proghouse.ru/programming/20-soapui#comment-158</link>
			<description><![CDATA[ Вы проверяете сервис или клиента? И что вы хотите сделать с массивом: передать массив или делать вызовы для каждого элемента массива в цикле? Если вам нужны вызовы в цикле, то вам нужно вместо прибавления единицы в свойство, см. пример, читать новые значения из вашего файла.]]></description>
			<dc:creator>Alex</dc:creator>
			<pubDate>Thu, 16 Jul 2015 10:13:47 +0300</pubDate>
			<guid>http://proghouse.ru/programming/20-soapui#comment-158</guid>
		</item>
		<item>
			<title>Daniil написал:</title>
			<link>http://proghouse.ru/programming/20-soapui#comment-153</link>
			<description><![CDATA[Хотелось бы понять, как, например, проверить для массива данных, который сохранен в excel-евском файле по строкам, то есть не для a=1 и до 5, а для чисел (у меня строк) из этого файла?]]></description>
			<dc:creator>Daniil</dc:creator>
			<pubDate>Wed, 08 Jul 2015 17:02:32 +0300</pubDate>
			<guid>http://proghouse.ru/programming/20-soapui#comment-153</guid>
		</item>
		<item>
			<title>Daniil написал:</title>
			<link>http://proghouse.ru/programming/20-soapui#comment-152</link>
			<description><![CDATA[Возникла проблема следующего характера. Есть некий запрос в который я вручную ввожу данные и мне справа появляется результат. Можно ли каким то способом в одном запросе выполнить его сразу от массива данных какого-то, записанного в столбце (1000 строк, например)? Извиняюсь за тупость вопроса, только начал работать с этой программой.]]></description>
			<dc:creator>Daniil</dc:creator>
			<pubDate>Wed, 08 Jul 2015 16:18:09 +0300</pubDate>
			<guid>http://proghouse.ru/programming/20-soapui#comment-152</guid>
		</item>
		<item>
			<title>Евген написал:</title>
			<link>http://proghouse.ru/programming/20-soapui#comment-108</link>
			<description><![CDATA[Спасибо, отличная статья - очень помогла при нагрузочном тестировании! :-)]]></description>
			<dc:creator>Евген</dc:creator>
			<pubDate>Tue, 28 Apr 2015 13:34:26 +0300</pubDate>
			<guid>http://proghouse.ru/programming/20-soapui#comment-108</guid>
		</item>
		<item>
			<title>User написал:</title>
			<link>http://proghouse.ru/programming/20-soapui#comment-101</link>
			<description><![CDATA[Спасибо!!!]]></description>
			<dc:creator>User</dc:creator>
			<pubDate>Sat, 11 Apr 2015 14:13:13 +0300</pubDate>
			<guid>http://proghouse.ru/programming/20-soapui#comment-101</guid>
		</item>
		<item>
			<title>Никита написал:</title>
			<link>http://proghouse.ru/programming/20-soapui#comment-78</link>
			<description><![CDATA[Большое спасибо за подробную статью, это прекрасно что постепенно материалы по SoapUI появляются и на русском языке, сам на днях задумался что надо начать переводить какие-нибудь примеры.]]></description>
			<dc:creator>Никита</dc:creator>
			<pubDate>Mon, 16 Feb 2015 22:28:05 +0300</pubDate>
			<guid>http://proghouse.ru/programming/20-soapui#comment-78</guid>
		</item>
		<item>
			<title>Alex написал:</title>
			<link>http://proghouse.ru/programming/20-soapui#comment-72</link>
			<description><![CDATA[Сталкивался. Вот пример: допустим, сервис читает и пишет картинки любого формата вот такими функциями (вообще-то с помощью FileStream можно читать и писать вообще любой файл): [WebMethod] public byte[] ReadImage(string imageFile) {     //Читаем указанную картинку из папаки c:\temp.     Image image = Image.FromFile(Path.Combine("c:\\temp", imageFile));     MemoryStream memoryStream = new MemoryStream();     image.Save(memoryStream, image.RawFormat);     return memoryStream.GetBuffer(); } [WebMethod] public string WriteImage(byte[] imageFileContent, string imageFile) {     //Сохраняем файл в папке c:\temp.     MemoryStream memoryStream = new MemoryStream(imageFileContent);     Image image = Image.FromStream(memoryStream);     image.Save(Path.Combine("c:\\temp", imageFile));     return "Successfully!"; }  Вызов функции ReadImage будет выглядеть так: &lt;soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/env elope/" xmlns:soap="http://www.proghouse.ru/SoapUITester">    &lt;soapenv:Header/>    &lt;soapenv:Body>       &lt;soap:ReadImage>          &lt;!--Optional:-->          &lt;soap:imageFile>test.jpg&lt;/soap:imageFile>       &lt;/soap:ReadImage>    &lt;/soapenv:Body> &lt;/soapenv:Envelope> А ответ так: &lt;soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelo pe/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instan ce" xmlns:xsd="http://www.w3.org/2001/XMLSchema">    &lt;soap:Body>       &lt;ReadImageResponse xmlns="http://www.proghouse.ru/SoapUITester">          &lt;ReadImageResult>/9j/4AAQSkZJRgAB AQEASABIAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR 0oOjM9PDkzODdASFxOQERX RTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi 9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2 NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAO AA8DAREAAhEBAxEB/8QAFgABAQEAA AAAAAAAAAAAAAAAAgED/8QAFgEBAQEAAAAAAAAAAAAAAAAAAQA D/9oADAMBAAIQAxAAAAHTH AAVtf/EABsQAAIBBQAAAAAAAAAAAAAAAAECAAMREiIj/9oACAE BAAEFAr6nKlHKrB3P/8QAGhEAAgI DAAAAAAAAAAAAAAAAAAECITJRcf/aAAgBAwEBPwHpcR6ZlR//x AAWEQEBAQAAAAAAAAAAAAAAA AAAMWH/2gAIAQIBAT8BRiv/xAAdEAACAgEFAAAAAAAAAAAAAAA AAQIRAyJBQlFh/9oACAEBAAY/Ak 5c7E7FjnejoUI7eUf/xAAcEAEBAAICAwAAAAAAAAAAAAABEQAh caFRYbH/2gAIAQEAAT8hKm+SXjvC+l fSfcAeVMTbcAtmzU9DjP/aAAwDAQACAAMAAAAQy2//xAAZEQEB AAMBAAAAAAAAAAAAAAABABEhQ WH/2gAIAQMBAT8Q4PWZNlgeEAgX/8QAGREAAgMBAAAAAAAAAAA AAAAAAAERIUEx/9oACAECAQ E/EMl6NO44VsI5R//EABwQAQEAAgIDAAAAAAAAAAAAAAERADEh YUFxof/aAAgBAQABPxAK8uXSgG hTbX3B4lYJoS8AfJh0BRSVeRSaxvoT3dDjT7d9Z//Z&lt;/Rea dImageResult>       &lt;/ReadImageResponse>    &lt;/soap:Body> &lt;/soap:Envelope> Точно также записываем картинку: &lt;soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/env elope/" xmlns:soap="http://www.proghouse.ru/SoapUITester">    &lt;soapenv:Header/>    &lt;soapenv:Body>       &lt;soap:WriteImage>         &lt;soap:imageFileContent>/9j/4AAQSkZJRgABA QEASABIAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0 oOjM9PDkzODdASFxOQERXR Tc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9 jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2Nj Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAOAA 8DAREAAhEBAxEB/8QAFgABAQEAAAA AAAAAAAAAAAAAAgED/8QAFgEBAQEAAAAAAAAAAAAAAAAAAQAD/ 9oADAMBAAIQAxAAAAHTHAA Vtf/EABsQAAIBBQAAAAAAAAAAAAAAAAECAAMREiIj/9oACAEBA AEFAr6nKlHKrB3P/8QAGhEAAgIDA AAAAAAAAAAAAAAAAAECITJRcf/aAAgBAwEBPwHpcR6ZlR//xAA WEQEBAQAAAAAAAAAAAAAAAAA AMWH/2gAIAQIBAT8BRiv/xAAdEAACAgEFAAAAAAAAAAAAAAAAA QIRAyJBQlFh/9oACAEBAAY/Ak5c7 E7FjnejoUI7eUf/xAAcEAEBAAICAwAAAAAAAAAAAAABEQAhcaF RYbH/2gAIAQEAAT8hKm+SXjvC+lfSf cAeVMTbcAtmzU9DjP/aAAwDAQACAAMAAAAQy2//xAAZEQEBAAM BAAAAAAAAAAAAAAABABEhQW H/2gAIAQMBAT8Q4PWZNlgeEAgX/8QAGREAAgMBAAAAAAAAAAAA AAAAAAERIUEx/9oACAECAQE/ EMl6NO44VsI5R//EABwQAQEAAgIDAAAAAAAAAAAAAAERADEhYU Fxof/aAAgBAQABPxAK8uXSgGhT bX3B4lYJoS8AfJh0BRSVeRSaxvoT3dDjT7d9Z//Z&lt;/soap: imageFileContent>          &lt;soap:imageFile>test2.jpg&lt;/soap:imageFile>       &lt;/soap:WriteImage>    &lt;/soapenv:Body> &lt;/soapenv:Envelope> И получаем такой ответ: &lt;soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelo pe/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instan ce" xmlns:xsd="http://www.w3.org/2001/XMLSchema">    &lt;soap:Body>       &lt;WriteImageResponse xmlns="http://www.proghouse.ru/SoapUITester">          &lt;WriteImageResult>Successfully!&lt;/WriteImageR esult>       &lt;/WriteImageResponse>    &lt;/soap:Body> &lt;/soap:Envelope> Точно также содержимое файла можно подставить из свойства, ведь по сути – это строка. Запрос будет выглядеть так: &lt;soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/env elope/" xmlns:soap="http://www.proghouse.ru/SoapUITester">    &lt;soapenv:Header/>    &lt;soapenv:Body>       &lt;soap:WriteImage>         &lt;soap:imageFileContent>${#TestCase#fileContent} &lt;/soap:imageFileContent>          &lt;soap:imageFile>test3.jpg&lt;/soap:imageFile>       &lt;/soap:WriteImage>    &lt;/soapenv:Body> &lt;/soapenv:Envelope> А считать содержимое файла и записать в свойство с помощью скрипта Groovy можно так: File file = new File("c:\\temp\\test.jpg"); String fileContent = file.getBytes().encodeBase64().toString(); testRunner.testCase.setPropertyValue("fileContent" , fileContent);]]></description>
			<dc:creator>Alex</dc:creator>
			<pubDate>Mon, 09 Feb 2015 10:41:34 +0300</pubDate>
			<guid>http://proghouse.ru/programming/20-soapui#comment-72</guid>
		</item>
		<item>
			<title>Игорь написал:</title>
			<link>http://proghouse.ru/programming/20-soapui#comment-71</link>
			<description><![CDATA[Приветствую. Спасибо за отличную статью, как раз сейчас изучаю SoapUI. Столкнулся со следующей задачей, решение которой не могу найти: необходимо передать в soap запросе фото jpg как массив байт. Скрипт для чтения файла и конвертации вроде бы нашел, а вот как передать результат потом в сам запрос. Properties вроде не подходят по типу, может быть сталкивались с такой задачей?]]></description>
			<dc:creator>Игорь</dc:creator>
			<pubDate>Sun, 08 Feb 2015 20:57:13 +0300</pubDate>
			<guid>http://proghouse.ru/programming/20-soapui#comment-71</guid>
		</item>
	</channel>
</rss>
