SlideShare une entreprise Scribd logo
1  sur  35
Télécharger pour lire hors ligne
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

Contenu connexe

Similaire à CIRCUIT 2015 - Glimpse of perceptual diff

把鐵路開進視窗裡
把鐵路開進視窗裡把鐵路開進視窗裡
把鐵路開進視窗裡
Wei Jen Lu
 
Making Things Work Together
Making Things Work TogetherMaking Things Work Together
Making Things Work Together
Subbu Allamaraju
 
Kandroid for nhn_deview_20131013_v5_final
Kandroid for nhn_deview_20131013_v5_finalKandroid for nhn_deview_20131013_v5_final
Kandroid for nhn_deview_20131013_v5_final
NAVER D2
 
Leaving Flatland: Getting Started with WebGL- SXSW 2012
Leaving Flatland: Getting Started with WebGL- SXSW 2012Leaving Flatland: Getting Started with WebGL- SXSW 2012
Leaving Flatland: Getting Started with WebGL- SXSW 2012
philogb
 

Similaire à CIRCUIT 2015 - Glimpse of perceptual diff (20)

把鐵路開進視窗裡
把鐵路開進視窗裡把鐵路開進視窗裡
把鐵路開進視窗裡
 
Front-end God Mode with Reagent and Figwheel
Front-end God Mode with Reagent and FigwheelFront-end God Mode with Reagent and Figwheel
Front-end God Mode with Reagent and Figwheel
 
You've done the Django Tutorial, what next?
You've done the Django Tutorial, what next?You've done the Django Tutorial, what next?
You've done the Django Tutorial, what next?
 
Making Things Work Together
Making Things Work TogetherMaking Things Work Together
Making Things Work Together
 
22nd Athens Big Data Meetup - 1st Talk - MLOps Workshop: The Full ML Lifecycl...
22nd Athens Big Data Meetup - 1st Talk - MLOps Workshop: The Full ML Lifecycl...22nd Athens Big Data Meetup - 1st Talk - MLOps Workshop: The Full ML Lifecycl...
22nd Athens Big Data Meetup - 1st Talk - MLOps Workshop: The Full ML Lifecycl...
 
Open event presentation.3 2
Open event presentation.3 2Open event presentation.3 2
Open event presentation.3 2
 
Serverless Container with Source2Image
Serverless Container with Source2ImageServerless Container with Source2Image
Serverless Container with Source2Image
 
Serverless containers … with source-to-image
Serverless containers  … with source-to-imageServerless containers  … with source-to-image
Serverless containers … with source-to-image
 
Acquia Drupal Certification
Acquia Drupal CertificationAcquia Drupal Certification
Acquia Drupal Certification
 
Kandroid for nhn_deview_20131013_v5_final
Kandroid for nhn_deview_20131013_v5_finalKandroid for nhn_deview_20131013_v5_final
Kandroid for nhn_deview_20131013_v5_final
 
DCEU 18: App-in-a-Box with Docker Application Packages
DCEU 18: App-in-a-Box with Docker Application PackagesDCEU 18: App-in-a-Box with Docker Application Packages
DCEU 18: App-in-a-Box with Docker Application Packages
 
Node in Production at Aviary
Node in Production at AviaryNode in Production at Aviary
Node in Production at Aviary
 
Bangpypers april-meetup-2012
Bangpypers april-meetup-2012Bangpypers april-meetup-2012
Bangpypers april-meetup-2012
 
Useful practices of creation automatic tests by using cucumber jvm
Useful practices of creation automatic tests by using cucumber jvmUseful practices of creation automatic tests by using cucumber jvm
Useful practices of creation automatic tests by using cucumber jvm
 
Recent Developments in Free Medical Imaging Software
Recent Developments in Free Medical Imaging SoftwareRecent Developments in Free Medical Imaging Software
Recent Developments in Free Medical Imaging Software
 
Guides To Analyzing WebKit Performance
Guides To Analyzing WebKit PerformanceGuides To Analyzing WebKit Performance
Guides To Analyzing WebKit Performance
 
Future of Development and Deployment using Docker
Future of Development and Deployment using DockerFuture of Development and Deployment using Docker
Future of Development and Deployment using Docker
 
Designing the Call of Cthulhu app with Google App Engine
Designing the Call of Cthulhu app with Google App EngineDesigning the Call of Cthulhu app with Google App Engine
Designing the Call of Cthulhu app with Google App Engine
 
AngularJS with TypeScript and Windows Azure Mobile Services
AngularJS with TypeScript and Windows Azure Mobile ServicesAngularJS with TypeScript and Windows Azure Mobile Services
AngularJS with TypeScript and Windows Azure Mobile Services
 
Leaving Flatland: Getting Started with WebGL- SXSW 2012
Leaving Flatland: Getting Started with WebGL- SXSW 2012Leaving Flatland: Getting Started with WebGL- SXSW 2012
Leaving Flatland: Getting Started with WebGL- SXSW 2012
 

Plus de ICF CIRCUIT

Plus de ICF CIRCUIT (9)

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

Dernier

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Dernier (20)

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 

CIRCUIT 2015 - Glimpse of perceptual diff