selenium - 在用户登录从属虚拟机之前,Jenkins 作业不会在从属上执行
问题描述
设置:
- Master 在 Windows 虚拟机“A”上
- 从站位于 Windows 虚拟机“B”上
- 从站使用 java -jar agent.jar -jnlpUrl http://path/to/this/slave-agent.jnlp -secret thisisasecret -workDir "C:\my-work-dir"连接到主站
- Jenkins Job 执行批处理命令。该命令运行 Nunit 控制台,该控制台执行 selenium 测试
我正在执行的作业是一个硒脚本,它在“B”上打开一个 chrome 实例
这就是我在工作时正在做的事情:
- 使用 Windows RDP 登录到“B”
- 打开 jenkins 并触发 selenium Job
- 我可以看到作业在“B”上执行,并在大约 4 分钟内完成,没有任何问题
这是它不起作用的时候:
- 我不登录“B”
- 打开 jenkins 并触发 selenium Job
- Jenkins界面显示Job正在执行但无限期运行
现在,如果我在作业仍在运行时登录到“B”,一旦我登录,我可以看到 chromedriver cmd 出现,并启动了一个 chrome 实例,作业运行并完成,没有任何问题。
有人知道是什么原因造成的吗?谢谢!
解决方案
我们的测试只有在我登录机器时才通过。原来测试需要交互式桌面。为了保持会话,您可以制作一个 bat 文件,当您注销机器时可以使用该文件以保持会话交互。
tscon %sessionname% /dest:console
参考:
https ://www.automatetheplanet.com/visual-studio-test-agents-cleaning-scripts/
推荐阅读
- jsf - adf addpartialTarget 未正确呈现 UI 组件
- c# - 如何通过函数传递类型并使用它来查找所有变量类型?
- roslyn - 如何使用 Roslyn 添加行尾注释
- python - coursera 网站的网页抓取在每次运行中都会产生不同的结果
- php - 如何解决 Codeigniter 3 中的 require 错误
- gnuplot - 如何在gnuplot 4.0中制作圆圈
- r - 基于三个规则合并数据
- report - URL 链接合并字段的 Apex Salesforce 页面参考
- javascript - 为什么 insertmany 不能在交易中使用 mongoos?
- python - Argparse:如何为一个子命令声明多组参数互斥?如何定义几种使用子命令的方式?