を助けてください。検証がすべてXML上で行われ、ヘッダーやステータスコードなどではない場合は、SudsLibraryからXML応答を取得してユーザーライブラリに渡すことができます。私はこの作業を手動で行うためにすべての作業を行いましたが、MavenとGroovyとRobot Framework用のプラグインを使用すると、作業が楽になります。
ユーザーライブラリは、コンパイラgroovycを使用して.classファイルにコンパイルする必要があります。ここでは、使い慣れたSoapUIヘルパークラスを使用できます。コンパイルするときにクラスパス上にある必要があります。 SoapUIのインストールフォルダから、bin \ soapui-5.2.0.jarとlib \ *をクラスパスに追加しました。 Robot FrameworkでGroovyスクリプトを使用するには、テストライブラリAPIごとにクラスとパブリックメソッドを使用する必要があります。
package com.example.soapui;
import com.eviware.soapui.support.XmlHolder
public class Verifications {
public void checkResponse(String xml) {
def holder = new XmlHolder(xml)
holder.namespaces["ns1"] = "http://www.webserviceX.NET"
def average = holder.getNodeValue("//ns1:Average[1]")
assert average == "2.5"
}
}
ここでは、公開Webサービスを呼び出し、応答をチェックするためにGroovyスクリプトを呼び出す簡単なテストを示します。
*** Settings ***
Library SudsLibrary
Library Collections
Library com.example.soapui.Verifications
*** Test Cases ***
Simple
Create Soap Client http://www.webservicex.net/Statistics.asmx?WSDL
Set Return Xml True # soap calls from now one will return XML
${dbl array}= Create Wsdl Object ArrayOfDouble
Append To List ${dbl array.double} 2.0
Append To List ${dbl array.double} 3.0
${result}= Call Soap Method GetStatistics ${dbl array}
Check Response ${result} # pass the XML to the user keyword written in Groovy
実行時に、GroovyとSoapUIの両方のjarファイルがクラスパス上にある必要があります。
C:\ws\groovy>jybot groovy.robot
==============================================================================
Groovy
==============================================================================
Simple | PASS |
------------------------------------------------------------------------------
Groovy | PASS |
1 critical test, 1 passed, 0 failed
1 test total, 1 passed, 0 failed
==============================================================================
Output: C:\ws\groovy\output.xml
Log: C:\ws\groovy\log.html
Report: C:\ws\groovy\report.html