SWEA Hangs on (non-standard) AJAX progress panel

8 views
Skip to first unread message

Ian

unread,
Dec 18, 2007, 8:57:11 AM12/18/07
to SWExplorerAutomation
Hi,

After some issues using the default Microsoft AJAX progress indicator
(not being able to click buttons under it even when it is not
displayed) I found an improved version on the internet

http://aspnetresources.com/blog/always_centered_ajax_progress_indicator.aspx

which actually works, and also is always centered on the screen so you
always see it.

It works great with no apparent errors or problems when manually
accessing the web site.

However our automated SWEA tests run via CruiseControl.NET are
randomly failing/hanging.

Running the test suite manually using the Visual Studio debugger it
appears to be either timing out on a WaitForActive or just hanging on
trying to retrieve the value/content of a control.

When debugging and it is either timing out or hanging, IE becomes
unresponsive and when debugging is stopped IE comes back to life.

I know that this improved progress indicator does some clever things
with webresources to deliver it's css and javascript content.

Is this too complicated for SWEA to manage?
Is there anything else I can tell you to help diagnose this problem?

We are using SWEA version 2.0.2.2

Alex Furman

unread,
Dec 18, 2007, 7:55:29 PM12/18/07
to swexplorer...@googlegroups.com
Hi Ian,

To troubleshoot the scene activation problems you can subscribe to Error
event of ExplorerManager. The error message contains full identification
log. You can also subscribe to SceneActivated and SceneDeactivated events to
monitor a scene state transitions. You can also use SWEA HttpLog. The SWEA
HttpLog logs all http downloads and "complete" events.

The SWEA scene identification is triggered by IE complete events. In the
case of AJAX IE doesn't fire any events. SWEA is able to simulate the
complete events for AJAX. Do you check the "Detect AJAX" in project
settings? In some cases the "Detect AJAX" may not work - too much "noise"
(too nmany network calls). In this case it is possible to manually run the
scene identification (Uncheck "Detect AJAX" and "Detect DOM Changes"):

If (!scene.WaitForActive(20000))
{
explorerManager.RunIdentification();
if (!scene.WaitForActive(20000))
throw new IdentificationException();
}

Is it possible to reproduce the problem? I have run
CenteredProgressIndicator example, but I was not able to reproduce the
problem.

Best Regards,
Alex Furman
Webius

Ian

unread,
Jan 8, 2008, 5:56:56 AM1/8/08
to SWExplorerAutomation
We had "Detect AJAX" checked but not "Detect DOM Changes".

I checked "Detect DOM Changes" and tried and also tried it without
either checked and we still had failures.

Below are the exception messages:

************************************************************************************************************
Test:
InsightsLearningAndDevelopmentLtd.WebTest.SWEA.Test.InsightsOnlineTestAutomation.Test012TestReportAdminControlWithDiscovery360
Type: Failure
Message: SWExplorerAutomation.Client.SWException : Failed to get
WebBrowser windows ----> System.Runtime.InteropServices.COMException :
The RPC server is unavailable. (Exception from HRESULT: 0x800706BA)
TearDown : System.Reflection.TargetInvocationException : Exception has
been thrown by the target of an invocation. ---->
System.Runtime.InteropServices.COMException : The RPC server is
unavailable. (Exception from HRESULT: 0x800706BA)


at SWExplorerAutomation.Client.ExplorerManager.GetExplorerWindows()
at
InsightsLearningAndDevelopmentLtd.WebTest.SWEA.Test.InsightsOnlineTestAutomation.HandleException(Exception
inException) in c:\Dev\Current\Insights.root\ILD\WebTest.SWEA\Source
\Test\Tests.cs:line 640
at
InsightsLearningAndDevelopmentLtd.WebTest.SWEA.Test.InsightsOnlineTestAutomation.Test012TestReportAdminControlWithDiscovery360()
in c:\Dev\Current\Insights.root\ILD\WebTest.SWEA\Source\Test
\Tests.cs:line 585
InnerException Stack Trace: at
SWExplorerAutomationLib.ISWExplorerManager.get_BrowserWindows()
at SWExplorerAutomation.Client.ExplorerManager.GetExplorerWindows()
--COMException
at SWExplorerAutomationLib.ISWExplorerManager.get_BrowserWindows()
at SWExplorerAutomation.Client.ExplorerManager.GetExplorerWindows()
--TearDown
at System.RuntimeMethodHandle._InvokeMethodFast(Object target,
Object[] arguments, SignatureStruct& sig, MethodAttributes
methodAttributes, RuntimeTypeHandle typeOwner)
at System.RuntimeMethodHandle.InvokeMethodFast(Object target,
Object[] arguments, Signature sig, MethodAttributes methodAttributes,
RuntimeTypeHandle typeOwner)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj,
BindingFlags invokeAttr, Binder binder, Object[] parameters,
CultureInfo culture, Boolean skipVisibilityChecks)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj,
BindingFlags invokeAttr, Binder binder, Object[] parameters,
CultureInfo culture)
at System.Reflection.MethodBase.Invoke(Object obj, Object[]
parameters)
at NUnit.Core.TestMethod.doTearDown(TestCaseResult testResult)
--COMException
at SWExplorerAutomationLib.ISWExplorerManager.get_IsConnected()
at SWExplorerAutomation.Client.ExplorerManager.DisconnectAndClose()
at
InsightsLearningAndDevelopmentLtd.WebTest.SWEA.Test.InsightsOnlineTestAutomation.CloseBrowser()
in c:\Dev\Current\Insights.root\ILD\WebTest.SWEA\Source\Test
\Tests.cs:line 306

************************************************************************************************************
Tests run: 14, Failures: 1, Not run: 0, Time: 2043.916 seconds
Failures:
1)
InsightsLearningAndDevelopmentLtd.WebTest.SWEA.Test.InsightsOnlineTestAutomation.Test012TestReportAdminControlWithDiscovery360 :
SWExplorerAutomation.Client.SWException : Failed to get WebBrowser
windows
----> System.Runtime.InteropServices.COMException : The RPC server is
unavailable. (Exception from HRESULT: 0x800706BA)
TearDown : System.Reflection.TargetInvocationException : Exception has
been thrown by the target of an invocation.
----> System.Runtime.InteropServices.COMException : The RPC server is
unavailable. (Exception from HRESULT: 0x800706BA)
at SWExplorerAutomation.Client.ExplorerManager.GetExplorerWindows()
at
InsightsLearningAndDevelopmentLtd.WebTest.SWEA.Test.InsightsOnlineTestAutomation.HandleException(Exception
inException) in c:\Dev\Current\Insights.root\ILD\WebTest.SWEA\Source
\Test\Tests.cs:line 640
at
InsightsLearningAndDevelopmentLtd.WebTest.SWEA.Test.InsightsOnlineTestAutomation.Test012TestReportAdminControlWithDiscovery360()
in c:\Dev\Current\Insights.root\ILD\WebTest.SWEA\Source\Test
\Tests.cs:line 585
InnerException Stack Trace: at
SWExplorerAutomationLib.ISWExplorerManager.get_BrowserWindows()
at SWExplorerAutomation.Client.ExplorerManager.GetExplorerWindows()
--COMException
at SWExplorerAutomationLib.ISWExplorerManager.get_BrowserWindows()
at SWExplorerAutomation.Client.ExplorerManager.GetExplorerWindows()
--TearDown
at System.RuntimeMethodHandle._InvokeMethodFast(Object target,
Object[] arguments, SignatureStruct& sig, MethodAttributes
methodAttributes, RuntimeTypeHandle typeOwner)
at System.RuntimeMethodHandle.InvokeMethodFast(Object target, Object[]
arguments, Signature sig, MethodAttributes methodAttributes,
RuntimeTypeHandle typeOwner)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags
invokeAttr, Binder binder, Object[] parameters, CultureInfo culture,
Boolean skipVisibilityChecks)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags
invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at System.Reflection.MethodBase.Invoke(Object obj, Object[]
parameters)
at NUnit.Core.TestMethod.doTearDown(TestCaseResult testResult)
--COMException
at SWExplorerAutomationLib.ISWExplorerManager.get_IsConnected()
at SWExplorerAutomation.Client.ExplorerManager.DisconnectAndClose()
at
InsightsLearningAndDevelopmentLtd.WebTest.SWEA.Test.InsightsOnlineTestAutomation.CloseBrowser()
in c:\Dev\Current\Insights.root\ILD\WebTest.SWEA\Source\Test
\Tests.cs:line 306

************************************************************************************************************
InsightsLearningAndDevelopmentLtd.WebTest.SWEA.Test.InsightsOnlineTestAutomation.Test011TestReportAdminControlWithDiscovery :
SWExplorerAutomation.Client.SWException : Failed to get WebBrowser
windows
----> System.Runtime.InteropServices.COMException : The RPC server is
unavailable. (Exception from HRESULT: 0x800706BA)
TearDown : System.Reflection.TargetInvocationException : Exception has
been thrown by the target of an invocation.
----> System.Runtime.InteropServices.COMException : The RPC server is
unavailable. (Exception from HRESULT: 0x800706BA)
at SWExplorerAutomation.Client.ExplorerManager.GetExplorerWindows()
at
InsightsLearningAndDevelopmentLtd.WebTest.SWEA.Test.InsightsOnlineTestAutomation.HandleException(Exception
inException) in c:\Dev\Current\Insights.root\ILD\WebTest.SWEA\Source
\Test\Tests.cs:line 640
at
InsightsLearningAndDevelopmentLtd.WebTest.SWEA.Test.InsightsOnlineTestAutomation.Test011TestReportAdminControlWithDiscovery()
in c:\Dev\Current\Insights.root\ILD\WebTest.SWEA\Source\Test
\Tests.cs:line 566
InnerException Stack Trace: at
SWExplorerAutomationLib.ISWExplorerManager.get_BrowserWindows()
at SWExplorerAutomation.Client.ExplorerManager.GetExplorerWindows()
--COMException
at SWExplorerAutomationLib.ISWExplorerManager.get_BrowserWindows()
at SWExplorerAutomation.Client.ExplorerManager.GetExplorerWindows()
--TearDown
at System.RuntimeMethodHandle._InvokeMethodFast(Object target,
Object[] arguments, SignatureStruct& sig, MethodAttributes
methodAttributes, RuntimeTypeHandle typeOwner)
at System.RuntimeMethodHandle.InvokeMethodFast(Object target, Object[]
arguments, Signature sig, MethodAttributes methodAttributes,
RuntimeTypeHandle typeOwner)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags
invokeAttr, Binder binder, Object[] parameters, CultureInfo culture,
Boolean skipVisibilityChecks)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags
invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at System.Reflection.MethodBase.Invoke(Object obj, Object[]
parameters)
at NUnit.Core.TestMethod.doTearDown(TestCaseResult testResult)
--COMException
at SWExplorerAutomationLib.ISWExplorerManager.get_IsConnected()
at SWExplorerAutomation.Client.ExplorerManager.DisconnectAndClose()
at
InsightsLearningAndDevelopmentLtd.WebTest.SWEA.Test.InsightsOnlineTestAutomation.CloseBrowser()
in c:\Dev\Current\Insights.root\ILD\WebTest.SWEA\Source\Test
\Tests.cs:line 306

************************************************************************************************************
************************************************************************************************************
************************************************************************************************************

Alex Furman

unread,
Jan 8, 2008, 10:20:29 AM1/8/08
to swexplorer...@googlegroups.com
 
From the traces I can say that the Internet Explorer instance was closed when the call to GetWebBrowser windows was done. Have you tried to place a short Sleep statement before DisconnectAndClose? It could be  possible that IE is closed from javascript.
 
Unfortunately I am not able to reproduce the problem. Do you have any example which reproduces the problem?
 
Best Regards,
Alex Furman


> Date: Tue, 8 Jan 2008 02:56:56 -0800
> Subject: Re: SWEA Hangs on (non-standard) AJAX progress panel
> From: ifr...@insights.com
> To: swexplorer...@googlegroups.com

Ian

unread,
Jan 9, 2008, 6:30:13 AM1/9/08
to SWExplorerAutomation
Hi,

Internet Explorer is definitely not closed as we end up with loads of
orphaned Internet Explorer processes hanging around.

Unfortunately we've removed this panel at the moment to get a release
out so I can't try anything at the moment.

It's a complex page with some custom controls and a treeview from
telerik (http://www.telerik.com/products/aspnet/controls/treeview/
overview.aspx) all wrapped up in an update panel so creating an
example would be problematic.

I suspect that if I just had a page with this update panel then it
would work fine.

Is there any other debugging info that I can provide when we try
adding this update panel back in?

Ian

Ian

unread,
Jan 9, 2008, 6:31:25 AM1/9/08
to SWExplorerAutomation
Hi,

Internet Explorer is definitely not closed as we end up with loads of
orphaned Internet Explorer processes hanging around.

Unfortunately we've removed this panel at the moment to get a release
out so I can't try anything at the moment.

It's a complex page with some custom controls and a treeview from
telerik (http://www.telerik.com/products/aspnet/controls/treeview/
overview.aspx) all wrapped up in an update panel so creating an
example would be problematic.

I suspect that if I just had a page with this update panel then it
would work fine.

Is there any other debugging info that I can provide when we try
adding this update panel back in?

Ian

On Jan 8, 3:20 pm, Alex Furman <alex_f...@hotmail.com> wrote:

alex

unread,
Jan 9, 2008, 9:55:41 AM1/9/08
to SWExplorerAutomation
Hi Ian,

Is the orphaned Internet Explorer process visible? When IE instance
closes it notifies SWExplorerAutomationClient. It may be the case when
IE closes without the notification (some internal crash). It may
explain why DisconnectAndClose failed. Do you use any third party
Internet Explorer add-ons? It could be better to switch them off. As a
temporary workaround you can try killing the orphaned Internet
Explorer process using explorerManager.ProcessId.

Best Regards,
Alex Furman
Webius


> > Alex Furman- Hide quoted text -
>
> - Show quoted text -
Reply all
Reply to author
Forward
0 new messages