最近,我在虚拟机上使用Selenium WebDriver运行Internet Explorer自动化时遇到间歇性错误。这些测试通过Microsoft Test Manger在虚拟机上运行。我很难弄清楚发生了什么。
对于发生此问题的尝试运行的测试,将记录以下内容:
异常:OpenQA.Selenium.WebDriverException:URL http://localhost:56645/session/2762cafb-d3c9-4d9a-a0a5-05463e69b7b7/moveto向远程WebDriver服务器的HTTP请求在60秒后超时。 ---> System.Net.WebException:操作已超时
当测试失败时,我会写异常消息并将堆栈跟踪记录到文件中。但是在这种情况下,实际上没有堆栈。期待更深的东西。
System.Net.WebException: The operation has timed out
at System.Net.HttpWebRequest.GetResponse()
at OpenQA.Selenium.Remote.HttpCommandExecutor.CreateResponse(WebRequest request)
这是发生故障时来自eventviewer的详细信息:
Log Name: Application
Source: Application Error
Date: 8/28/2015 9:02:09 AM
Event ID: 1000
Task Category: Application Crashing Events
Level: Error
Keywords: Classic
User: N/A
Computer: xxxxxxxxxxxxxxxxxx
Description:
Faulting application name: IEDriverServer.exe, version: 2.44.0.0, time stamp: 0x5449666f
Faulting module name: IED4C2A.tmp, version: 0.0.0.0, time stamp: 0x5449666b
Exception code: 0xc0000005
Fault offset: 0x000a41e6
Faulting process id: 0xf2c
Faulting application start time: 0x01d0e191ad6d3d19
Faulting application path: C:\AutomationDrivers\IEDriverServer.exe
Faulting module path: C:\Users\SACCTO~Z\AppData\Local\Temp\IED4C2A.tmp
Report Id: fd4f5070-4d84-11e5-891b-00155d6e673e
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="Application Error" />
<EventID Qualifiers="0">1000</EventID>
<Level>2</Level>
<Task>100</Task>
<Keywords>0x80000000000000</Keywords>
<TimeCreated SystemTime="2015-08-28T13:02:09.000000000Z" />
<EventRecordID>14302</EventRecordID>
<Channel>Application</Channel>
<Computer>xxxxxxxxxxxxxxxxxx</Computer>
<Security />
</System>
<EventData>
<Data>IEDriverServer.exe</Data>
<Data>2.44.0.0</Data>
<Data>5449666f</Data>
<Data>IED4C2A.tmp</Data>
<Data>0.0.0.0</Data>
<Data>5449666b</Data>
<Data>c0000005</Data>
<Data>000a41e6</Data>
<Data>f2c</Data>
<Data>01d0e191ad6d3d19</Data>
<Data>C:\AutomationDrivers\IEDriverServer.exe</Data>
<Data>C:\Users\TASKBO~1\AppData\Local\Temp\IED4C2A.tmp</Data>
<Data>fd4f5070-4d84-11e5-891b-00155d6e673e</Data>
</EventData>
</Event>
我可以使用Visual Studio内置的测试运行器在本地运行相同的测试,而不会出现任何问题。该虚拟机具有约1.5 Gig的内存,并且在运行测试时永远不会用完一半以上的内存。 CPU保持相当低的状态。
关于要看的东西的想法不多了。任何想法/想法表示赞赏。谢谢。
最佳答案
我写了两篇文章,介绍了在显示Windows错误报告对话框时如何创建良好的故障转储。
第一篇文章基本上描述how to attach a debugger:
.dump /ma seleniumcrash.dmp
如果您不太熟悉调试器,请尝试第二篇文章activates LocalDumps just in time,即:
DumpType
设置为2,并且该文件夹可写(检查NTFS权限)。 一旦有了良好的故障转储,就可以从中获取更多信息,例如调用堆栈和.NET调用堆栈。
事件查看器异常代码是
0xc0000005
,也就是访问冲突。 .NET中的NullReferenceException
。