UIVeri5: More Stable System Tests for UI5 Applications
UIVeri5 is an open source system testing tool from SAPUI5. It is based on Protractor, a very popular node.js based tool for system testing made by Google. Last year we started to use it for testing our SAPUI5 applications. Now it has been made available as Open Source project.
The most important differentiator compared to other tools (Selenium, nightwatchjs, Robot, Casper.js, Cypress …) are the additional features for better stability. As we all know stability is always a challenge for system tests, the UIVeri5 features help here a lot to make the tests more stable. Similar to OPA UIVeri5 supports the control locators, which allow a stable identification of elements even if SAPUI5 changes some implementation details. Besides, it takes care of asynchronity, so you do not need to add sleep and wait statements. In addition, you can develop reusable page objects, e.g. for FIORI Elements applications.
Therefore I strongly recommend to checkout UIVeri5! The SAPUI5 team and the other contributors in SAP did a great job here.
Main features of UIVeri5
The following list describes the most important features from my perspective:
- Automates real browser (including mobile) interaction
- The foundation (Protractor) of UIVeri5 has a huge community
- Automatic synchronization with UI5 rendering (no waits, no sleeps)
- improves test stability
- OPA5 locators
- improves test stability
- also DOM selectors like CSS, jQuery, XPath are supported
- Can be used from 1.52.12 onwards
- JavaScript based
- improves collaboration between UI developer and QE
- node.js based
- allows to use the huge node.js tool ecosystem
- ES6 based
- allows to use new JavaScript features
- Authentication on system under test is handled by UIVeri5
- Multi Browser Testing
- Covers Google Chrome, Mozilla Firefox, Microsoft Internet Explorer, Microsoft Edge, Safari on Mac and iOS, Google Chrome on Android
- Behaviour Driven Development
- Gherkin feature (cucumber-js) and Spec (Jasmine) files support
- Continuous Integration
- Integration to CI/CD solutions easily possible
- Visual testing
- Screenshot comparison
- Currently only used for control testing
- Open source
- can be used by customers
- Sources and documentation are on GitHub
- allows collaboration
Test Strategy
Even if the tests are more stable, the test pyramid is still relevant and you should focus your effort on unit and integration tests.
In most cases the system tests are only used for the happy path (e.g. testing the main scenario, exercise the whole system stack, cross application navigation) or smoke tests.
The following test pyramid shows how we use the tools for the different levels of test. The focus of OPA is on testing a single application in detail isolated from
the backend using MockServer. UIVeri5 is used for system testing through the complete stack including backend.
For more details on test strategy, I recommend to read this blog.
How to start implementing UIVeri5 in your project
Contribution:
- If something is missing, contribute to UIVeri5. Several SAP application development teams have done this already.
- How to contribute
one word, truly meant: awesome
Great blog entry, could you please add the test pyramid which shows how you use the tools for the different levels of test?
Hi Peter, can you add more details, what is missing? The test pyramid including tools is already part of the blog.
I think the problem here is that the image is embedded using a link that is only available within SAP.
Thanks! I have updated the blog. The test pyramid should be visible now.