Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 8 years ago.
Improve this question
I would like to be able to use a tool like WatiN to automate somethings that needs to interact with a Web App that is access by using an instance of IE running on Citrix. So far it seems impossible to interact with the window at even a rudimentary level using SendKeys as the internal UI components seemingly do not have a handle.
Has anyone been able to do this or anything similar?
You can try UiPath in order to handle Citrix automation (and also desktop or web).
Here's a full tutorial showing different Citrix automation techniques for data entry, data scraping or clicking and typing in virtual desktop environments.
You can use it from code (SDK) or create visual automation (workflow) directly from UiPath Studio.
Take into account that Citrix/virtual desktops are streamed to the client computer as an image so you can't have access to the UI tree elements.
Note: I work at UiPath so I know it can do the job. You should also try other visual automation tools like Automation Anywhere, WinAutomation, Jacada, use them side by side and choose the one that suits you the best.
Citrix has a test/monitoring tool that supports automating Citrix apps. I believe it is called Edge Sight. Another option is Tevron CitraTest.
However, if it is a web app that you are trying to automate, why don't you just automate IE directly on your own workstation. There are numerous automation tools, both free and fee, that support automating IE.
I haven't heard about Citra Test only about EdgeSite. Anyway it's troublesome to deal with closed Citrix environment.
First of all no automation software or scripting environment can easily interact with objects of Citrix applications. There are simply no hooks available. IE accessed via Citrix is more like Image than application.
You can get some interactions when listening on low level of communication, but that is almost like reverse-engineer citrix propetiary technology and injecting your data.
You could try with software that recognizes images and operates on screen coordinates, but that sucks. It is prone to many, many errors. Additionally don't even dare to use it with Citrix and dual/multiple screen setup. That's just mess.
Installation of automation software on server and have it accessed via Citrix as your IE would be best solution (except having tested app accessed normally via your workstation IE).
Unfortunately in most cases App accessed only via Citrix means no testing automation :/
I recently saw a demo of Macro Scheduler. It seems promising but I haven't used it. Here is the link. http://www.youtube.com/watch?gl=US&v=HBok9MXX4Yg
Another option is try installing Quick Test Pro or any other UI automation tool on the citrix server that you are accessing. QTP works in this setup. Its not easy but its doable.
I have used AutoIT to run in parallel with a desktop app in Citrix to monitor and close long running dialog boxes.
Related
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 6 months ago.
Improve this question
So, I'm a new(ish) QA automation intern at my company. Since I got in, I've been researching different tools and methods of automation. We have a web service that we can automate just fine. The thing is, there is also a windows application that needs to be automated for QA as well. I've looked into a framework called Winium. However, in order to select specific elements, you need to use some sort of selector and the application doesn't show up with any way to get selectors. I used the Microsoft application "Inspect.exe" but the app came up with nothing even though inspect worked on other apps.
Is there some app or framework that can help me? Or, am I just doing it wrong? Thanks in advance for any answers!
To automate desktop applications there are a few great choices available as follows:
UiPath Studio software solution allows automating repetitive office tasks.
WinAppDriver is a service to support Selenium-like UI Test Automation on Windows Applications. This service supports testing Universal Windows Platform (UWP), Windows Forms (WinForms), Windows Presentation Foundation (WPF), and Classic Windows (Win32) apps on Windows 10 PCs.
AutoIT is a freeware BASIC-like scripting language designed for automating the Windows GUI and general scripting. It uses a combination of simulated keystrokes, mouse movement and window/control manipulation in order to automate tasks in a way not possible or reliable with other languages (e.g. VBScript and SendKeys). AutoIt is also very small, self-contained and will run on all versions of Windows out-of-the-box with no annoying “runtimes” required.
Winium is an automation framework for Windows platforms. It is opensource and is Selenium-based.
TestStack.White is a framework for automating rich client applications based on Win32, WinForms, WPF, Silverlight and SWT (Java) platforms. It is .NET based 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 UIAutomation library (on which White is based) and windows messages.
LDTP (Linux Desktop Testing Project) is a Cross Platform GUI Test Automation tool.
SikuliX automates anything you see on the screen of your desktop computer running Windows, Mac or some Linux/Unix.
Pywinauto is a GUI automation library written in pure Python and well developed for Windows GUI. At its simplest it allows you to send mouse and keyboard actions to dialogs and controls on both Windows and Linux, while more complex text-based actions are supported on Windows only so far
Robot Class / Win.form Class: These tools are distinctively different than the rest, in the way that they aren’t directly destined as test automation tools for desktop applications, but act as classes to simulate activities of the keyboard and mouse. Whereas, the Robot Class could be used with Java and Win.form is for .Net.
You can find some relevant discussions in:
Does Selenium Support automate to Desktop Applications
How to execute a workflow on a PC which doesn't have the UiPath Studio or UiPath Robot installed?
How to read an excel sheet and put the cell value within different text fields through UiPath?
You can go look into WinAppDriver (Link) It supports good amount of APIs that you can use (API)
If you are comfortable with C# then WinAppDriver is a good option.
You can also think about using PyWinAuto (Link) if you are more into Python.
As you mention, finding window elements based on any unique attribute is challenging when it comes to Desktop Automation. However, you can check THESE tools to inspect desktop elements.
I am working in different kind of UI Automation and need to explore Citrix automation, can anybody suggest any live example for citrix automation so that i can give it a try and explore.
Thanks,
Install UiPath CE.
Get access to another computer via Remote Desktop. Maybe boot one up via AWS or Azure.
Try to automate a program on the remote machine from your own machine via UiPath (which is installed on your own machine).
And as Poof commented, only Image (i.e. Click Image) and Hotkeys are usable. But if you use the Citrix Recording option, that should remove any activities that is not usable :)
QTP seems robust and integrated withother systems.Funcunit/Selenium seem easier/quicker to setup and run for developers. Is it either-or, or is each tool betterat differentaspects of programming?
Anyone had experience with using both on a project and how?
The main advantage that QTP has vs Selenium is that QTP supports automation against non-browser-based applications. Selenium only tests web apps hosted in a browser.
Technology-wise, they can coexist, but I am not sure why you would want to. If you are a shop that only has web apps, then you could use either. If you are a shop that also needs to support desktop apps, then you should use QTP (or another vendor tool that supports both, like IBM RFT or MSFT VS2010).
In my opinion, you would never want to use both (i.e. QTP for desktop, Selenium for web), as you then need to support expertise in 2 toolsets.
I tried to automate an application available under Citrixl Program Neightbourhood using QTP 9.5, but QTP does not identify the objects inside the application. Can we automate citrix application using QTP?
What are different tools available to perform automation testing on Citrix applications?
I have used Scapa Technologies for Citrix ICA or Terminal Services testing. Scapa provides an automation tool that is installed on the Citrix server. Then it has a controller that launches the citrix session, communicates with the server and starts the automation tool which calls your automation script. It actually runs on the server so it can interact with the applications controls.
QTP supports Citrix only if it is installed on the Citrix machine, it doesn't support working via the client.
For technical reasons this is because QTP needs to be able to listen to windows messages and load its DLL's into some applications which it cannot do from a different machine.
Traditional tools generally do not work with applications running in remote desktop applications. The interfaces needed aren't available. Probably your only option is an image-based tool like Eggplant.
The difficulty with Citrix automation is that the applications are streamlined to the client computer as an image, thus you can not access to the UI tree of elements.
UiPath can automate very easy Citrix applications (also desktop or web) by using some image automation specific techniques like
clicking relative to an image
using OCR for text scraping
using keyboard hotkeys
click relative to a OCRed text
Here's a full tutorial showing different Citrix (or virtual desktops) automation techniques for
data entry
OCR data scraping
clicking and typing relative to an image or text
UiPath has an SDK that can be used from code.
The default will be to create visual automation (workflows) directly from UiPath Studio.
Note: I work at UiPath. You should also try other visual automation tools like Automation Anywhere, WinAutomation, QTP, Selenium, etc, use them side by side and choose the one that suits better your needs.
For what it's worth, I have automated a CITRIX application just as you described for a large telecommunications firm in the early 2000s. I did this by getting deep inside the Windows SendMessage APIs and an optical character recognition package. You would probably be astonished by how much data was moved from one system into another using my team's CITRIX/screen-scraping "robots." I came upon this question because I was reminiscing about this project and wondering if there was still a need for this type of solution in this day and age.
As Motti said You can't automate via Citrix client. In general Citrix client is hard to automate. I know that someone at my work played with it and he managed to catch some communication and objects that could be useful to automate tests via Citrix, but that would be separate development project to create such solution that could be very limited.
Via citrix QTP object recognition is totaaly different. QTP on remote machines works on objects based on location and reference so it is almost impossible to automate.
As per my experience this type of setup can be best handled using the Image recognition and/or OCR capable testing tools like eggplant but its not really suggested to have testing environment which includes Citrix. Another option could be to install an automation tool like AutoIT within the Citrix machine and trigger the scripts using the other tool (maybe Selenium but I am yet to try that out).
Is anyone out there aware of any good or even reasonable tools for automated testing on the Windows CE / mobile platforms. Potential tools that I am aware of include TestQuest, Countdown, SOTI pocket controller, and Eggplant. Are there any more that I have missed?
Alternatively, is anyone aware of a VNC or remote display tool for Windows mobile that replicates the Windows visual object hierarchy on the PC, rather than displaying the entire device as a single bitmap? If this could be done, mainstream desktop automation tools could be applied to Windows mobile.
N.B. I have already read this related question which is useful, but am looking for a viable off the shelf alternative. This post is following up on a number of related posts in the PDA/Embedded section of SQAforums.
I realize that your question is directly "are there tools to do the automated testing on CE", but have you considered perhaps aiming your automation at a version of the app which can be accessed from a standard desktop environment? In this way, you are open to all of the standard automation tools.
For example, I have worked on a few projects where we needed to perform automated testing for the device. In all cases, the RF device was really just a web browser connecting to a web based app. The same URL and simple forms could be plugged into a standard desktop browser and be automated by any of the usual automation toolsets. Automation never replaces manual testing, so what we did on those projects was automate regression testing of the same web interface that was used by the RF devices, but still do some sanity manual testing directly on the devices.
Also, with regards to the VNC/bitmap issue, I've been down that road before and agree that it is a nightmare. Using standard desktop UI automation on a VNC bitmap is not only unreliable and unmaintainable, but slow - in most tools, the CPU churns away searching the entire bitmap from top left to bottom right for the desired image. Really really slow.
Check Hopper, a test tool for Windows Mobile.