У меня проблема.Soap UI ad a Node to Request (Groovy)
Так я получил WSDL так:
<node1>
<subnode1>data</subnode1>
<subnode2>data</subnode2>
<subnode3>data</subnode3>
<subnode4>data</subnode4>
<!--Zero or more repetitions:-->
<subnode5>
<subsubnode1>data</subsubnode1>
<subsubnode2>data</subsubnode2>
<subsubnode3>data</subsubnode3>
</subenode5>
</node1>
для тестирования через SoapUI, проблема теперь, что subnode5 может иметь один или более чем reptions, это зависит от базы данных. Теперь мои вопросы - как можно изолировать это, чтобы сделать повторения динамическими.
так я стараюсь т добавьте subnode5 с помощью заводной сценария, как это:
import com.eviware.soapui.support.XmlHolder;
import com.eviware.soapui.support.GroovyUtils;
def groovyUtil = new GroovyUtils(context)
def holder = groovyUtil.getXmlHolder("name#Request")
def parentnode = holder.getDomNode("//node1")
def text = '''
<subnode5>
<subsubnode1>data</subsubnode1>
<subsubnode2>data</subsubnode2>
<subsubnode3>data</subsubnode3>
</subnode5>
'''.stripMargin()
def nodetext = groovyUtil.getXMLHolder(text)
def nodeItem = nodetext.getDomNode ("//subnode5")
parentnode.appendChild(nodeItem, true)
holder.updateProperty()
но я получаю ErrorMessage:
groovy.lang.MissingMethodException: Нет подписи метода: org.apache. xmlbeans.impl.store.Xobj $ ElementXobj.appendChild() применим для типов аргументов: (org.apache.xmlbeans.impl.store.Xobj $ ElementXobj, java.lang.Boolean) значения: [? xml version = "1.0" encoding = "UTF-8"?>, ...] Возможные решения: appendChild (org.w3c.dom.Node) ошибка в строке: 29
то, что я буду добавлен новый ребенка к запросу
<node1>
<subnode1>data</subnode1>
<subnode2>data</subnode2>
<subnode3>data</subnode3>
<subnode4>data</subnode4>
<subnode5>
<subsubnode1>data</subsubnode1>
<subsubnode2>data</subsubnode2>
<subsubnode3>data</subsubnode3>
</subenode5>
--first repition--
<subnode5>
<subsubnode1>data</subsubnode1>
<subsubnode2>data</subsubnode2>
<subsubnode3>data</subsubnode3>
</subenode5>
--second repition--
<subnode5>
<subsubnode1>data</subsubnode1>
<subsubnode2>data</subsubnode2>
<subsubnode3>data</subsubnode3>
</subenode5>
.... and so on
</node1>