A slideshare presentation


I have found, absolutely occasionally, a set of slides about UIAutomation.

A great presentation, the author highlighted popular and useful features, pros and contras are described well.

Need to put here several notes:

page 9: Timeout = 60. The Timeout is in milliseconds (i.e., 60000) as Microsoft requires in Cmdlet Design Guidelines. They not always follow their rules (for example. the sleep cmdlet uses seconds), so that I created the -Seconds parameter for usability.

page 12: Lack of documentation – yes, it is. Here I need to admit the fact, the constant wish to describe the framework AFTER all features are done. Well, I need to continue documenting.

Last update and still Beta. I disagree on it. There are always workable binaries of a next version and all the binaries go the same testing and release process (and not only pre-versions are usually uploaded with the same quality as the ‘title’ version, but they as a rule contain fixes and improvements over ‘title’/’recommended’ binaries). To me, the version is a set of fixes and new features. If there are only fixes, such binaries simply could not be a new version, if there’s nothing new to offer.

Regarding the phrase ‘still Beta’, in my opinion, ‘release’ is a set of cmdlets and IDE, and improved spy, and several other things. I merely could not call cmdlets ‘release’ as they require knowledge of PowerShell to enter. An average software tester in not a PowerSheller, so that to be called ‘release’ the product should be simpler and more beautiful.

I hope that my position here is clear, and cmdlets are practically ‘release’. However, the full set of software (cmdlets, UIARunner, UIAutomationSpy, missing IDE, embedded test management ,etc ,etc) is not release yet.

I’d like to discuss the page 13 (hey, author), especially the third and the fourth items – I believe that RD (Remote Desktop?) is not a problem, just a place to implement some settings. I use Remote desktop via RemoteApp widely and have no issues here.

The second item is not my fault as I suspect (the framework follows MS UI Automation here), the third item I don’t understand. The first item may need explanation: if the author (as seen on the pictures) tested a wizard, especially a setup wizard, there could be a problem with wizard pages. Wizard switches pages and the handle of window changes. The scripter should get window every step, and this is implemented in wizard cmdlets (in later betas of 0.8.6).

To conclude, Juraj created an excellent presentation, for community and for me to understand better what the frameworks consumers think.

5 responses

  1. Reaction to page 13 – RDP problem. This is interesting issue. We had machine running on VMWare on cloud. When we accessed it via RDP and then invoke Jenkins slave process which was responsible for launching UIAutomation tests and we launched tests, then it works. But when we closed RDP session, then UIAutiomation was not able to find the installer window. The only solution was to connect via VMWare console and start Jenkins slave in interactive session, not by RDP. I sent this report also to Codeplex UIAutomation project.

    This presentation was given by Jakub, not by me 🙂 I gave presentation about PowerShell from *nix user perspective: http://georgik.sinusgear.com/2013/10/02/slides-powershell-from-nix-user-perspective/
    This second part of UIAutomation was given by Jakub, so he could provide further explanation 🙂

    1. UIAutomation cannot work without a user session. It simply could not build the Automation tree. Selenium and API calls like SendKeys, keyb_event immediately die under locked screen, whereas UIAutomation tries to survive if lock is not so long.
      This year, approx. this spring, I investigated into the world experience of how Microsoft Test Manager/CodedUI, TestComplete, Ranorex and some others work remotely with desktop testing. The most fruitful was search on the SmartBear/AutomatedQA (i.e., TestComplete) site. Things that were described there are not their invention, however their description I found the best of all.
      There are several problems desktop automators should come through:
      – an RDP session freezes as you minimize it
      – autologon or a similar way to start tests
      – the user session (an RDP session) should be opened all the time
      Here is the topic where I described to a guy from France how my tests work half a year: test console with 768MB RAM open a RDP session (RemoteApp) to a product console with 1GB RAM (later I installed SQL+SSRS and started using console with 2 GB RAM): http://uiautomation.codeplex.com/discussions/462599 . The guy tried the scenario, it worked, but he abrupted the use due to lack of Windows licenses (several hosts with client licenses in his situation).
      The first issue is cured by a reg-file,
      for the second issue I use a RemoteApp (my tests run from a cmd file, the file runs powershell.exe) which simply start the .cmd and translates the app to the console I run the connection.
      After running a reg, you can simply minimize the session to the test console. The test console runs RemoteApp from the product console without a problem.

      It looks like an X application on Windows via Xming or a similar tool. UIAutomation works on the remote side, however it’s not recommended to perform a lot of activity on the console where the test initiates connection.

      ————– ————————————–
      |test console| | product console (system under test) |
      | <=1 GB RAM | | 1-2 GB RAM (the more the better) |
      | | | |
      | a RDP file | ____________________________\ | RemoteApp (a reg setting + cmd) |
      | | / | |
      | | /_____________________________| translates app to the test console |
      | | \ | |
      ————– ————————————-
      There is also a cmdlet to generate a RDP file.

      Your PS for *nixmen is interesting, for example, after PoweShell *nix shells look like for me as deprived of a lot of functionality (even though with getopts – support for short -h paremeters and their long verisons like –help) 🙂

      1. WordPress ate my ASCII test map

        ————–—–………….. ————————————––
        |test console|………….| product console.|
        |1 GB RAM|…………..| 1-2 GB RAM..|
        |…………..|…………..|……………….|
        | a RDP file | _______\ | RemoteApp (reg + cmd)|
        |…………..| …………/ |……………….|
        |…………..| /________| sends app to test console|
        |…………..| \…………|…………………|
        —————…………..————————

      2. GUIs implemented via Powershell scirpts are soooo needed. I always hated that I couldn’t get the same from Windows Scripting Host. The great part is to just be able to slap a GUI together in script and not have to deal with the structure and overhead of Visual Studio when you need something simple; dynamic languages ROCK!Although I’m not a power Powershell user, I am a programmer and definitely appreciate it. Actually, if I had to pick my favorite *language* it would be Powershell (used to be Python), and I definitely consider myself to be a developer and *not* an IT person. What can a developer do with Powershell? Lots of things but most recently I needed to batch rename thousands of files, and I needed to do it using lots of different logic. So I divided and conquered; I created a directory select to match a set of files and then ran a one-liner to rename each set, continuing until I had all them renamed. As an aside, the files I needed to rename were images for use on a website I’m working on (that is written in PHP and will be running on Linux, Apache, and MySQL!)My only complaint about Powershell is that I can’t use it to develop web apps (w/o having to go build my own framework, which I don’t have time to do.)

  2. Hi,
    Thanks for sharing a slide share presentation. I think this information will also help to company to Hire a Tester .

Leave a reply to Swapnil Cancel reply