我有自动化测试设置,它在Windows上的3个浏览器中运行产品测试:IE 11,Chrome和Firefox(尝试了55.0.3和56.0.b7)。 手动运行的测试在特定用户的特定机器上的所有3个浏览器中都能正常运行。
但是如果使用从同一用户运行的Windows服务的Jenkins slave运行测试,它只适用于IE 11和Chrome,但在开始时就失败了。 由于Firefox是从Windows服务运行的,因此没有用户界面,因此我无法获得Firefox需要的工作。
我怀疑它会挂起一些对话框,例如“你想让我成为默认浏览器吗?”。
对于测试配置文件,about:config
中的特定设置设置为false,但我无法在任何地方找到此类对话框的完整列表,因此我无法确定是否已关闭所有这些对话框。
主要问题是我看不到问题:如果我为Jenkins slave启用“允许服务与桌面交互”,它就可以正常工作了。不幸的是,不可能为Jenkins slave保留此选项,因为它必须从特定用户运行,并且没有这种选项。
如果你看不到浏览器,你知道如何调试Firefox需要的东西吗?
我已经尝试使用NSPR_LOG_MODULES=all:5
来捕获Firefox日志
NSPR_LOG_FILE=<path-to-log>
但在日志中找不到任何线索。
我还能做些什么来找到问题的根本原因? 我可以远程连接到运行Firefox以查看其执行或等待的内容吗? 我可以捕获其他日志吗?
某些测试设置详情
构建系统基于Jenkins,特定步骤通过Windows 7计算机上的Jenkins slave运行,作为特定用户的Windows服务运行。 测试是node.js脚本,它们执行以下步骤:
<full path to firefox>/firefox.exe -no-remote -profile <full-path-for-prepared-profile> <url-to-test-page>
)如果失败,第3步的请求永远不会出现,因此看起来Firefox由于未知原因无法加载页面。
答案 0 :(得分:0)
经过长时间的长期调查后,我的同事找到了根本原因以及如何解决问题(如果更准确的话,可以解决这个问题)。
似乎在Bug1400637这种情况发生并在Firefox v57.0中解决它需要在4
中将about:config
设置为about:crashes
。
另外我已经了解到在Firefox中出现这样的问题值得查看{{1}},它有助于找到根本原因甚至找到解决方案。