Testing with UIveri5

sitFFM 2019 - Volker Buzek

UI...what?

  • UIveri5 (sp? pron?)
  • npm i -g @ui5/uiveri5
  • protractor + selenium-webdriver
  • jasmine + OPA5 (basic) matchers
  • 1.52.12+

Setup

integration testing

  • conf.js
  • <testCase>.spec.js
  •                     
                            describe('<testCase>', () => {
                                // async Promises
                                it('should do sth', function () {
                                    // resolves auto-magically
                                    expect(sth).toBe(true);
                                });
                                it('should do sth else', function () {
                                    expect(sthElse).toBe(false);
                                });
                            });
                        
                    

Setup

visual testing

  • ⚡️visual profile
  • expects test/visual/visual.suite.js
  • requires module.exports = <testCase>.spec.js
  • provides + requires
    http://.../test-resources/e2e/test/<testCase>.html

⇒ pimp integration profile


                    browsers:[{
                        browserName: (_chrome_|chromeMobileEmulation|chromeHeadless|firefox|ie|safari|edge),
                        browserVersion: '*',
                        platformName: (_windows_|mac|linux|android|ios|winphone),
                        platformVersion: '*',
                        platformResolution: 'WIDTHxHEIGHT',
                        ui5.theme: (bluecrystal|_belize_|hcp),
                        ui5.direction: (rtl|_ltr_),
                        ui5.mode: (_cozy_|compact)
                    }]
                

ref image example:
/<dir>/images/<testCase>⏎
/mac/1280x1024/chrome⏎
/belize/ltr/cozy⏎
/<imgName>.ref.png

⇒ pimp integration profile


                        take: true, compare: true, update: true,
                    
                        storageProvider: {
                            name: './image/localStorageProvider',
                            refImagesRoot: './<dir>',
                            actImagesRoot: './<dir>'
                        },
                        screenshotProvider: {
                            name: './image/localScreenshotProvider', 
                            screenshotSleep: 100
                        },
                        comparisonProvider: {
                            name: './image/localComparisonProvider'
                        }
                

UIveri5 vs OPA

UIveri5 OPA
single out test 👍🏻 👎🏻
authentication 👍🏻 👎🏻
UI5 control access 🤔 👍🏻
cross-browser 👍🏻 🤔
infrastructure invest 👎🏻 🤔
TTU 🛠📖⏱🙅‍♂️ 🤔 🤔

/me