在用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