首页 > 解决方案 > 在用户登录从属虚拟机之前,Jenkins 作业不会在从属上执行

问题描述

设置:

  1. Master 在 Windows 虚拟机“A”上
  2. 从站位于 Windows 虚拟机“B”上
  3. 从站使用 java -jar agent.jar -jnlpUrl http://path/to/this/slave-agent.jnlp -secret thisisasecret -workDir "C:\my-work-dir"连接到主站
  4. Jenkins Job 执行批处理命令。该命令运行 Nunit 控制台,该控制台执行 selenium 测试

我正在执行的作业是一个硒脚本,它在“B”上打开一个 chrome 实例

这就是我在工作时正在做的事情:

  1. 使用 Windows RDP 登录到“B”
  2. 打开 jenkins 并触发 selenium Job
  3. 我可以看到作业在“B”上执行,并在大约 4 分钟内完成,没有任何问题

这是它不起作用的时候:

  1. 我不登录“B”
  2. 打开 jenkins 并触发 selenium Job
  3. Jenkins界面显示Job正在执行但无限期运行

现在,如果我在作业仍在运行时登录到“B”,一旦我登录,我可以看到 chromedriver cmd 出现,并启动了一个 chrome 实例,作业运行并完成,没有任何问题。

有人知道是什么原因造成的吗?谢谢!

标签: seleniumjenkinsselenium-chromedrivernunitslave

解决方案


我们的测试只有在我登录机器时才通过。原来测试需要交互式桌面。为了保持会话,您可以制作一个 bat 文件,当您注销机器时可以使用该文件以保持会话交互。

tscon %sessionname% /dest:console

参考:
https ://www.automatetheplanet.com/visual-studio-test-agents-cleaning-scripts/


推荐阅读