Skip to content

End-to-end testing framework for SAPUI5

License

Notifications You must be signed in to change notification settings

M-Hussien/ui5-uiveri5

 
 

Repository files navigation

openui5

What is it

UIVeri5 is an E2E testing framework for UI5-based applications. It uses WebDriverJS to drive a real browser and interacts with your application as a real user would. UIVeri5 is heavily inspired by Protractor and brings most (and more) of its benefits to UI5 applications.

REUSE status

Benefits

  • Automatic synchronization with UI5 app rendering so there is no need to add waits and sleeps to your test. Tests are reliable by design.
  • Tests are written in synchronous manner, no callbacks, no promise chaining so are really simple to write and maintain.
  • Full power of webdriverjs, protractor and jasmine - deferred selectors, custom matchers, custom locators.
  • Control locators (OPA5 declarative matchers) allow locating and interacting with UI5 controls.
  • Does not depend on testability support in applications - works with autorefreshing views, resizing elements, animated transitions.
  • Declarative authentications - authentication flow over OAuth2 providers, etc.
  • Console operation, CI ready, fully configurable or IDE.
  • Covers full UI5 browser matrix: Chrome, Firefox, IE, Edge, Safari, iOS, Android.
  • Works with browser cloud provider like SauseLabs
  • Use generated snippets from Test Recorder that is build-in every UI5 app (from UI5 1.74)
  • Open-source, fork and modify to fit your specific neeeds.

Requirements

  • NodeJS, version 8.0 or higher

Configuration

UIVeri5 accepts a declarative configuration in a conf.js file. Configuration could be overriten with command-line arguments. All configuration options are explained in Configuration

Installation

Install globally:

$ npm install @ui5/uiveri5 -g

Usage

Create a test

Create a clean folder that will contain your test and configuration files. UIVeri5 uses Jasmine as a test runner so the test resides in a spec.js file. Put the declarative configuration in the conf.js file.

  • conf.js
exports.config = {
  profile: 'integration',

  baseUrl: 'https://openui5.hana.ondemand.com/test-resources/sap/m/demokit/master-detail/webapp/test/mockServer.html',
};
  • masterdetail.spec.js
describe('masterdetail', function () {

  it('should load the app',function() {
    expect(browser.getTitle()).toBe('Master-Detail');
  });

  it('should display the details screen',function() {
    element(by.control(