2

I am working on finding an automated testing tool for a POC project at my organisation. In past I have worked on automation of desktop and web applications using Selenium,QTP and CodedUI. These tools are really powerful to perform automation in their own domains.

Problem: The application is a desktop app installed on your computer, the UI is HTML based which is embedded inside the desktop window. I tried using Spy++ to find window elements but can't get any elements on the screen (Links or labels etc.). The application communicates with remote services using JS and JSON (For regular updates and other data transfer purposes).

I want to know if anyone can direct me to a reliable tool which can be implemented in our continuous build environment and is not heavily dependent on the record and play type (hard coded) feature because then it would be impossible to use it again. Also it will be great to use languages such as C#, Java or Python so that the learning curve is not so steep.

My Analysis till now and preference in descending order.

Tool Name

  1. Coded UI
  2. Robot Framework
  3. QTP
  4. Silktest(silk4J)
  5. QTWebkit test
  6. RationalTest
  7. Squish

Adding a screen shot of the desktop application window and HTML Code used rendered inside. enter image description here

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html><head>  
<meta http-equiv="Content-Type" content="text/html; charset=ISO8859-1">

<!-- Scripts -->
<script type="text/javascript" src="../CommonScripts/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="../CommonScripts/api.js"></script>
<script type="text/javascript" src="../CommonScripts/log.js"></script>
<script type="text/javascript" src="../CommonScripts/utils.js"></script>
<script type="text/javascript" src="../CommonScripts/json.js"></script>
<script type="text/javascript" src="../CommonScripts/SoftwareManager.js"></script>
<script type="text/javascript" src="../CommonScripts/FulfillmentApi.js"></script>
<script type="text/javascript" src="../CommonScripts/messagebox.js"></script>
<script type="text/javascript" src="../CommonScripts/ui.js"></script>
<script type="text/javascript" src="../CommonScripts/tier.js"></script>
<script type="text/javascript" src="FulfillmentUi.js"></script>
<!-- CSS -->
<link type="text/css" rel="stylesheet" href="../CommonScripts/ui.css">
<link type="text/css" rel="stylesheet" href="FulfillmentUi.css">
</head>
<body id="UI/SOFTWARE">
<div id="container">
  <div id="header">
     <img src="../images/OP-logo.png" id="logo" alt="B">
     <ul id="navList">
     <li class="current  first">
     <a href="C:\Program Files (x86)\Al\Service Agent\5.9.9.3130.1\resources\UiSections\SoftwareSection\FulfillmentUi.html">
     <span class="arrow"></span>Software</a></li>
     <li class=" "><a href="C:\Program Files (x86)\Al\Service Agent\5.9.9.3130.1\resources\UiSections\MessagesSection\MessagesUi.htm">
     <span class="arrow"></span>Messages</a></li>
     <li class="  last"><a href="C:\Program Files (x86)\Al\Service Agent\5.9.9.3130.1\resources\UiSections\PreferencesSection\PreferencesUi.htm">
     <span class="arrow"></span>Preferences</a>
     </li>
     </ul>
  </div> 
  <table id="softwareTable" cellpadding="0" cellspacing="0"><!-- Software Inserted Here --><tbody><tr id="BITR/IS"><td class="name"><img src="../images/icon_default.gif"> 
  <h2>AlS S</h2></td><td class="status"><span>Installation failed.</span></td>
  <td class="action">
  <a href="#" class="button">Retry </a>
  <a href="#" class="button">Cancel </a>
  </td>
  </tr>
  </tbody>
  </table>
</div>
</body></html>
4
  • Is it possible to run the application in an actual browser, just for testing purposes? With what framework is the application developed or packaged? This might help to understand the technology, maybe others have experience with it. Mar 11, 2015 at 22:15
  • @Chetandalal, Could you clarify your requirements? Is your "desktop app" WinForms, WPF, Mac (.app), Java, etc.?
    – kirbycope
    Mar 12, 2015 at 20:02
  • The Application is contained in Winform. The data inside this window is HTML based rendered using JMVC. If I use any spy tool it just recognize the main window instead of elements. I will post the rendered page HTML if required. Mar 15, 2015 at 17:54
  • Did you able to solve your purpose?
    – Anil8753
    Sep 12, 2018 at 7:18

2 Answers 2

1

If your application doesn't provide an interface for object based UI automation (such as MS UIA), which seems that's the case for you, and if you can't follow Andy's very correct suggestion; then you should look for an image processing based tool. Sikuli is the first that comes to mind, being open source and very successful (and probably being used by some mainstream frameworks such as - if I'm not wrong - selenium), but you can direct your search among these criteria.

0

As far as I know there is no such tool to server your need, because your need it not optimized. Obviously there is a critical testability issue in your application. I suggest you to talk to the developers of the application, ask them to provide automation hooks for you. One of the option is to expose the DOM or HTML COM objects to test scripts.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.