gpt4 book ai didi

selenium - Grails cucumber 和 Geb - 在 firefox 和 cucumber 方法中运行测试

转载 作者:行者123 更新时间:2023-12-02 14:30:28 25 4
gpt4 key购买 nike

我已将此用作 cucumber 的指南以及如何使用 Geb Github hauner grails-cucmber example

我不确定这是否是正确的方法,我过去使用过 Geb ......

测试将从 [此处的某个名称]Spec.groovy 运行,该 Spec.groovy 将扩展 GebReportingSpec.... 使用 Geb 页面模型

相反,测试是通过 cucumber 从 StepDef 运行的......我不太确定,如何集成屏幕截图,我想你要手动进行:/

我无法在 Windows 7 下使用 Firefox 版本 39、40、41、42 进行此操作。我甚至与其他人一起管理过 IE!我无法在Linux下进行检查。最终目标是使用 Selenium 网格。两者都能够在本地和远程运行。

BuildConfig.groovy

def gebVersion      = "0.12.2"
def seleniumVersion = "2.48.2" //2.45.0
def cucumberVersion = "1.2.0"

repositories {
... (snippet)

mavenRepo "http://oss.sonatype.org/content/repositories/snapshots" //Geb snapshot
}

dependencies {
test "org.grails:grails-datastore-test-support:1.0.2-grails-2.4"

// Geb / Spock // http://www.gebish.org/manual/current/#grails
test "org.gebish:geb-spock:$gebVersion"
test "org.seleniumhq.selenium:selenium-support:$seleniumVersion"
test "org.seleniumhq.selenium:selenium-firefox-driver:$seleniumVersion"
test "org.seleniumhq.selenium:selenium-ie-driver:$seleniumVersion"
test "org.seleniumhq.selenium:selenium-chrome-driver:$seleniumVersion"
test "org.seleniumhq.selenium:selenium-remote-driver:$seleniumVersion" //Needed by phantomjsdriver
test "org.spockframework:spock-grails-support:0.7-groovy-2.0"
test("com.codeborne:phantomjsdriver:1.2.1") {
transitive = false // phantomjs driver pulls in a different selenium version
}
}

plugins {
test ":geb:$gebVersion"
test ":cucumber:$cucumberVersion
}

CucumberConfig.groovy
cucumber {
features = ["test/functional/cucumber/features"]
glue = ["test/functional/cucumber/steps", test/functional/cucumber/hooks", "test/functional/cucumber/support"]
tags = ["~@ignore"]
}

支持/env.groovy
def bindingUpdater
def activeBrowser

Before { scenario ->
activeBrowser = new Browser()
bindingUpdater = new BindingUpdater(binding, activeBrowser)
bindingUpdater.initialize()
}

After { scenario ->
bindingUpdater?.remove()
}

已编译 Gherkin 功能的示例片段
Given(~/^User goes to SomePage$/) { ->
// Write code here that turns the phrase above into concrete actions
to SomePage
at SomePage
}

(附注 intellij 并没有发现 Geb 存在于此的事实,以防其他人遇到此问题)

编辑 - 包括 配置
baseNavigatorWaiting = true
atCheckWaiting = true
reportsDir = "target/geb-reports"

driver = {
System.setProperty('webdriver.firefox.bin', 'C:\\Program Files (x86)\\Mozilla Firefox 41\\firefox.exe')

//http://docs.seleniumhq.org/docs/04_webdriver_advanced.jsp#using-a-proxy
org.openqa.selenium.Proxy proxy = new org.openqa.selenium.Proxy([autodetect:true]);

DesiredCapabilities cap = new DesiredCapabilities();
cap.setCapability(CapabilityType.PROXY, proxy);

def driverInstance = new FirefoxDriver(cap)
driverInstance.manage().window().maximize()
driverInstance
}

...(snipped other enviroments/functionality)

最佳答案

Grails 2.x(据我所知)不支持在测试报告中添加屏幕截图。

我做了一个快速测试,发现了两种获取屏幕截图的可能性。我用 geb sample 测试了两者插件的:

cucumber html报告

CucumberConfig.groovy

cucumber {
// the other settings
plugins = ["html:target/results"]
}

添加它会告诉 cucumber 在 target/results 中创建一个 html 报告。 .
要将屏幕截图添加到您在 After 中创建的报告中钩子(Hook)并将其添加到报告中:

env.groovy
import cucumber.api.Scenario
import org.openqa.selenium.OutputType

After () { Scenario scenario ->
def screenshot = browser.getDriver().getScreenshotAs(OutputType.BYTES)
scenario.embed(screenshot, 'image/png')

bindingUpdater.remove ()
}

这将创建一个包含屏幕截图的测试报告。

报告

可以调用 browser一个步骤的对象:
Given(~/^User goes to SomePage$/) { ->
to SomePage
at SomePage
browser.report('SomePage')
}

html/屏幕截图将被写入 target/test-reports/geb .
After钩子(Hook)也可以:
After () { Scenario scenario ->
browser.report(scenario.name)

bindingUpdater.remove ()
}

关于selenium - Grails cucumber 和 Geb - 在 firefox 和 cucumber 方法中运行测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33741228/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com