Visual Web Testing
Functional, Performance, and Regression Web Testing
Meet the future of QA automation. These days, web development increasingly means a lot of testing in various browsers, making changes and adjustments, refreshing, and retesting, over and over and over again. Sound familiar? And time-intensive? And boring? => Let KantuX join your testing team.
The way you use KantuX is to define small UI elements (i.e. a button on page, a link, some text) and save cropped screenshots of them as reference images. Then, KantuX compares them against what is shown in the web browser at runtime. Therefore, you build a repository of graphic UI elements vs the complex web UI locators/element IDs/CSS selectors of classic web testing tools. KantuX creates rock-stable test scripts.
Using KantuX saves time and money: Users even tell us that a KantuX macro that reproduces a certain bug can be created and run in less time than it takes for a developer to follow a set of written steps to reproduce the same bug.
With KantuX you can quickly and easily automate functional, performance, and regression testing across any website technology including Java, Flash or Silverlight applets and all AJAX elements. KantuX’s visual technology allow you to capture exact web page response times for every step of a process.
Automated Testing in progress...
Regression testing with KantuX is easy and very flexible. When parsing a web site KantuX tries to find the test image or text anywhere on the website. This is also called keyword assertion or regression testing. If the image keyword does not exist, KantuX retries the image search automatically every second until a timeout value is reached. If the image is still not found, KantuX reports an error. The automatic retry makes web testing websites with AJAX easy and natural. KantuX tests websites just the same way as a human uses them – visually.
Testing AJAX Websites
Testing Canvas and SVG elements
Historically using record/replay tools to automate SVG testing was not a good option. There are many elements inside an SVG, and most elements in SVG will have same class, which makes it a huge challenge to write a locator to find element - even if you do it manually. Additionally, a small change on the internals will break such a test case again and test case maintenance is cumbersome. This is even more tricky for websites with a lot of dynamic data such as chat or interactive charts like the one you find on D3.js or Angular.js charts.
The good news is testing Canvas and SVG elements is no problem for the visual automation approach of KantuX. For example, KantuX can automatically test and visually verify any chart that you find in the D3.js example gallery.
The same is true for testing HTML5 canvas elements. From drawing apps to airline reservation systems ("select your seat"), more and more modern web apps use canvas elements for a great user experience. And KantuX's visual testing supplies the test automation.
Integrate visual testing with Jenkins automation server
KantuX visual testing can be integrated in the Jenkins build process, or with any other continuous delivery solution (e. g. BuildBotT, GOCD or Travis CI). The integration is done either via the command line or with powerful and easy to use KantuX API. Any scripting language can be used for starting KantuX via the API. The documentation includes Powershell example code for Jenkins and tech support can help in case of any problems.
Automated visual testing with Jenkins and KantuX (Jenkins logo used with permission, CC BY-SA 3.0)
I'm very impressed - in a few hours I was able to fully replicate a web app test setup that had taken a week or so to build in Visual Studio Gui testing.
Christian Berndt, Deloitte, France - More user quotes
KantuX has built-in support for table-driven testing with its ability to read all csv formatted files (tables). No additional coding or scripting is required. You can use any numbers of columns, and all kinds of column content is supported (including full Unicode support). The number of table columns is automatically detected.
Record & Replay with the Image recording wizard
In web testing, time is money. You can easily record your test macros with the built-in recording wizard. You can also edit, copy & paste and modify the screenshot macros with the powerful KantuX editor. The visual macro editor makes test case maintenance easy – and even fun.
Test with Google Chrome and other browsers
The current KantuX version uses the most popular web browser for testing: Google Chrome. KantuX uses the original Chromium as its web browser engine and combines it with its image recognition technology and API. This approach is future proof: KantuX’s visual approach means you are not limited to a certain browser. Future KantuX updates (later this year) will add support for cross-browser performance testing with Firefox, Edge, Opera,… essentially any browser available. And all that without changing your test macros. Because, again, KantuX automates the test visually it is ideally suited for cross-browser testing. (If you purchase KantuX PRO now, the price include free upgrades to the cross-browser editions once it is available, you do not have to pay again for this feature).
Multi-Threading – run many tests at once
The KantuX API enables you to run and control up to 100 browser instances at once (only limited by system resources). Technically speaking, KantuX has full “multi-threading” support. And KantuX instances can run headless.
Great application, I'm a freelance web developer and the games I create have to be played 1000's of times before I can submit them officially to test. I spent weeks looking for a suitable test app and have found yours to be fantastic.
Venkata, India - More user quotes
KantuX Web Testing FAQ
Questions related to KantuX's use for quality assurance and test development.
What if the UI object I am clicking on moves 2 pixels over?
KantuX works like a human. It looks for the image everywhere on the screen. As long as the image is anywhere on the page, it will be found. By default (and for performance reasons) KantuX looks on the visible part of the screen only (= what you see in your browser screen). You can add the SearchImageInWholePage parameter to make it search the whole website.Top
Will the macro break if there is adaptive layout on the website?
(1) If, as in most cases, all the adaptive layout does is to move the buttons/images to a different place, then all works fine. KantuX will find the image anywhere on the screen.
(2) But if a button (or whatever image you look for) drastically changes its size or even disappears, then yes, the macro would be break. Example: If a navigation menu collapses to the ☰ symbol, this will break the script.
What about smart waiting?...so if I click the "login" button and then it takes 1 to 5 seconds to get to the next page, does this framework have intelligent waits? or does it rely on something like "Thread.Sleep(5000)"?
KantuX supports smart waiting by design! Essentially it looks for the image non-stop and does not continue until the image is found. Pretty much like a human user. By default it waits up to 10 seconds. You can adjust this timeout to any value, either globally for all macro or for a specific command. For example, you will need to extend this value when waiting for the result of a flight search on Expedia or for a longer file upload to complete. In all cases this is smart waiting, and not a hard-coded delay.Top
Can I use best practices like the "Page object model"?
... so that if I develop thousands of tests and then someone changes how the "login" screen works, I can simply update 1 object instead of updating 1000s of macros? For this we have the API: You can split your image macros in sub-tasks like "Login" or maybe "Upload Image" and then mix & match those macro with the Playcommand:
- KantuX.Play ("Login.kmacro")
- KantuX.Play ("Upload image.kmacro")
- KantuX.Play ("Logout.kmacro")
How does the screenshot-driven KantuX Browser Automation tool compare to Selenium IDE?
Are you already using Selenium IDE? Selenium, Sikuli and WebDriver are great (that is why we created the open-source Selenium IDE for Chrome), but consider adding KantuX to the mix and reduce test development and maintenance time greatly. KantuX combines a powerful Scripting API and great usability with the no-compromise computer-vision approach of Sikuli into one powerful visual testing software for web testers and web developers. Note that unlike Sikuli, you can run many instances of KantuX at once and in the background. KantuX does not take over your desktop and KantuX can run in headless mode. Its API makes it ideal for data-driven automated regression and performance testing as part of continuous integration (CI) projects.Top
We selected your automation testing framework for its focus on simplicity and easy maintenance. Your software is perfect for what we need.
Darren Myatt, Sony Europe, UK - More user quotes