Automation has become the need of the hour. Organizations are weighing in on the efficiency of the improved operation of automation tools. Therefore, when it comes to testing and automating desktop applications on Windows, Winium is the ideal option. Winium—built on Selenium—is an open-source automation framework used for interacting with Windows applications. Any desktop application developed on WPF (Windows Presentation Foundation) or on Winforms can be automated using this framework.
Using Winium is similar to Selenium as the API of Winium resembles that of Selenium.
Winium = Win (Windows-based Application) + Selenium
The following illustration shows the language level bindings. These bindings are simply implementation in various languages that are used for automation. Winium gives the users a choice to write the code in any language of preference, such as C#, Java, or Python. These bindings communicate with a common API known as ‘Winium Driver API’. This driver allows the user to use low-level details of the windows application and prompts it to perform functions such as clicking buttons, going to different windows, and gathering data from different windows.
Pros of Winium:
- Any windows desktop application that is developed on WPF or on Winforms can be automated
- Compatible with JSON Wire protocol
- Complete access to desktop
- Supports commonly used programming languages such as Java, C#, PHP, Perl, Ruby, and Python
- Execute test cases on any remote machine through VPN by installing the Winium desktop driver alone, complete framework installation is not required
Cons of Winium:
- Inability to run more than one session per machine as Winium uses the system mouse and keyboard events
- Inability to read the text in images
- Compatible only with Windows and not with Linux or MAC
- Falters when Winium is running in the background and remains running there
Prerequisites for Winium:
- Microsoft .NET Framework 4.5.1
- Dependencies that can be downloaded using the Maven File
Winium lacks record and playback feature, therefore, an engineer needs to install an additional tool to automate the Windows application. An automation engineer needs to provide the properties of an element on which they want to perform the necessary actions. Windows SDK has a tool called ‘Inspect’, which shows the properties of an element. Once the properties of an element are visible, the engineer will have to decide on which property will they identify the Windows element.
Xoriant Business Use Case for Winium
Our client’s business is based on DNA profiling. They use multiple rapid DNA instruments to analyze biological samples. Therefore, it requires instantaneous bug fixes through remote access and standardized settings across all the instruments.
These instruments are physically placed across various police stations, laboratories, and disaster sites. Testing these instruments was a very tedious and time-consuming task.
Xoriant’s engineering team suggested automation as the ideal solution to reduce manual work and save time for the client. Post this, we started working on a critical task where we had to set up the environment that will help finalize the testing of this firmware combination. We performed extensive and exhaustive research that helped conclude that the best probability of achieving these goals is only through Winium. Using this Selenium-based tool, we could remotely connect to physical rapid DNA instruments using our Windows machine through TightVNC software. This remote connection allowed automated execution of test scripts from our local machines.
Each rapid DNA instrument has its own unique setting, which can complicate the end-to-end testing of the instruments. However, using the test suite created by Winium, we could centrally store settings for every equipment in the global properties file, hence, we could run customized end-to-end testing. Overall, Winium made the entire process of remote testing and instrument standardization efficient.
Why use Winium?
There are various open-source test automation tools available for desktop applications in the market such as UFT, AutoIT, and Sikuli. However, deciding the right tool for the desktop app might be a difficult task as every tool comes with its own unique style of automation. For example, AutoIT is based on unique coding language which requires extensive learning. For Sikuli, it is necessary to maintain various screenshots in order to write the automation script, which is tedious.
If you are familiar with Selenium or any other programming language, Winium is the best tool for Windows automation. It is free and open-source. Similar to Firebug and Firepath that helps identify the elements in Selenium, with ‘inspect.exe’ or UISpy, users can locate the elements in Winium.
In the end, Winium is the ideal choice as it does not require any special learning and is easy to use.