SlideShare a Scribd company logo
CIRCUIT – An Adobe Developer Event
Presented by ICF Interactive
Glimpse of
Perceptual Diff
Rachel Ingles
Different names
Perceptual	
  
Diff	
  
User	
  
Interface	
  
Tes4ng	
  
CSS	
  
Regression	
  
Tes4ng	
  
Visual	
  
Regression	
  
Tes4ng	
  
Visual comparison
Stable	
   New	
  Release	
  
x
x
x
Image	
  from	
  scalingengineeringfordigital.files.wordpress.com	
  
Site1: (Sample production)
Sample	
  site	
  from	
  Michael	
  Gilbert	
  
Site 2: New Release
Spot the difference
Resemble.js (http://huddle.github.io/Resemble.js/)
Different	
  Same	
  
Compare	
  
Analyze	
  
Image	
  
Interactive Site: Using sample images
Interactive Site: Other options
Interactive Site: Using Site1 and Site2
Resemble.js: Code snippet
resemble(file).compareTo(file2).onComplete
(function(data){	
  
	
  return	
  data;	
  
	
  /*	
  
	
  {	
  
	
  	
  	
  misMatchPercentage	
  :	
  100,	
  //	
  %	
  
	
  	
  	
  isSameDimensions:	
  true,	
  //	
  or	
  false	
  
	
  	
  	
  getImageDataUrl:	
  function(){}	
  
	
  }	
  
	
  */	
  
});	
  
Other tools
Takes	
  screenshots	
  
Compares	
  images	
  
Generates	
  	
  
reports	
  
Images	
  from	
  cliparts.co	
  
Other tools
CSS Critic (https://github.com/cburgmer/csscritic)
•  Lightweight
tool for CSS
CSS Critic: Setup
•  npm	
  install	
  csscritic	
  
CSS Critic: Setup
•  Create	
  RegressionRunner.html	
  file	
  
•  Register	
  page/s	
  under	
  test	
  
	
  
csscritic.add({	
  
	
  	
  	
  	
  url:	
  'SOME_URL',	
  	
  	
  	
  	
  //	
  link	
  to	
  the	
  test	
  case	
  HTML	
  document	
  
	
  	
  	
  	
  //	
  Optionally:	
  
	
  	
  	
  	
  desc:	
  'some	
  text',	
  	
  	
  //	
  a	
  description	
  of	
  the	
  test	
  case	
  
	
  	
  	
  	
  width:	
  number,	
  	
  	
  	
  	
  	
  	
  //	
  the	
  viewport	
  width	
  in	
  pixel	
  
	
  	
  	
  	
  height:	
  number,	
  	
  	
  	
  	
  	
  //	
  the	
  viewport	
  height	
  in	
  pixel	
  
…	
  
});	
  
Initial Load: Need baseline
Accepted baseline
Differences found
CSS Critic: Limitations
•  Firefox and Chrome only
•  Same origin restrictions
Dpxdt (https://github.com/bslatkin/dpxdt)
workers	
  
Dpxdt: YAML configuration
setup:	
  |	
  
	
  	
  	
  	
  python	
  -­‐m	
  SimpleHTTPServer	
  
	
  
waitFor:	
  
	
  	
  	
  	
  url:	
  http://localhost/Site1/www/index.html	
  
	
  	
  	
  	
  timeout_secs:	
  5	
  
	
  
tests:	
  
	
  	
  -­‐	
  name:	
  demo	
  
	
  	
  	
  	
  url:	
  http://localhost/Site1/www/index.html	
  
	
  	
  	
  	
  config:	
  
	
  	
  	
  	
  	
  	
  	
  	
  viewportSize:	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  width:	
  800	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  height:	
  600	
  
	
  	
  	
  	
  	
  	
  	
  	
  injectCss:	
  |	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  body	
  {	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  background-­‐color:	
  white;	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  }	
  
Local Dpxdt: Modes
dpxdt	
  [update|test]	
  [test_directory]	
  
•  update
Image	
  from	
  cliparts.co	
  
Baseline	
  
Compare	
  
?	
  
Local Dpxdt: Modes
dpxdt	
  [update|test]	
  [test_directory]	
  
•  test
Images	
  from	
  cliparts.co	
  
Baseline	
  
Compare	
  
Dpxtd: Server Approach
•  Python virtual directory
Dpxtd: Server Approach options
•  Site Diff
•  Pair Diff
•  Diff My Images
•  Diff My URLs
Dpxtd: Site Diff
Main	
  
Page1	
  
Page3	
  
Page4	
  
Page2	
   Page5	
  
Dpxtd: Pair Diff
Site	
  1	
   Site2	
  
Img1	
  
Img2	
  
Img3	
  
Img1	
  
Img2	
  
Dpxtd: Diff My Images
Before	
  
Img3	
  
Img2	
  
Img1	
  
AMer	
  
Img3	
  
Img2	
  
Img1	
  
Dpxtd: Diff My URLs
Before	
  
URL3	
  
URL2	
  
URL1	
  
AMer	
  
URL3	
  
URL2	
  
URL1	
  
EXAMPLE: Pair Diff
./run_url_pair_diff.sh	
  [build	
  num]	
  [site1]	
  [site2]	
  
EXAMPLE: Pair Diff
 	
   	
  	
   	
  	
   	
  	
  
Summary
Images	
  from	
  cliparts.co	
  
Selenium	
  
PhantomJS	
  
ResembleJS	
  
ImageMagick	
  
CSSCri4c	
  
Dpxtd	
  
PhantomCSS	
  
Wraith	
  
Applitools	
  
Capture	
   Compare	
   Report	
   Perceptual	
  
Diff	
  
References
•  Responsive Started Kit Pro - https://github.com/
mpgilbertusa/Responsive-Starter-Kit-Pro
•  Resemble.js – http://huddle.github.io/Resemble.js/
•  CSS Critic - https://github.com/cburgmer/csscritic
•  Dpxdt - https://github.com/bslatkin/dpxdt
Rachel Ingles
Test Automation Developer
ICF Interactive
rachel.ingles@icfi.com
Ad

Recommended

Python Programming for ArcGIS: Part II
Python Programming for ArcGIS: Part II
DUSPviz
 
Managing data workflows with Luigi
Managing data workflows with Luigi
Teemu Kurppa
 
Automation in ArcGIS using Arcpy
Automation in ArcGIS using Arcpy
Geodata AS
 
CIRCUIT 2015 - Orchestrate your story with interactive video and web content
CIRCUIT 2015 - Orchestrate your story with interactive video and web content
ICF CIRCUIT
 
CIRCUIT 2015 - Responsive Websites & Grid-Based Layouts
CIRCUIT 2015 - Responsive Websites & Grid-Based Layouts
ICF CIRCUIT
 
Circuit 2015 Keynote - Carsten Ziegeler
Circuit 2015 Keynote - Carsten Ziegeler
ICF CIRCUIT
 
CIRCUIT 2015 - 10 Things Apache Sling Can Do
CIRCUIT 2015 - 10 Things Apache Sling Can Do
ICF CIRCUIT
 
Testing CSS - Front end ops by Arpit Maheshwari
Testing CSS - Front end ops by Arpit Maheshwari
Arpit Maheshwari
 
Web Pages Visual Similarity - Search Central Live Zurich 2024
Web Pages Visual Similarity - Search Central Live Zurich 2024
Giacomo Zecchini
 
Advanced Automated Visual Testing
Advanced Automated Visual Testing
adamcarmi
 
Advanced automated visual testing with Selenium
Advanced automated visual testing with Selenium
adamcarmi
 
Authenticate Aadhar Card Picture with Current Image using Content Based Image...
Authenticate Aadhar Card Picture with Current Image using Content Based Image...
ijtsrd
 
AI-Powered Testing Strategies for the Seasonal Shopping Surge.pdf
AI-Powered Testing Strategies for the Seasonal Shopping Surge.pdf
Applitools
 
Test-proof CSS
Test-proof CSS
Vittorio Vittori
 
SeConf2015: Advanced Automated Visual Testing With Selenium
SeConf2015: Advanced Automated Visual Testing With Selenium
adamcarmi
 
Web dev tools review
Web dev tools review
Changhyun Lee
 
Advanced Visual Test Automation With Selenium
Advanced Visual Test Automation With Selenium
adamcarmi
 
Automated visual-regression-testing
Automated visual-regression-testing
Sriram Angajala
 
Automated visual-regression-testing (1)
Automated visual-regression-testing (1)
Sriram Angajala
 
Colorful world-of-visual-automation-testing-latest
Colorful world-of-visual-automation-testing-latest
Onur Baskirt
 
Automated Visual Testing That Does Not Suck
Automated Visual Testing That Does Not Suck
adamcarmi
 
Automated Visual Testing That Doesn't Suck!
Automated Visual Testing That Doesn't Suck!
Applitools
 
document
document
Sascha Nawrot
 
Advanced Visual Test Automation with Selenium
Advanced Visual Test Automation with Selenium
adamcarmi
 
Selenium-based Visual Test Automation
Selenium-based Visual Test Automation
Applitools
 
Identifying Auxiliary Web Images Using Combinations of Analyses
Identifying Auxiliary Web Images Using Combinations of Analyses
Tewson Seeoun
 
Selenium Based Visual Test Automation
Selenium Based Visual Test Automation
adamcarmi
 
Adam carmi
Adam carmi
CodeFest
 
CIRCUIT 2015 - Hybrid App Development with AEM Apps
CIRCUIT 2015 - Hybrid App Development with AEM Apps
ICF CIRCUIT
 
CIRCUIT 2015 - AEM Infrastructure Automation with Chef Cookbooks
CIRCUIT 2015 - AEM Infrastructure Automation with Chef Cookbooks
ICF CIRCUIT
 

More Related Content

Similar to CIRCUIT 2015 - Glimpse of perceptual diff (20)

Web Pages Visual Similarity - Search Central Live Zurich 2024
Web Pages Visual Similarity - Search Central Live Zurich 2024
Giacomo Zecchini
 
Advanced Automated Visual Testing
Advanced Automated Visual Testing
adamcarmi
 
Advanced automated visual testing with Selenium
Advanced automated visual testing with Selenium
adamcarmi
 
Authenticate Aadhar Card Picture with Current Image using Content Based Image...
Authenticate Aadhar Card Picture with Current Image using Content Based Image...
ijtsrd
 
AI-Powered Testing Strategies for the Seasonal Shopping Surge.pdf
AI-Powered Testing Strategies for the Seasonal Shopping Surge.pdf
Applitools
 
Test-proof CSS
Test-proof CSS
Vittorio Vittori
 
SeConf2015: Advanced Automated Visual Testing With Selenium
SeConf2015: Advanced Automated Visual Testing With Selenium
adamcarmi
 
Web dev tools review
Web dev tools review
Changhyun Lee
 
Advanced Visual Test Automation With Selenium
Advanced Visual Test Automation With Selenium
adamcarmi
 
Automated visual-regression-testing
Automated visual-regression-testing
Sriram Angajala
 
Automated visual-regression-testing (1)
Automated visual-regression-testing (1)
Sriram Angajala
 
Colorful world-of-visual-automation-testing-latest
Colorful world-of-visual-automation-testing-latest
Onur Baskirt
 
Automated Visual Testing That Does Not Suck
Automated Visual Testing That Does Not Suck
adamcarmi
 
Automated Visual Testing That Doesn't Suck!
Automated Visual Testing That Doesn't Suck!
Applitools
 
document
document
Sascha Nawrot
 
Advanced Visual Test Automation with Selenium
Advanced Visual Test Automation with Selenium
adamcarmi
 
Selenium-based Visual Test Automation
Selenium-based Visual Test Automation
Applitools
 
Identifying Auxiliary Web Images Using Combinations of Analyses
Identifying Auxiliary Web Images Using Combinations of Analyses
Tewson Seeoun
 
Selenium Based Visual Test Automation
Selenium Based Visual Test Automation
adamcarmi
 
Adam carmi
Adam carmi
CodeFest
 
Web Pages Visual Similarity - Search Central Live Zurich 2024
Web Pages Visual Similarity - Search Central Live Zurich 2024
Giacomo Zecchini
 
Advanced Automated Visual Testing
Advanced Automated Visual Testing
adamcarmi
 
Advanced automated visual testing with Selenium
Advanced automated visual testing with Selenium
adamcarmi
 
Authenticate Aadhar Card Picture with Current Image using Content Based Image...
Authenticate Aadhar Card Picture with Current Image using Content Based Image...
ijtsrd
 
AI-Powered Testing Strategies for the Seasonal Shopping Surge.pdf
AI-Powered Testing Strategies for the Seasonal Shopping Surge.pdf
Applitools
 
SeConf2015: Advanced Automated Visual Testing With Selenium
SeConf2015: Advanced Automated Visual Testing With Selenium
adamcarmi
 
Web dev tools review
Web dev tools review
Changhyun Lee
 
Advanced Visual Test Automation With Selenium
Advanced Visual Test Automation With Selenium
adamcarmi
 
Automated visual-regression-testing
Automated visual-regression-testing
Sriram Angajala
 
Automated visual-regression-testing (1)
Automated visual-regression-testing (1)
Sriram Angajala
 
Colorful world-of-visual-automation-testing-latest
Colorful world-of-visual-automation-testing-latest
Onur Baskirt
 
Automated Visual Testing That Does Not Suck
Automated Visual Testing That Does Not Suck
adamcarmi
 
Automated Visual Testing That Doesn't Suck!
Automated Visual Testing That Doesn't Suck!
Applitools
 
Advanced Visual Test Automation with Selenium
Advanced Visual Test Automation with Selenium
adamcarmi
 
Selenium-based Visual Test Automation
Selenium-based Visual Test Automation
Applitools
 
Identifying Auxiliary Web Images Using Combinations of Analyses
Identifying Auxiliary Web Images Using Combinations of Analyses
Tewson Seeoun
 
Selenium Based Visual Test Automation
Selenium Based Visual Test Automation
adamcarmi
 
Adam carmi
Adam carmi
CodeFest
 

More from ICF CIRCUIT (9)

CIRCUIT 2015 - Hybrid App Development with AEM Apps
CIRCUIT 2015 - Hybrid App Development with AEM Apps
ICF CIRCUIT
 
CIRCUIT 2015 - AEM Infrastructure Automation with Chef Cookbooks
CIRCUIT 2015 - AEM Infrastructure Automation with Chef Cookbooks
ICF CIRCUIT
 
CIRCUIT 2015 - Monitoring AEM
CIRCUIT 2015 - Monitoring AEM
ICF CIRCUIT
 
CIRCUIT 2015 - Akamai: Caching and Beyond
CIRCUIT 2015 - Akamai: Caching and Beyond
ICF CIRCUIT
 
CIRCUIT 2015 - Free Beer and Testing
CIRCUIT 2015 - Free Beer and Testing
ICF CIRCUIT
 
CIRCUIT 2015 - UI Customization in AEM 6.1
CIRCUIT 2015 - UI Customization in AEM 6.1
ICF CIRCUIT
 
CIRCUIT 2015 - Content API's For AEM Sites
CIRCUIT 2015 - Content API's For AEM Sites
ICF CIRCUIT
 
How to migrate from any CMS (thru the front-door)
How to migrate from any CMS (thru the front-door)
ICF CIRCUIT
 
Maximize the power of OSGi in AEM
Maximize the power of OSGi in AEM
ICF CIRCUIT
 
CIRCUIT 2015 - Hybrid App Development with AEM Apps
CIRCUIT 2015 - Hybrid App Development with AEM Apps
ICF CIRCUIT
 
CIRCUIT 2015 - AEM Infrastructure Automation with Chef Cookbooks
CIRCUIT 2015 - AEM Infrastructure Automation with Chef Cookbooks
ICF CIRCUIT
 
CIRCUIT 2015 - Monitoring AEM
CIRCUIT 2015 - Monitoring AEM
ICF CIRCUIT
 
CIRCUIT 2015 - Akamai: Caching and Beyond
CIRCUIT 2015 - Akamai: Caching and Beyond
ICF CIRCUIT
 
CIRCUIT 2015 - Free Beer and Testing
CIRCUIT 2015 - Free Beer and Testing
ICF CIRCUIT
 
CIRCUIT 2015 - UI Customization in AEM 6.1
CIRCUIT 2015 - UI Customization in AEM 6.1
ICF CIRCUIT
 
CIRCUIT 2015 - Content API's For AEM Sites
CIRCUIT 2015 - Content API's For AEM Sites
ICF CIRCUIT
 
How to migrate from any CMS (thru the front-door)
How to migrate from any CMS (thru the front-door)
ICF CIRCUIT
 
Maximize the power of OSGi in AEM
Maximize the power of OSGi in AEM
ICF CIRCUIT
 
Ad

Recently uploaded (20)

Cluster-Based Multi-Objective Metamorphic Test Case Pair Selection for Deep N...
Cluster-Based Multi-Objective Metamorphic Test Case Pair Selection for Deep N...
janeliewang985
 
AI vs Human Writing: Can You Tell the Difference?
AI vs Human Writing: Can You Tell the Difference?
Shashi Sathyanarayana, Ph.D
 
Techniques for Automatic Device Identification and Network Assignment.pdf
Techniques for Automatic Device Identification and Network Assignment.pdf
Priyanka Aash
 
Wenn alles versagt - IBM Tape schützt, was zählt! Und besonders mit dem neust...
Wenn alles versagt - IBM Tape schützt, was zählt! Und besonders mit dem neust...
Josef Weingand
 
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
caoyixuan2019
 
A Constitutional Quagmire - Ethical Minefields of AI, Cyber, and Privacy.pdf
A Constitutional Quagmire - Ethical Minefields of AI, Cyber, and Privacy.pdf
Priyanka Aash
 
GenAI Opportunities and Challenges - Where 370 Enterprises Are Focusing Now.pdf
GenAI Opportunities and Challenges - Where 370 Enterprises Are Focusing Now.pdf
Priyanka Aash
 
Coordinated Disclosure for ML - What's Different and What's the Same.pdf
Coordinated Disclosure for ML - What's Different and What's the Same.pdf
Priyanka Aash
 
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Safe Software
 
Python Conference Singapore - 19 Jun 2025
Python Conference Singapore - 19 Jun 2025
ninefyi
 
AI Agents and FME: A How-to Guide on Generating Synthetic Metadata
AI Agents and FME: A How-to Guide on Generating Synthetic Metadata
Safe Software
 
Security Tips for Enterprise Azure Solutions
Security Tips for Enterprise Azure Solutions
Michele Leroux Bustamante
 
cnc-processing-centers-centateq-p-110-en.pdf
cnc-processing-centers-centateq-p-110-en.pdf
AmirStern2
 
EIS-Webinar-Engineering-Retail-Infrastructure-06-16-2025.pdf
EIS-Webinar-Engineering-Retail-Infrastructure-06-16-2025.pdf
Earley Information Science
 
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC
 
Connecting Data and Intelligence: The Role of FME in Machine Learning
Connecting Data and Intelligence: The Role of FME in Machine Learning
Safe Software
 
2025_06_18 - OpenMetadata Community Meeting.pdf
2025_06_18 - OpenMetadata Community Meeting.pdf
OpenMetadata
 
Salesforce Summer '25 Release Frenchgathering.pptx.pdf
Salesforce Summer '25 Release Frenchgathering.pptx.pdf
yosra Saidani
 
You are not excused! How to avoid security blind spots on the way to production
You are not excused! How to avoid security blind spots on the way to production
Michele Leroux Bustamante
 
Curietech AI in action - Accelerate MuleSoft development
Curietech AI in action - Accelerate MuleSoft development
shyamraj55
 
Cluster-Based Multi-Objective Metamorphic Test Case Pair Selection for Deep N...
Cluster-Based Multi-Objective Metamorphic Test Case Pair Selection for Deep N...
janeliewang985
 
AI vs Human Writing: Can You Tell the Difference?
AI vs Human Writing: Can You Tell the Difference?
Shashi Sathyanarayana, Ph.D
 
Techniques for Automatic Device Identification and Network Assignment.pdf
Techniques for Automatic Device Identification and Network Assignment.pdf
Priyanka Aash
 
Wenn alles versagt - IBM Tape schützt, was zählt! Und besonders mit dem neust...
Wenn alles versagt - IBM Tape schützt, was zählt! Und besonders mit dem neust...
Josef Weingand
 
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
caoyixuan2019
 
A Constitutional Quagmire - Ethical Minefields of AI, Cyber, and Privacy.pdf
A Constitutional Quagmire - Ethical Minefields of AI, Cyber, and Privacy.pdf
Priyanka Aash
 
GenAI Opportunities and Challenges - Where 370 Enterprises Are Focusing Now.pdf
GenAI Opportunities and Challenges - Where 370 Enterprises Are Focusing Now.pdf
Priyanka Aash
 
Coordinated Disclosure for ML - What's Different and What's the Same.pdf
Coordinated Disclosure for ML - What's Different and What's the Same.pdf
Priyanka Aash
 
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Safe Software
 
Python Conference Singapore - 19 Jun 2025
Python Conference Singapore - 19 Jun 2025
ninefyi
 
AI Agents and FME: A How-to Guide on Generating Synthetic Metadata
AI Agents and FME: A How-to Guide on Generating Synthetic Metadata
Safe Software
 
Security Tips for Enterprise Azure Solutions
Security Tips for Enterprise Azure Solutions
Michele Leroux Bustamante
 
cnc-processing-centers-centateq-p-110-en.pdf
cnc-processing-centers-centateq-p-110-en.pdf
AmirStern2
 
EIS-Webinar-Engineering-Retail-Infrastructure-06-16-2025.pdf
EIS-Webinar-Engineering-Retail-Infrastructure-06-16-2025.pdf
Earley Information Science
 
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC
 
Connecting Data and Intelligence: The Role of FME in Machine Learning
Connecting Data and Intelligence: The Role of FME in Machine Learning
Safe Software
 
2025_06_18 - OpenMetadata Community Meeting.pdf
2025_06_18 - OpenMetadata Community Meeting.pdf
OpenMetadata
 
Salesforce Summer '25 Release Frenchgathering.pptx.pdf
Salesforce Summer '25 Release Frenchgathering.pptx.pdf
yosra Saidani
 
You are not excused! How to avoid security blind spots on the way to production
You are not excused! How to avoid security blind spots on the way to production
Michele Leroux Bustamante
 
Curietech AI in action - Accelerate MuleSoft development
Curietech AI in action - Accelerate MuleSoft development
shyamraj55
 
Ad

CIRCUIT 2015 - Glimpse of perceptual diff