我已经使用Selenium和Java沿着TestNG框架建立了一个测试自动化项目。为了管理项目和构建,我使用Maven。当使用Maven命令在本地执行时,测试运行得非常好。然而,当我试图通过Jenkins运行相同的测试时,我遇到了一个问题
错误:
Exception in thread "TestNG-test= Master Runner -5" java.lang.IllegalArgumentException: Input must be set
at org.openqa.selenium.internal.Require.nonNull(Require.java:60)
at org.openqa.selenium.support.ui.FluentWait.<init>(FluentWait.java:94)
at org.openqa.selenium.support.ui.WebDriverWait.<init>(WebDriverWait.java:74)
at org.openqa.selenium.support.ui.WebDriverWait.<init>(WebDriverWait.java:43)
at co......qa.pages.base.BasePage.<init>(BasePage.java:69)
at co......qa.listeners.ListenerClass.onTestFailure(ListenerClass.java:109)
at org.testng.internal.TestListenerHelper.runTestListeners(TestListenerHelper.java:99)
at org.testng.internal.invokers.TestInvoker.runTestResultListener(TestInvoker.java:277)
at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:985)
at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:194)
at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)
at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:829)
浏览器版本:Chrome - 115.0.5790.110,Firefox - 116.0.2,Jenkins 2.401.3
本地测试:我使用Maven命令在本地运行了测试,并确认了它们的成功执行。这表明脚本和WebDriver示例化是正确的和功能性的。
WebDriver兼容性:我确保WebDriver版本与我使用的浏览器版本一致。这是为了防止任何兼容性问题,可能会出现不匹配的版本。
WebDriver管理器:我合并了WebDriver Manager来自动处理WebDriver二进制文件和版本。这是为了在不同的环境中保持一致的WebDriver版本。
尽管做了这些努力,我还是遇到了一个持续存在的问题:通过Jenkins执行测试时,WebDriver示例保持为null。因此,所有测试脚本都无法运行。我正在寻求帮助,以了解空示例问题的根本原因以及解决该问题的任何潜在解决方案。
1条答案
按热度按时间new9mtju1#
请逐一核对下面的内容。从问题中很难理解,但下面的检查应该会为您指出问题所在
**WebDriver示例:**通过Jenkins运行测试时,确保WebDriver示例正确初始化且不为null。
环境差异:您的本地环境和Jenkins环境之间可能存在差异。确保在Jenkins中正确设置所有依赖项、配置和路径。
**Jenkins配置:**确保Jenkins具有访问和运行Selenium WebDriver所需的权限和配置。