使用 Karate 和 selenium webdriver 的能力

Capability of using Karate along with selenium webdriver

一周前我开始使用空手道,这是我的第一个问题。我曾经使用 Spock & groovy 编写 Web 服务测试,放心 & 黄瓜。当我接触空手道时,我觉得它真的很有趣。感谢您的巨大努力。

我发现空手道真的很有能力并且满足了我对自动化 Json 服务的需求。但是,我想知道更多关于这方面的细节。我使用另一个框架以及 groovy、Spock 和 Java。在我的场景中,我需要发送一个 json 请求,从响应中获取事务 ID,然后使用 selenium 网络驱动程序执行 UI 测试。如何轻松地将空手道测试与 selenium 网络驱动程序集成?这是一个示例场景,包括 web 服务和 spock

中的 UI
    given: "Submit  Request and get valid response"
    getResponse("request.template", "/mypersonal")
    assert respStatus == 200
    String myOrderID = getValueFromResponse(orderId)
    verifyMyOrder(myOrderID)

    when: "Start the browser for executing the functionality and Navigate to app"
    WebDriver driver = DriverFactory.getInstance().getWebDriver()
    ObjectFactory oFctry = new ObjectFactory(driver)
    driver.navigate().to(url)
    oFctry.uLogin()
    oFctry.navigateToPersonalFile()

    then: "Validate the File"
    oFctry.searchInInDirectory(myOrderID)
    oFctry.navigateToProductDetailsPage(myOrderID)

    cleanup: "Close the chrome browser"
    DriverFactory.getInstance().removeDriver()

您有 2 个选项,从 Karate 调用 Selenium 驱动程序或通过 Java API.

调用 Karate
  • 使用 Java 库将 Java 代码混合到空手道测试中的示例(在本例中为 JDBC):文档中的 dogs.feature. Also refer to how to call Java
  • 有关如何从 Java 调用空手道的文档:Java API

就个人而言,我更喜欢选项 1 - 这就是您对 Spock 所做的。

编辑:空手道现在支持 Web 浏览器自动化,因此您不再需要 Selenium:The world needs an alternative to Selenium - so we built one