2017-08-30 33 views
0

我有一个Jenkins项目,在一台从机上运行自动化测试。但是,当我将连接设置为从属节点作为Windows服务时,并在该连接上运行项目时,构建本身将“成功”(有时),但我的测试将无法正常运行。当构建成功时,控制台输出看起来像一切都很好;我知道这不是它应该如何,因为Selenium网络浏览器在执行期间通过服务连接完成时不会在从属机器上运行。有一次,我想这可能是因为将slave-agent作为Service安装,将所有关联的文件放在默认情况下从属节点所在的同一目录中,但是当我将该路径更改为Service的可执行文件并移动了所有的文件,它仍然会连接,并且该项目仍然不会按照它应该运行。当通过Windows服务连接从站时,Jenkins项目没有正确运行?

只要我删除服务,并从我的奴隶机手动启动连接,一切都按预期进行。

有谁知道为什么会发生这种情况?或者,如果没有,您是否知道在启动时连接的替代方案?预先感谢您的建议/想法。

+0

您是否已正确设置权限。从属任务使用本地帐户运行,该帐户可能无法访问您尝试使用的路径或工具。作为后台服务,您可能还需要允许该服务与桌面进行交互。 –

+0

我不确定 - 我得看看更多。谢谢。 – scoffin

+0

@StevenScott,你知道这种情况(构建成功,报告是关于测试结果生成的)是否意味着测试正在无端运行?无论我是否将其作为服务运行,控制台输出都是相同的;唯一的区别是我实际上并没有看到Selenium运行在slave上。如果他们没有头脑,那实际上可能是一件好事,但我需要弄清楚是这种情况,还是詹金斯向我展示了看起来像一个成功的无头跑步。 – scoffin

回答

0

只是提出我的意见给一个答案,所以你能接受它,你表明了该解决的问题,应该让EASI呃让别人跟随。

您是否正确设置了权限?从属任务使用本地帐户运行,该帐户可能无法访问您尝试使用的路径或工具。作为后台服务,您可能还需要允许该服务与桌面进行交互。

服务将不会在计算机上显示运行测试,除非您启用该复选框,以使服务能够与桌面交互:

interact with the desktop

0

对于任何可能有此问题的人,我想发布我最终使用的解决方案(我不接受它作为此特定问题的答案,因为这是一个解决方法;但是,@StevenScott已在上面发表的评论中将这项工作作为服务的答案)

我固定了我创建的服务并制作了一个计划任务,它利用批处理脚本来连接JNLP文件。有一个命令Jenkins中的从节点页面有一个命令行选项,但这在批处理文件中不适用于我;相反,我只是简单地将它写入光盘到一个已经包含slave-agent.jnlp副本的目录中,然后从那里运行它:slave agent batch script screenshot

为此,您需要禁用弹出窗口当您运行slave-agent(询问您是否要运行该程序)时出现。

任务的设置应包括以下内容:

  • 常规设置:“运行,只有当用户登录”
  • 触发器:“在登录”(指定用户帐户)
  • 操作:“启动程序”(指定批处理脚本的位置)
相关问题