I’m running into an issue and was wondering if anyone might
shed some light on possible solutions I might be missing. We’re using the framework not as a testing
tool but as an entry tool to automate the entry of information into our
Silverlight application. I wanted to
mention this as the nature of what we are doing plays into the number of iterations
any given task must run through before the set is complete.
The set of commands run successfully for the first 60 – 70 items
but at that point WebAii begins to have trouble communicating with Internet
Explorer. After some investigation it
appears that at the point of trouble IE’s memory use has ballooned to over a
gig. By doing nothing but logging in and
then looping back and forth between two Silverlight URLs in our app I can
observe the issue, but attempting the same on other Sites doesn’t seem to
recreate it. For the moment I’m calling
Refresh() on the browser as that seems to drop the memory use down to normal
levels.
I have a theory on what’s happening and was wanted to see if
I may be correct and if so, if there are any better alternatives to simply
calling Refresh(). Our application is
composed of one XAP file which houses a shell which fills itself with content
which is housed in multiple other XAP files.
As I am usually interacting only with one particular section, it is
possible that actions are performed on that section and then an action
resulting in a navigate is performed while the framework is still busy in the
background injecting its connection into other XAPs which the Application is
still trying to load. My guess is that
due to the navigate occurring before the framework is really ready that it is
forgetting about any connections/objects/etc that it was in the process of
constructing and that memory is never reclaimed until IE’s active in-memory
cache is cleared by the refresh (or process termination).
I am waiting until the Browser reports ready, and have gone
so far as to implement a request/response counter/matcher using the WebAii
proxy to supplement Browser ready checks but neither are accurately
representing whether the Silverlight application is actually ready with all the
sub-components loaded.
Is there a better way to determine Silverlight application readiness? I’d like to try and avoid performing element
find checks to determine module loading as I would like to be able to utilize
the same check code everywhere in the app. If this is problematic, is there a way to tell the framework to clear or otherwise refresh itself or the disconnected objects it may have floating in IE's memory without doing a full browser refresh?
Any insight or help is much appreciated.
using Telerik.WebAii.Controls.Html;//using Telerik.WebAii.Controls.Xaml;using System;using System.Collections.Generic;using System.Text;using System.IO;using ArtOfTest.Common.UnitTesting;using ArtOfTest.WebAii.Core;using ArtOfTest.WebAii.Controls.HtmlControls;using ArtOfTest.WebAii.Controls.HtmlControls.HtmlAsserts;using ArtOfTest.WebAii.Design;using ArtOfTest.WebAii.Design.Execution;using ArtOfTest.WebAii.ObjectModel;using ArtOfTest.WebAii.Silverlight;using ArtOfTest.WebAii.Silverlight.UI;namespace SFTQuickStarts_NUnit_CS{ public class Login : BaseWebAiiTest { #region [ Dynamic Pages Reference ] private string loginPage; // path to site private string emulatorPath; // path to emulator private string credentials; // path to file with credentials private string sitePage; // path to file with site page private string login; private string pass; private Pages _pages; /// <summary> /// Gets the Pages object that has references /// to all the elements, frames or regions /// in this project. /// </summary> public Pages Pages { get { if (_pages == null) { _pages = new Pages(Manager.Current); } return _pages; } } #endregionprivate Pages _pages;public Pages Pages { get { if (_pages == null) { _pages = new Pages(Manager.Current); } return _pages; } }Error 1 The type or namespace name 'Pages' could not be found (are you missing a using directive or an assembly reference?) C:\Program Files\Telerik\WebUI Test Studio 2010.3\Samples\WebAii Framework\QuickStarts_NUnit_CS\Login.cs 32 17 QuickStarts_NUnit_CSError 2 The type or namespace name 'Pages' could not be found (are you missing a using directive or an assembly reference?) C:\Program Files\Telerik\WebUI Test Studio 2010.3\Samples\WebAii Framework\QuickStarts_NUnit_CS\Login.cs 39 16 QuickStarts_NUnit_CSOnce the data source is binded to a test, we are able to control the data pointer using the below code.
var row = this.ExecutionContext.ActiveDataRows[1];
var dataString = row["Col1"];
But we are unable to control the data iteration to a particular row, say if we have 5 rows in an excel sheet and using the above code we can make the tool to start from particular row but not control to only particular row.
Impact: Due to this, we are unable to execute a specific row (Only One) out of 10 records available in the test data sheet.We tried to use the below code from forum to bind data sheet dynamically, but not working.
http://blogs.msdn.com/b/mathew_aniyan/archive/2009/04/16/more-on-data-driving-coded-ui-tests.aspx
<DataSource("System.Data.OleDb", @"Provider=Microsoft.Jet.OLEDB.8.0;Data Source=C:\QTP_Scripts\hCue_Refresh_POC\hCue_POC_01\TestProject1\TestProject1\Data\hCue_Refresh.xls;Extended Properties='Excel 8.0;HDR=Yes;IMEX=1'", "Login$", DataAccessMethod.Sequential), TestMethod()> _
Hi,
I am trying to open one Alert dialog and do some operation on it using webAii automation.The scenario is like this:
1.I want to delete a record.So I am selecting one record
2.Clicking on Remove selecetd record button.Onclick of this I am getting one Alert dialog.
3.After clicking on this button the Alert pop up is coming and it is getting closed before the test script goes to next line
4.I am not able to capture the dialog in Dialog monitor
Please help me on this.