About Me

My photo
Have an overall 13 + yrs of experience Currently working as an Senior Architect.Expertise in design,implementation of Automation frameworks for Opensource automation tools like Selenium,Jmeter, Webdriver,Appium, Robotium Expertise in integrating Test & ALM Management tools like Rally,Qmetry,JIRA-Zephyr with Automation frameworks Expertise in design and developmenet Mobile Automation frameworks for tools like Appium, Robotium Remote Control,Cucumber BDD,Manual Testing

Friday, July 15, 2011

White: Windows Desktop Applications Automation

I have been experimenting on various Windows automation tools and have been looking for good tools which can support Windows desktop applications Automation. Certainly, we have some very good automation tools readily available in the market like QTP. I started out looking for some open source tools and came across some popular open source tools like Auto IT and Auto hot key. Being experienced with various open-source Automation tools, first thing that I would have in my mind from windows desktop application automation context are:
·         Tool Maintainability
·         Tool Integration
·         Programming Language Integration
·         Version Control of test scripts
·         Test Script Continuous Integration
·         Object Oriented framework support
·         Test Framework Integration (like Junit and Nunit)
·         Support for Win forms, Dotnet based WPF...

Tools like Auto IT and Auto Hot Key can be used at a very high level of Automation and does not support the powerful Object Oriented Scripting and Test Frameworks. One such open source tool which supports all the above points is WHITE.

White is a framework for automating rich client applications based on Win32, WinForms, WPF, Silverlight and SWT (Java) platforms. It is a .NET based automation tool and does not require the use of any proprietary scripting languages. Tests/automation programs using White can be written with whatever .NET language, IDE and tools you are already using. White provides a consistent object-oriented API, hiding the complexity of Microsoft's UI Automation library (on which White is based) and windows messages.
I prepared out a matrix which has list of basic window objects where I targeted to automate these objects as an initial analysis on White. 

                                                                 Windows Object Matrix
Next thing that I had in my mind is a sample application hosting all the above windows objects. Quickly, I got C# express edition installed which is a lite and free version of Visual Studio releases. So I started developing a sample dotnet application in C# and targeted it with White API and was able to automate most of the User actions (like click, multi select.) on these objects and White seems to be promising for all kinds of user actions that can be performed on the windows applications.


Also I tried White on one of our windows project developed in dotnet having WPF forms and White seems to be supporting most of the objects with in that application. On Further analysis on White, it also supports browser automation. 


In continuation to this blog I would like share my experiences on the following which I would be posting in my next blog
·         Setting up dev environment for White API (Plz Refer to blog Setting up WHITE with Visual C# Express edition and Nunit assembly with Sample )
·   Handling different components like Textbox, Data Grid, List View, Tree, and File Dialogues, browser automation, Radio buttons, Check boxes and Buttons etc..;
·         Integrating Nunit framework
·         Generating HTML Test Result Reports

















3 comments:

  1. Hi,

    I am using selenium with c# and unit frame work. I am facing a problem with IE9 download issue. When I click on download in my application when using ie9 browser its asking Open, save, Cancel pop is displayed at bottom of the page.

    for above issue how to handle with white tool.

    Please suggest me . It helps me a lot.

    Thanks,
    Balaji

    ReplyDelete
  2. Thanks for sharing the details and advantages that are associated with white. Good to know and it is really helpful, as this is the first and most important question which tool and why to use for start automating. After going through various links on stackoverflow and your article i feel white is a good tool.

    Since this article is an old one , it would be great if you can confirm if it still holds good.

    ReplyDelete