Automating Visual Regression using Galen and Wraith Deepshikha - - PowerPoint PPT Presentation

automating visual regression using galen and wraith
SMART_READER_LITE
LIVE PREVIEW

Automating Visual Regression using Galen and Wraith Deepshikha - - PowerPoint PPT Presentation

Automating Visual Regression using Galen and Wraith Deepshikha Singh| QA Lead | @deeps_qa Problems in Layout Testing Manual efforts are high. Possible chances of missing key areas of regression. Not possible to validate


slide-1
SLIDE 1

Automating Visual Regression using ‘Galen’ and ‘Wraith’

Deepshikha Singh| QA Lead | @deeps_qa

slide-2
SLIDE 2

Problems in Layout Testing

  • Manual efforts are high.
  • Possible chances of missing key areas of regression.
  • Not possible to validate regressions in every kind of devices.
slide-3
SLIDE 3

Why do we need Wraith?

  • Difficult to spot
  • Hard to spot pixel differences with naked eye
  • Difficult to identify missing element(s) on a page
  • Time consuming
  • Can occupy a large amount of time for the QA team
  • Support for various browsers
  • Support for responsive tests
  • Support for mobile and tablets
slide-4
SLIDE 4

Why Galen Framework ?

  • Layout Testing made easier.
  • Leveraging browser capabilities to measure responsiveness.
  • Reduces manual effort of validating responsiveness in multiple

devices.

  • Helps in validating visual features across different browsers.
slide-5
SLIDE 5

How does Wraith works?

  • Capture Screenshots

○ Built-in capture software ○ Install it as a dependency

  • Create baseline shots directory

○ To compare against

  • Compare two pages

○ Screenshot comparison

  • Provide readable output

○ Highlights the differences in specific color ○ Outcome as Pass or Fail

slide-6
SLIDE 6

Pros and Cons with Galen

  • Pros:
  • Open Source.
  • Easy to install.
  • Error Reporting with screenshots for Pass & Fail.
  • Easy to Write/Read syntax.
  • Multiple Browsers support.
  • Supports Functional Testing.
  • Cons:
  • Lack of support for Test Editor.
  • Code maintenance is costly when there are lot of UI changes.
slide-7
SLIDE 7

Sample web page layout

slide-8
SLIDE 8

How it works?

  • Describe any layout using special syntax – Spec Language.
  • It uses Selenium3.0
  • For interacting with elements on page and getting their locations and

dimensions.

  • Once it sees that something is wrong
  • Reports the error
  • Makes a screenshot and highlights the misbehaving element on it.
  • How it Runs?
  • Open a page in browser
  • Resizes it to specified size
  • Test the layout according to user-defined specs
slide-9
SLIDE 9

Getting Started with Galen

  • Define Galen Specs
  • Objects Definition
  • Object specs
  • Run individual Spec files
  • Inject JavaScript code
  • Create Test suite
  • Run Test suite
slide-10
SLIDE 10

Objects Definition

@objects Header id header Logo-box css .logo-box Search-bar xpath //input[@class=‘searchBar’]

  • Indentation is 1 to 8 spaces but not tab.
  • xpath is not preferable unless css cannot be used.
  • Syntax for Object definition depends on the Galen Framework
  • version. ( Ref: http://galenframework.com/docs/specslang-2.0-difference/)
slide-11
SLIDE 11

Object Specs

=Test Global Header= @ on desktop Header: height 40px width 900px centered horizontally inside screen @ on mobile, desktop Logo-box: css color is “rgba(51, 51, 51, 1)” css background-color is “rgba(120, 190, 32, 1)” Search-bar: below: header 0px

slide-12
SLIDE 12

Object Specs ( cont.…)

  • Object Definition
  • http://galenframework.com/docs/reference-galen-spec-language-guide/#Objectdefinition
  • Multiple objects definition
  • http://galenframework.com/docs/reference-galen-spec-language-guide/#Multipleobjectsdefini

tion

  • Object Groups
  • http://galenframework.com/docs/reference-galen-spec-language-guide/#ObjectGroups
  • Many more:
  • Tagging and Sections
  • Variables
  • Conditional checks ( If, Else)
  • Loops ( For, ForEach)
  • Element locations relative to other elements
  • http://galenframework.com/docs/reference-galen-spec-language-guide/#SpecsReference
slide-13
SLIDE 13

Run Individual Spec file

galen check homepage.gspec

  • -url "http://example.com"
  • -size "640x480"
  • -javascript "some.js"
  • -include "mobile,all"
  • -exclude "toexclude"
  • -htmlreport "htmlreport-dir"
  • -testngreport "testng-report.xml"
  • -jsonreport "jsonreport-dir"
  • -junitreport "junit-report.xml“

Example: galen check specs/galen.spec --url "http://www.example.com" --size "1366x768" --include "desktop" --htmlreport "reports"

slide-14
SLIDE 14

Test Suite

  • Grouping Test Specs
  • Create Global Variables
  • Import Test Suites
  • Run Specs on different browsers
  • Run in Selenium Grid
  • Parameterization
  • Disabling tests
slide-15
SLIDE 15

Test Suite Syntax

@@ set domain http://www.example.com @@table devices @@parameterized using devices Home page on ${device} device selenium chrome ${domain} ${size} check specs/galen.spec --include "${tags}"

slide-16
SLIDE 16

Run Test Suite

  • galen test mytest01.test
  • -htmlreport "htmlreport-dir"
  • -testngreport "report/testng.xml"
  • -jsonreport "jsonreport-dir"
  • -junitreport "junit-report.xml"
  • -parallel-tests 4
  • -filter "Home page on * device“
  • Example:

galen test tests/galen.test --htmlreport "reports"

slide-17
SLIDE 17

Reports

  • Report for individual Test cases
  • Screenshots for each Test case (Pass/Fail)
  • Report for Test suite executed
slide-18
SLIDE 18

Quick Testing with Wraith

  • Testing Modes

○ Capture ○ History ○ Spider

  • Gallery and Output

○ Generates a diff.png and a data.txt ○ Generates gallery.html cont...

slide-19
SLIDE 19

Quick Testing with Wraith

  • Hook “before_capture”

○ Supported in Casper mode ○ Allows to test interactive content

slide-20
SLIDE 20

Capabilities of Galen

  • Testing relative location of elements in web page.
  • Checking visible text.
  • Integration with Selenium Grid.
  • Inject JavaScript into code.
  • Color scheme testing.
  • Integration with Appium.
  • Can be integrated with Browser Stack, Sauce labs.
slide-21
SLIDE 21

Additional Features

  • Creating Page Dump
  • Creates information about all test objects on page with image

samples.

  • Image Comparison
  • Java API
  • JavaScript API
  • Galen Extras
  • Advanced expressions which extends Galen specs language.
slide-22
SLIDE 22

Installation

  • System Requirements:
  • Java 1.7 or higher.
  • Text Editor.
  • Drivers for Respective browsers.
  • Galen Framework binary
  • http://galenframework.com/download/
  • Add Galen folder to “PATH” environment variable.
slide-23
SLIDE 23

References

Tutorials

http://mindengine.net/

Documents

http://galenframework.com/docs/all/

Sample Project

http://galenframework.com/docs/tutorial-first-project/

Galen Spec Language

http://galenframework.com/docs/reference-galen-spec-language-gui de/

slide-24
SLIDE 24

Thank You