Automation testing between desktop and web application? - selenium

I am working on a retail based project. We have two UI. One is web portal where different types of vouchers can be created. These vouchers can be issued and redeemed from desktop application. The issued and redeemed voucher update details will be uploaded to web portal. I am using sikuli to automate desktop application. Can i do GUI testing between desktop and web using sikuli?
Thanks in advance.

As far as my investigation goes, testing end-to-end scenarios that involve both, we and desktop applications, Sikuli is the only option.
When making the decision there few limitation to keep in mind though:
Sikuli tests will only work on the same resolution screen as the one the tests were been created on.
You will need to have a physical computer switched on with a screen attached to it to work.
As it was mentioned in other post here, long scenarios with Sikuli can become brittle. So if you have an option to split your end-to-end scenarios into multiple standalone pieces, while using Selenium for the web part and Sikuli for the desktop app, that probably will be the best solution. Perhaps do some data preparation in one app and save data in a file, then run the other part and assert everything has worked as expected based on that text file.

Base of sikuli is to search the UI controls on screen, based on screenshot.
Also it provides Sikuli API for Java with which you can do a programming around the AUT.
To answer your question,
As long as it is GUI and it's expected screenshot can be taken, then Yes, you can use Sikuli to test Desktop UI & UI for the site opened in Browser.
But testing Web UI with sikuli is quite hectic process as you may need to take screenshots of every testable controls. It will be more cumbersome if site is heavily loaded with images and input controls.
We have selenium IDE/selenium webdriver to perform such testing.
You can use Sikuli on the desktop side where autoIT may become heavy job and the UI is quite static.

Related

Does Microsoft UI Automation Framework work with Chrome, Python and Java Apps?

I am working on an automation project, in which I need to capture the activities [ application launched, data entered, input type etc.] user performs on a desktop. I came across Microsoft UI Automation framework which so far works well for native windows based applications like MS Office, .NET apps etc. However I did not find any useful information / samples of capturing the information from different web browsers [Chrome is a must], Python apps, Java Apps etc. Can someone please confirm whether MS UI Automation Framework supports such apps. Any working example to extract user activities from these apps would be highly appreciated. Thanks.
Chrome only supports UI Automation for toolbars, tabs, menu, buttons around the web page. Everything that's rendered as a web page is not seen by UIA.
For the web page content, the easiest way is to use Selenium (driven by the ChromeDriver), which is kind of a de facto standard for browsers, and has nothing to do with UIA.
To test if an app supports UIA, and how far it does, it's very easy, just run UIA's Inspect tool and check the UI tree over that application.
Some additions to Simon's answer...
Chrome page content can be seen by UIA if you run chrome --force-renderer-accessibility. Only for existing Chrome process it won't work. Though user can create a new tab chrome://accessibility manually and enable UIA for all or some chosen pages. This method also works for AT-SPI accessibility technology on Linux. Of course, Selenium WebDriver is an industry standard here. But another way exists. Both Mozilla and IE support UIA by default.
Inspect.exe can be simply downloaded from this GitHub repo.
Regarding Java apps it depends on the app type. Your chances is about 50/50.
WxPython or PyQt5 are good for UIA. TkInter or Kivy apps are not.
P.S. There is an example how to drag a file from explorer.exe and drop to Google Drive in Chrome using Python library pywinauto.
I'm a bit late to the party..
But Chromes accessibility features are only activated once something tries to access it's accessibility.
If you call AccessibleObjectFromWindow ([DllImport("oleacc.dll")]) with the window handle an existing chrome window will have its accessibility activated (and you'll see the actual web page content in UIA!).
If the chrome window is opened after your app is running - Chrome pings open processes for any open accessibility apps... for that you use AccessibleObjectFromEvent and the event you're responding to comes from the windows pipeline: EVENT_SYSTEM_ALERT = 0x0002 .
The bottom line is - you have to tell chrome that there's something installed that wants to access it's web page content.
Oh! and your application has to be signed!! Unsigned apps won't be able to access web content - I think that's the same in firefox too.
I hope this helps someone in the future.
See:
https://www.chromium.org/developers/design-documents/accessibility

How to Automate Chromium Browser in Code UI Test

Currently i am automating the Desktop Application using CodedUI tests.
I am facing some challenges, there are inside Desktop application we having Chromium browser concept. Unable to record the chromium browser element and getting the element. If normal web page in the Desktop application, i can able to record and get all the wen elements.
So can you anyone help me how to get all the element in the chromium browser using Coded Ui test
I overlooked the question date. But still I posted it as answer, Because I think, still it would be helpful for others to get rid of the problem mentioned in question.
I too had the same issue. After lot of R&D, I found it's very hard (perhaps impossible) to automate CEF using Coded UI.
However, it can be automated using selenium. Moreover, selenium is easy to integrate within coded UI test, if you wish to not leave coded UI.
Here's some links which you can refer how to automate CEF using selenium:
Chromium Embeded Frameowrk using chromedriver.
GitHub Example
Example Framework

Selenium and Database testing

I am totally new to the web application and automation testing.
I am learning selenium from youtube videos and developing frameworks.
while looking into the videos most of them cover only testing the Application as such.
I found very few videos which state about interacting with the database and verifying them.
I just wanted to know how will this be in real time projects?
In real time projects will they automating scenarios like configuring something in the UI, then validating it in the database, coming back to the UI and continuing the UI flow or will it be simply only verifying the UI.
I want to know more about how to do database testing.
Any info here will be of great help
Selenium is one of the best choice available in today's market when it boils down to Automation of Web Application. Selenium have support for Mozilla'a geckodriver, Google's chromedriver, Microsoft's IEDriverServer & even Safari etc. Hence Selenium is widely accepted as the best Web Automation tool as of today.
Having said that, though you too can perform Database Testing through Selenium but it's not the ideal candidate. Database Testing can include transaction rates & round-trip calculations for which there are other tools which does those work better and you may like to explore those as well. Alternatively, you can also integrate those tools in your Project Framework and work with Selenium in tandem.

Automate launching and performing GUI operations in Java Web Start application

I want to automate GUI testing that involves following steps.
Open a URL in my web browser (Internet Explorer). The page at this URL will contain a link.
Click the link on the page. This will download a JNLP and launch the Java Web Start application automatically.
The application will have some text fields that need to be filled in and some buttons that need to be pressed.
How can I automate this?
Platform: Windows
Edit: I'm looking at Sikuli as a possible method of automating this, but I don't know if it will be able to switch between applications from the web browser (in step 1) to the Java application (in step 3). Are there any other tools available (preferably open source) that I should be looking at?
Sikuli will be able to switch between the two applications, for sure. It's quite good at that sort of thing, since it's agnostic about the underlying GUI technology.
In my opinion, Sikuli sounds like the fastest and easiest way to get your test scenario automated, because otherwise you may need to deal with two frameworks (one for automating the web browser and another for your Java application).

GUI Testing tools forBusiness analaysts

I have been looking around stackoverflow for automated GUI tools for testing our web app gui from a Business analyst point of view, so that means strictly requirements-record-playback kind of testing since we are not really programmers.
We have used selenium in the past but unfortunately it is no longer compatible with Firefox 4.
Is there a similar tool to selenium that allows recording and playback of GUI tests that does not require a lot or any scripting on a windows platform? thanks
You can use the FireFox add on compatibility reporter to get Selenium working on FF4
https://addons.mozilla.org/en-US/firefox/addon/add-on-compatibility-reporter/
Or alternatively drop down to FireFox 3.x and use that just for your testing!
For the server component Selenium-RC (necessary to execute tests), You must run Selenium-RC 2.0b3 (or higher if it become) to be compatible with Firefox 4. I have used it succesfully with FF4.
Selenium IDE, the recording tool, for firefox is indeed not available as a plugin for FF4 (but I speculate it will be coming soon).
I think that you can benefit from AutoIt (http://www.autoitscript.com/site/autoit/) I`d been using it to test Windows based GUI, but to the best of knowledge there are lot of scripts to test/play on-line games, thus it is applicable to Web Sites.
It does not require deep technical knowledge, but of course it will be much better and frequently mandatory to optimize the generated code. I`ve started my experience with this tool, and I was doing my work flawlessly.
At one company, I was developing automated tests for web app by means of TestPartner (Compuware company) it was one of the best tools Ive ever worked with, it generates VB code quite 'intelligently' and supports user with administration features. But Im not sure whether it is possible to use it without paying.
Good luck !