Selenium 和 Jenkins,测试套件在命令行而不是在 jenkins 上工作
Selenium and Jenkins, test suite works in commandline not on jenkins
我有一个 Selenium 独立服务器,我 运行 一个简单的测试套件,在命令行中有一个简单的测试用例,它可以工作,这是命令行:
java -jar D:\POC\selenium-server-standalone-2.45.0.jar -Dhttp.proxyHost=XXXX -Dhttp.proxyPort=8080 -Dhttp.proxyUser=XXXX -Dhttp.proxyPassword=XXXX -htmlSuite *firefox http://XXXXX D:\Users\XXXX\Desktop\test_selenium.html D:\Users\XXXX\Desktop\result_selenium.html -firefoxProfileTemplate "C:\Users\XXXXX\AppData\Roaming\Mozilla\Firefox\Profilesyd4vpna.selenium" -debug
jenkins 使用相同的命令运行 测试,这里是 selenium 结果文件:
info: Starting test /selenium-server/tests/test_case_selenium.html
info: Executing: |open | /index.php/fr/ | |
warn: currentTest.recordFailure: Timed out after 30000ms
info: Executing: |clickAndWait | css=li.item-175.first > a.subMenuBtn > span | |
error: Element css=li.item-175.first > a.subMenuBtn > span not found
warn: currentTest.recordFailure: Element css=li.item-175.first > a.subMenuBtn > span not found
当我阅读命令行日志时,Jenkins 和命令行不同于 firefox 启动。在命令行上我可以看到 firefox 弹出,而不是 jenkins。
没有 -debug,jenkins 停止在 "checking resource aliases"。
我以管理员身份为 jenkins 启动了 tomcat,但仍然遇到问题。
有什么想法吗?
从所引用的路径来看,您的 Selenium 服务器似乎处于 Windows 环境中。
由于 Selenium 与桌面交互,请确保您的 Jenkins 服务 运行ning 所在的用户帐户具有执行此操作的适当权限。 (即,运行 将其作为命名帐户并通过计算机管理/服务授予该帐户对桌面的访问权限)。
这可以解释为什么您在命令行(作为您的用户帐户)中看到与在 Jenkins 中(作为 Jenkins 服务用户帐户)不同的行为 运行。
您可以尝试使用 js 代码修复此错误。 JS 重定向。作为:
storeEval window.location="http://yourWebsiteToOpen.com"; js
回显 ${js}
至少对我们有帮助。
我有一个 Selenium 独立服务器,我 运行 一个简单的测试套件,在命令行中有一个简单的测试用例,它可以工作,这是命令行:
java -jar D:\POC\selenium-server-standalone-2.45.0.jar -Dhttp.proxyHost=XXXX -Dhttp.proxyPort=8080 -Dhttp.proxyUser=XXXX -Dhttp.proxyPassword=XXXX -htmlSuite *firefox http://XXXXX D:\Users\XXXX\Desktop\test_selenium.html D:\Users\XXXX\Desktop\result_selenium.html -firefoxProfileTemplate "C:\Users\XXXXX\AppData\Roaming\Mozilla\Firefox\Profilesyd4vpna.selenium" -debug
jenkins 使用相同的命令运行 测试,这里是 selenium 结果文件:
info: Starting test /selenium-server/tests/test_case_selenium.html info: Executing: |open | /index.php/fr/ | | warn: currentTest.recordFailure: Timed out after 30000ms info: Executing: |clickAndWait | css=li.item-175.first > a.subMenuBtn > span | | error: Element css=li.item-175.first > a.subMenuBtn > span not found warn: currentTest.recordFailure: Element css=li.item-175.first > a.subMenuBtn > span not found
当我阅读命令行日志时,Jenkins 和命令行不同于 firefox 启动。在命令行上我可以看到 firefox 弹出,而不是 jenkins。
没有 -debug,jenkins 停止在 "checking resource aliases"。
我以管理员身份为 jenkins 启动了 tomcat,但仍然遇到问题。 有什么想法吗?
从所引用的路径来看,您的 Selenium 服务器似乎处于 Windows 环境中。
由于 Selenium 与桌面交互,请确保您的 Jenkins 服务 运行ning 所在的用户帐户具有执行此操作的适当权限。 (即,运行 将其作为命名帐户并通过计算机管理/服务授予该帐户对桌面的访问权限)。
这可以解释为什么您在命令行(作为您的用户帐户)中看到与在 Jenkins 中(作为 Jenkins 服务用户帐户)不同的行为 运行。
您可以尝试使用 js 代码修复此错误。 JS 重定向。作为:
storeEval window.location="http://yourWebsiteToOpen.com"; js 回显 ${js}
至少对我们有帮助。