jenkins - Jenkins构建无法启动黄瓜测试并超时
问题描述
我是詹金斯的新手。我的基本 Jenkins 配置早先在命令行中运行良好,但由于我确实报告了配置,因此测试不再从 Jenkins 启动。我安装了“电子邮件扩展”和“电子邮件扩展模板”插件,它们开始导致下面的问题(已解释),但我现在已将它们删除,但问题仍然存在。
我在最后一行(下)下看到了纺车,但没有任何反应。
[INFO] -------------------------------------------------------
[INFO] T E S T S
[INFO] -------------------------------------------------------
[INFO] Running cucumber.CucumberRunner
Starting ChromeDriver 2.41.578737 (49da6702b16031c40d63e5618de03a32ff6c197e) on port 8791
Only local connections are allowed.
一段时间后(18-20 分钟),构建超时并显示“无法实例化类 stepDefinitions.LoginSUT”。
[INFO]
[INFO] -------------------------------------------------------
[INFO] T E S T S
[INFO] -------------------------------------------------------
[INFO] Running cucumber.CucumberRunner
Starting ChromeDriver 2.41.578737 (49da6702b16031c40d63e5618de03a32ff6c197e) on port 8791
Only local connections are allowed.
[1556614819.067][SEVERE]: Timed out receiving message from renderer: 600.000
Starting ChromeDriver 2.41.578737 (49da6702b16031c40d63e5618de03a32ff6c197e) on port 8470
Only local connections are allowed.
[1556615421.440][SEVERE]: Timed out receiving message from renderer: 600.000
Starting ChromeDriver 2.41.578737 (49da6702b16031c40d63e5618de03a32ff6c197e) on port 10001
Only local connections are allowed.
[1556616023.903][SEVERE]: Timed out receiving message from renderer: 600.000
7 Scenarios (7 failed)
28 Steps (7 failed, 21 skipped)
30m7.588s
这是 Jenkins 测试结果的快照。似乎有什么东西在阻止它,但我无法弄清楚。任何建议将不胜感激。
我的 CucumberRunner.java 类
//always run this as part of the cucumber class
@RunWith(Cucumber.class)
// additional options for this cucumber class
@CucumberOptions(
features = { // "src/test/resources/features/WebCorporateJourney.feature"//,
"src/test/resources/features/WebRetailJourney.feature" },
glue = { "stepDefinitions" },
plugin = {"com.cucumber.listener.ExtentCucumberFormatter:target/cucumber-reports/report.html" },
monochrome = true)
// bridges between feature file and step definition and help them talk to each
public class CucumberRunner {
@AfterClass
public static void writeExtentReport() {
Reporter.loadXMLConfig(new File("config/report.xml"));
}
}
Edit-1:根据要求添加代码
我的 AbstractDriver.Java 类
public class AbstractDriver {
protected static WebDriver driver;
protected WebDriver getDriver() {
// System.setProperty("webdriver.gecko.driver", "C:\\geckodriver.exe");
System.setProperty("webdriver.chrome.driver", "C:\\chromedriver.exe");
// if driver hasn't instantiated then instantiate it
if (driver == null) {
// instantiates the driver
driver = new ChromeDriver();
// driver = new FirefoxDriver();
}
// returns same instance of the driver
return driver;
}
}
我的 LoginSUT.java 步骤定义
public class LoginSUT extends AbstractDriver {
WebDriver driver = getDriver();
@Given("^user is on website$")
public void user_is_on_website() throws Throwable {
// passing admin credentials
driver.get("http://admin:test@mySUTlink.com/");
}
@When("^user enters credentials$")
public void when_user_enters_credentials() throws Throwable {
// Maximising the Browser window
driver.manage().window().maximize();
// Accepting Cookies
driver.findElement(By.xpath("//*[text()='Accept']")).click();
}
@Then("^user is logged on$")
public void user_is_logged_on() throws Throwable {
boolean isDisplayed = driver.findElement(By.xpath("//*[text()='my text to verify']")).isDisplayed();
if (isDisplayed) {
System.out.println("");
System.out.println("USER VERIFICATION: User logged on successfully");
} else {
System.out.println("USER VERIFICATION: User failed to logon");
}
}
}
编辑 2:命令行的测试正在工作,但通过 Jenkins 失败了
解决方案
在四处寻找解决方案后。我发现 Jenkins 作为 Windows 服务安装在我的机器上,并且允许交互的 Jenkins Logon 属性被禁用。所以我,
打开服务 -> 查找 Jenkins -> 右键单击属性 -> 在登录选项卡下勾选允许服务与桌面交互框
此更改启动了我的黄瓜测试,并且我能够查看在“控制台输出”下运行的测试
推荐阅读
- twilio - 接受电话号码并从 WebForm 启动 AutoPilot 的 Twilio 功能
- google-apps-script - saveAndClose() 抛出服务不可用
- c# - 无法在 .net core 桌面应用程序中获取硬件信息
- android-studio - Cihazın 儿子 konumunu bulmaya çalışıyorum, ancak uygulama çöküyor
- reactjs - 未找到模块:错误:无法解析“加密”(React + Typescript + Webpack)
- c++ - 这是释放内存的安全方法吗?
- guidewire - 如何从guidewire v10中的querybuilder中仅返回选定的列?
- google-apps-script - 无法从脚本编辑器获取访问表单 - 创建编辑表单链接
- java - Vaadin 更改文本字段标签颜色
- java - 如何获取运行 Spring Boot (Spring Web MVC) API(运行时)的 JVM 堆大小?