在 Windows XP 上大批量运行时,Python selenium webdriver 测试导致“严重错误”

Posted

技术标签:

【中文标题】在 Windows XP 上大批量运行时,Python selenium webdriver 测试导致“严重错误”【英文标题】:Python selenium webdriver tests causing "serious error" when run in large batches on windows XP 【发布时间】:2013-01-23 12:30:38 【问题描述】:

我们在一组测试站上运行一堆 Python 测试脚本。测试脚本与这些测试站上的硬件单元接口,因此我们被困在每个站一次运行一个测试脚本(我们无法虚拟化所有内容)。我们构建了一个工具来将测试分配给不同的站点并报告测试结果 - 这使我们能够将数千个测试排队并让它们在一夜之间运行,或者运行任何时间。

有时,我们发现测试站会退出集群。当我远程登录它们时,我得到一个黑屏,然后它们重新启动,然后在登录时我被通知 Windows XP 出现“严重错误”。事件日志包含此错误的记录,其中指出 Category: (102)Event ID: 1003

之前,我们发现这是由创建数百个临时 Firefox 配置文件引起的——我们的测试使用 selenium webdriver 来自动化网站交互,并且每次启动新浏览器时,都会创建一个临时 Firefox 配置文件。我们在每次清空这些临时 Firefox 配置文件的测试之间添加了一个清理步骤,但我们仍然发现站点有时会退出,并且总是出现此严重错误并记录在事件日志中。

我想找到这个问题的根本原因,但我不知道该怎么做。我尝试搜索有关如何读取事件日志条目的信息,但没有找到任何有用的信息。我愿意接受有关调试此问题的方法的任何建议。

【问题讨论】:

1003 仅表示机器蓝屏,至少根据我的发现。第一个参数是错误代码,它应该开始帮助您缩小正在发生的事情的范围。还要寻找伴随的 1001 事件,因为文档建议可以在那里经常找到其他相关信息。 谢谢。好的 - 我找到了 1001 个事件,它们是保存转储。我已经下载、安装并运行了 dumpchk.exe 程序,该程序打印出“32 位内核迷你转储分析”页面,其中包含 DUMP_HEADER32、TRIAGE_DUMP32、内核信息和卸载模块部分。不幸的是,这对我来说没有任何意义。 您可以将示例转储发布到 pastebin 或其他内容吗?另外,温度配置文件的根本原因究竟是什么?你在填充硬盘吗?遇到 I/O 错误或坏的驱动器扇区或其他什么?内存不足? 这是一个例子:pastebin.com/dsquKgJf 当时的理论是临时配置文件正在填充 HD,但这对我来说没有意义,因为重新启动不会将这些文件删除到我的知识。内存不足会更有意义,但在这种情况下,删除临时文件并不能解决问题。我不是实施该解决方案的人,但我已验证该解决方案是删除临时 Internet 文件。 好吧,这是你的问题;你需要控制自己的机器。与 IS 讨论为这些实验室机器建立一套不同的策略。随机获取更新推送给它们并在其上运行安全扫描的机器并不能成为良好的自动化测试奴隶。您正在测试一个网站,而不是 McAfee,因此您的系统需要这样配置。 【参考方案1】:

我之前在使用 Firefox 时遇到过类似的问题。我们很少能成功地捕获一台机器,它只是没有关闭浏览器会话。因此最终蓝屏死机。显然,这是 webdriver、firefox 或 XP(我们也在使用)中的一个错误。我们通过在每个单独的测试之间积极杀死每个 firefox 进程来解决它。这对我们有用。而且因为您没有并行运行测试,所以它也适用于您。我所说的激进是指用斧头穿过它。相当于killall -9 firefox 的窗口。因为这些会话没有响应。

至于根本原因?特定版本的 Firefox 没有出现此问题。但我们从未真正设法正确调试它。调试非常困难,因为它在短期测试运行下无法重现,而且一旦出现问题,它确实会导致严重崩溃。

【讨论】:

以上是关于在 Windows XP 上大批量运行时,Python selenium webdriver 测试导致“严重错误”的主要内容,如果未能解决你的问题,请参考以下文章

在 Windows XP 上运行时 TextBox.Text 绑定错误

是否可以在 Windows XP 上运行 CoreCLR?

如何在 Windows XP 上注销之前运行我的程序?

在 Visual Studio 中使用 XP 工具集编译时出现路径空间的 Windows XP 运行时问题

如何在 xp 和 windows 7 上运行 SWT 应用程序

在 XP 和 Windows 7 上的外部硬盘驱动器上运行 xampp