在用Selenium編寫一些Web測試之後,我現在需要測試REST API。 我想用Selenium驅動我的瀏覽器,並驗證我的網頁瀏覽器中顯示的結果以及啓動我的API網址時生成的結果。 我的API網址處於HTTP模式,答案將採用JSON格式。集成Selenium Web測試和REST API測試
我發現放心:https://code.google.com/p/rest-assured/ 但在跳躍和使用它之前,我想知道是否可以很容易地將它與我的硒測試相結合,以及是否有更好的選擇。
感謝
在用Selenium編寫一些Web測試之後,我現在需要測試REST API。 我想用Selenium驅動我的瀏覽器,並驗證我的網頁瀏覽器中顯示的結果以及啓動我的API網址時生成的結果。 我的API網址處於HTTP模式,答案將採用JSON格式。集成Selenium Web測試和REST API測試
我發現放心:https://code.google.com/p/rest-assured/ 但在跳躍和使用它之前,我想知道是否可以很容易地將它與我的硒測試相結合,以及是否有更好的選擇。
感謝
您可以強制硒等待結果,成爲DOM可用。所以是的,Selenium是一個很好的工具來測試你的REST調用,特別是如果你的結果更新頁面上顯示的HTML。
WebDriver driver = new FirefoxDriver();
driver.get("http://somedomain/url_that_delays_loading");
WebElement myDynamicElement = (new WebDriverWait(driver, 10))
.until(ExpectedConditions.presenceOfElementLocated(By.id("myDynamicElement")));
關於更多examples請參見下頁。
當然可以將REST API集成到WebDriver。我一直在努力工作,它像一個魅力。
服務層功能:
/**
* This function will retrieve the child nodes under the current TG element
* @param webDriver The WebDriver reference
* @param element The Web Element whose child nodes are to be retrieved
* @return List<WebElement> The list of Child Elements for element.
* @throws Exception
*/
public static List<WebElement> getChildElements(WebElement element,WebDriver webDriver) throws Exception {
try{
List<WebElement> elementChilds = element.findElements(By.xpath(GlobalTreeGridValues.TreeGrid.TG_Shared_NextLevelXPath));
System.out.println("Avaialble child nodes for the current node are "+ element.findElements(By.xpath(GlobalTreeGridValues.TreeGrid.TG_Shared_NextLevelXPath)).size());
return elementChilds;
}catch(ElementNotFoundException ex){
System.out.println("Error in getting the XPath "+ ex.getMessage());
return null;
}
}
爲了讀取該數據到Java對象,我們只需要JSON格式化和圖書館像的HttpClient等
我認爲Selenium更適用於UI測試。 對於測試REST API,在我看來有更好的工具。 您可以使用工具REST API Testing,如RestCase,Runscope或vRest。 也有許多休息客戶端可用,如郵遞員等。
Selenium也應該能夠發送AJAX或HTTP請求。這並不回答問題,而是建議替代工具/庫 – prasun
他確實要求替代方案 - 我同意,Selenium當然可以撥打電話;然而,有更好的工具可用於適當的功能API測試。 – mansilladev
正如Krishnam所討論的,這絕對可以通過使用httpclient或類似的。我發現它非常有用利用硒和HttpClient的API代碼的組合,而不是單獨的API測試工具,有以下原因:
很顯然,每個被測試的系統都不同,但這些都是可以幫助您確定這是否適合您的正確方法的一些好處。
嗨凱爾, 感謝您的回答,此腳本僅檢查存在的元素,但如何檢查網頁的內容並將其與API調用的響應進行比較? 乾杯。 Zied – Ziwdigforbugs
@Ziwdigforbugs API調用完成後更新您的HTML。使用Selenium檢查HTML元素。如果您需要更復雜的內容來直接檢查JSON響應,請使用Selenium以外的工具。 – KyleM