所以我们可以执行从前到后的Web UI测试,我们使用Selenium和ChromeDriver自动化页面加载/交互作为我们测试包的一部分.
这在开发人员测试期间(在开发人员的本地计算机上)的行为正常,但是我们正在努力执行这些检查,作为我们持续集成构建的一部分.
我们的服务器厂是* NIX,我们所有的CI基础设施都运行在这些机器上.所以我们可以在Windows下测试Chrome(我们的交付机制),我们已经配置了一个Selenium Grid.当CI测试运行时,他们访问网格,以便找到运行测试的Windows节点.
我们已经安装了Windows桌面,仅用于运行这些测试.这包含我们的Windows 7的标准企业版本.该机器将定期与IT部门的更新策略重新启动.
为了确保Selenium服务器始终运行,我们添加了Selenium服务器(以“节点”模式运行)作为Windows服务.硒服务器配置为启动ChromeDriver以调用模拟的用户交互.
但是,当从CI运行测试时,它们由于超时而失败.我们的工作理论是,正在运行服务的系统用户无法创建交互式窗口.网络搜索提到了“会话0”问题,但对于如何向前推进几乎没有甚至没有建设性的建议.
从交互式会话手动启动Selenium服务器进程不是一个可行的解决方案,因为这导致了脆弱的测试 – 这是由于基础设施问题而不是真正的测试回归而失败的.
当系统重新启动时,我们如何能够通过Windows服务器启动Selenium Server的实例,这样才能启动Chrome实例?
可以轻松完成
NSSM.
服务的安装如下所示:
原文链接:https://www.f2er.com/windows/363746.html服务的安装如下所示:
nssm install seleniumhub java -jar C:\selenium\selenium-server-standalone-2.45.0.jar -role hub -hubConfig C:\selenium\hub.json nssm install seleniumnode java -jar C:\selenium\selenium-server-standalone-2.45.0.jar -role node -nodeConfig C:\selenium\node.json
如果需要,它可以轻松地删除服务:
nssm remove seleniumnode confirm
将目的地添加到nssm到您的PATH变量,并从控制台以admin身份运行