2017-07-07 61 views
1

是否有可能使用REST Assured庫來測試SOAP Web服務? 我有一堆SOAP UI中的測試套件,我需要檢查是否有使用REST Assured的可能性。 任何人都可以建議,如果這是可能的? 非常感謝您的任何意見。使用REST Assured庫來測試SOAP Web服務

回答

0

REST-放心不具備測試SOAP服務的直接支持,但可以通過手動設置SOAPActionContent-Type頭,做一個HTTP POST等等,那麼你可以在響應運行的XPath斷言像你這樣做正常REST服務中的REST保證。

我建議你也評估Karate,因爲它內置了對SOAP的支持,同時也使XML操作變得更容易。

0

在這裏,我告訴你一個例子

頁眉SOAPActionContent-Type強制性。你需要找到至極你的情況SOAPAction頭,有時是最後的下一部分「/」在URL中的代碼

import static io.restassured.RestAssured.given; 
import io.restassured.RestAssured; 
import io.restassured.path.xml.XmlPath; 
import io.restassured.response.Response; 

XmlPath xmlPath; 
Response response; 

RestAssured.baseURI = "http://url"; 
response = 
       given() 
        .request().body("xml_text").headers("SOAPAction", "findSoapAction", "Content-Type", "text/xml"). 
       when() 
        .post("/path"). 
       then() 
        .assertThat() 
         .statusCode(200).extract().response(); 
System.out.println(response.asString()); 

//next we get the xmlPath of the response 
xmlPath = response.xmlPath(); 
//and get the value of a node in the xml 
String nodeValue= xmlPath.get("fatherNode.childNode"); 
System.out.println(nodeValue); 

元素,你應該設置:

RestAssured.baseURI = "http://url"; 

是的網址,其中,使所述請求

given().request().body("xml_text") 

的參數Ô體()是與所述請求

012的XML字符串

「findSoapAction」是一個帶有您應該猜到的SOAPAction頭的值的字符串,「text/xml」是您應該設置爲Content-Type頭的內容。

xmlPath.get("fatherNode.childNode"); 

返回節點的值。例如:

<fatherNode> 
    <childNode>value of the node</childNode> 
</fatherNode> 

GET( 「fatherNode.childNode」)返回

「的節點的值」