automating visual regression using galen and wraith
play

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


  1. Automating Visual Regression using ‘Galen’ and ‘Wraith’ Deepshikha Singh| QA Lead | @deeps_qa

  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.

  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

  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.

  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

  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.

  7. Sample web page layout

  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

  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

  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/)

  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

  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

  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"

  14. Test Suite • Grouping Test Specs • Create Global Variables • Import Test Suites • Run Specs on different browsers • Run in Selenium Grid • Parameterization • Disabling tests

  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}"

  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"

  17. Reports • Report for individual Test cases • Screenshots for each Test case (Pass/Fail) • Report for Test suite executed

  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...

  19. Quick Testing with Wraith ● Hook “before_capture” ○ Supported in Casper mode ○ Allows to test interactive content

  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.

  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.

  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.

  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/

  24. Thank You

Recommend


More recommend