Разбирайте весь источник данных Excel в качестве потока для запроса SOAP в SoapUI

Есть ли способ проанализировать все доступные строки в источнике данных Excel SoapUI Pro и передать его повторяющемуся сложному типу SOAP-запроса, отличному от программного считывания его и вставки значений в XML-документ запроса SOAP с помощью скрипта Groovy? то есть:

Col1 Col2 Col3 Row1 C11 C12 C13 Row2 C21 C22 C23 Row3 C31 C32 C33 

В:

 <soapenv:Envelope xmlns:soapenv="http://my.ns.com"> <soapenv:Header/> <soapenv:Body> <Rows> <Row> <Col1>C11</Col1> <Col2>C12</Col2> <Col3>C13</Col3> </Row> <Row> <Col1>C21</Col1> <Col2>C22</Col2> <Col3>C23</Col3> </Row> <Row> <Col1>C31</Col1> <Col2>C32</Col2> <Col3>C33</Col3> </Row> </Rows> </soapenv:Body> </soapenv:Envelope> 

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

Вы должны были бы сделать что-то вроде:

  1. Источник данных
  2. Шаг Groovy, который берет текущую строку из DataSource и добавляет ее в запрос (шаг 4). Google XmlSlurper() за идею, как это сделать.
  3. Data Loop вернитесь к шагу 1.
  4. Запрос на мыло

Мне удалось написать скрипт, чтобы сделать это с помощью JExcel (распаковать и поместить jxl.jar в soapui-installation-path / bin / ext) – это предполагает, что ваш документ запроса Soap содержит все, кроме элементов Row :

 import jxl.*; def workbook = Workbook.getWorkbook(new File("C:\\Path\\To\\YourExcel.xls")) def sheet = workbook.getSheet(0) def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context ) def holder = groovyUtils.getXmlHolder( "requestStep#Request" ) def rowsNode = holder.getDomNode("//Rows") // return a Rows Node def updateRequestDoc = rowsNode.getOwnerDocument() // return a Document // Clean up previous inserts while (rowsNode.hasChildNodes()) { rowsNode.removeChild(rowsNode.getFirstChild()) } // Skip the header for (int i = 1; i < sheet.getRows(); i++) { Cell[] cells = sheet.getRow(i) if (cells.length > 0) { // Append Row node to the Rows Node def rowElement = updateRequestDoc.createElement("Row") rowsNode.appendChild(rowElement) // Populate the Row node with all the "available" cells for that row (blank elements are skipped) for (int j = 0; j < cells.length; j++) { String cellContent = cells[j].getContents() // Select the tag name based on the index in which it is parsed from the Excel document if (!cellContent.isEmpty()) { String tagName = null switch(cells[j].getColumn()) { case 0: tagName = 'Col1' break case 1: tagName = 'Col2' break case 2: tagName = 'Col3' break default: break } if (tagName != null && !tagName.isEmpty()) { def currentElement = updateRequestDoc.createElementNS(tagName) def currentTextElement = updateRequestDoc.createTextNode(cellContent) currentElement.appendChild(currentTextElement) // Get the last Row node and add the field element to it def rowNode = rowsNode.getLastChild() rowNode.appendChild(currentElement) } } } } } holder.updateProperty(true) workbook.close() 
  • Как создать файл xlsx из XML, используя XSLT в java
  • doble zero в первом из целого числа, не показанного в xml
  • Форматирование шрифтов внутренних элементов Excel с помощью XML
  • листы разделяют многострочный результат importXML
  • C # / WPF: рендеринг HTML из строки в элемент управления WPF
  • Excel - Денормализованные данные
  • Как использовать python для управления файлом загружаемого файла?
  • Невозможно создать XML, используя данные из листа Excel с библиотекой LXML Python
  • Есть ли способ в Excel 2013 указать ключ или комбинацию клавиш (A keytip!) Для использования в сочетании с «Alt», чтобы выбрать вкладку ленты в excel?
  • Как узнать, существует ли узел в xml перед добавлением другого?
  • Поддержание иерархии из XML в файл Excel - Java
  • Interesting Posts

    Каков наилучший и быстрый способ записи в файл Excel с помощью C #?

    Как скопировать лист Excel в текстовый контейнер

    Создавать диаграмму excel из интеллектуального маркера

    Вперед Свернуть в строке Excel с помощью Apache POI

    java excel взаимодействие

    Экспорт PHP в двоичный файл Excel – кодировка символов UTF-8

    Сортировка содержимого файла xls по нескольким столбцам с типом данных

    Как получить отображаемое значение вместо фактического значения в Excel?

    Экспорт Excel в MySQL – каждую неделю обновления и проблемы ограничения

    Вычисленный столбец в DAX для отображения текущей BusinessArea

    Лучший модуль Python для чтения данных из .xlsx

    Текст ячейки Excel не отображается в следующей пустой ячейке

    Автоматическое создание текстовых полей на основе количества строк

    Excel VBA Скопируйте с одного листа на новый, сохранив форматирование и значения

    Как передать текст строки динамического диапазона в запрос SQL запроса IN в EXCEL VBA

    Давайте будем гением компьютера.