question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Chromy engine runs slow with scenarios containing many selectors

See original GitHub issue

Hi Garris,

Creating a ticket in reference to #479.

Running backstop reference while using "engine": "chromy" takes forever to finish (not actually had it complete yet), whereas phantomjs finishes in 15s.

Backstop version: BackstopJS v3.0.4 Node version: v7.6.0

Snapshot of the backstop.json:

  "viewports": [
    {
      "name": "mobile",
      "width": 375,
      "height": 564
    },
    {
      "name": "tablet",
      "width": 768,
      "height": 1024
    },
    {
      "name": "desktop",
      "width": 1240,
      "height": 1024
    }
  ],
  "scenarios": [
    {
      "label": "Patternlab",
      "url": "Patternlab/public/styleguide/html/styleguide.html",
      "hideSelectors": [
        "[data-shop-map]",
        "[data-search-map]"
      ],
      "removeSelectors": [
        ".sg-pattern-head",
        ".sg-pattern-extra"
      ],
      "selectorExpansion": true,
      "selectors": [
        ".sg-pattern"
      ],
      "readyEvent": null,
      "delay": 500,
      "misMatchThreshold": 0.1,
      "requireSameDimensions": true
    }
  ],
  "engine": "chromy",
  "report": ["browser"]

Just an idea of how long it takes (there are ~54 components on the page): gif

Console output when using "engine": "chromy":

BackstopJS v3.0.4
Loading config:  /Users/daveaspinall/Sites/oxfam/oxfam-main/backstop.json 

COMMAND | Executing core for `reference`
  clean | backstop_data/bitmaps_reference was cleaned.
createBitmaps | Selcted 1 of 1 scenarios.
Starting Chromy: port:9222 [ '--window-size=375,564' ]
CREATING NEW REFERENCE FILES
Starting Chromy: port:9223 [ '--window-size=768,1024' ]
CREATING NEW REFERENCE FILES
Starting Chromy: port:9224 [ '--window-size=1240,1024' ]
CREATING NEW REFERENCE FILES
9222 INFO >  backstopTools are running
9223 INFO >  backstopTools are running
9224 INFO >  backstopTools are running

Run `$ backstop test` to generate diff report.

      COMMAND | Command `reference` sucessfully executed in [2143.046s]

Console output when using "engine": "phantomjs":

BackstopJS v3.0.4
Loading config:  /Users/daveaspinall/Sites/oxfam/oxfam-main/backstop.json 

COMMAND | Executing core for `reference`
  clean | backstop_data/bitmaps_reference was cleaned.
createBitmaps | Selcted 1 of 1 scenarios.

Running CasperJS with:  [ '~/.nvm/versions/node/v7.6.0/lib/node_modules/backstopjs/capture/genBitmaps.js',
  '--captureConfigFileName=/var/folders/44/1j9_33pj2kj0ygpsg03jmk_chh6558/T/capture/faaa966138ec0284c589c66a65cb1ca2ffc37025.json' ]
CasperJS:  CREATING NEW REFERENCE FILES
CasperJS:  Ready event received.
CasperJS:  Current location is Patternlab/public/styleguide/html/styleguide.html
CasperJS:  Capturing screenshots for mobile (375x564)
CasperJS:  Ready event received.
CasperJS:  Current location is Patternlab/public/styleguide/html/styleguide.html
CasperJS:  Capturing screenshots for tablet (768x1024)
CasperJS:  Ready event received.
CasperJS:  Current location is Patternlab/public/styleguide/html/styleguide.html
CasperJS:  Capturing screenshots for desktop (1240x1024)
CasperJS:  Comparison config file updated.

Bitmap file generation completed.

Run `$ backstop test` to generate diff report.

      COMMAND | Command `reference` sucessfully executed in [15.859s]

Any ideas what could be slowing this down? Let me know if you need any more info and I’ll post it up.

Thanks 🤓

Issue Analytics

  • State:closed
  • Created 6 years ago
  • Comments:33 (17 by maintainers)

github_iconTop GitHub Comments

6reactions
daveaspinallcommented, Aug 1, 2017

@garris Can confirm the reference task is much much faster!

Was:

COMMAND | Command `reference` sucessfully executed in [2143.046s]

Now:

COMMAND | Command `reference` sucessfully executed in [35.389s]

Seriously great work!! 🙌🏼 Going to mark this issue as complete 🎉

Now to fix our issue with Chromy in my Docker container and our setup with be sweet

2reactions
dotneetcommented, Jul 21, 2017

@daveaspinall Thanks! I found the cause of this problem.

@garris Please update chromy version. chromy ver.0.3.3 doesn’t work with chrome61 (canary). 0.3.4 or later works.

Read more comments on GitHub >

github_iconTop Results From Across the Web

Slow Selector selection when Open and Attach Browser is ...
If you use Open Browser together with Attach Browser and in there have a Selector activity like Element Exists. The Selection is super...
Read more >
Selenium Element Selectors - I thought xPath was slowest?
I ran one hub with five nodes; mac/chrome/local, mac/safari/local, mac/ff/local, win7/ie9/localVM, and win8/ie10,localVM. The tests were all running in parallel ...
Read more >
Build a custom selector - Power Automate | Microsoft Learn
Although Power Automate enables users to create selectors automatically, some particular scenarios need manually created selectors. A common ...
Read more >
CSS selectors for Selenium with example
Css selectors in selenium has great advantage with respect to performance ... In IE Xpath works very slow, where as Css works faster...
Read more >
CSS performance revisited: selectors, bloat and expensive ...
It is practically impossible to predict the final performance impact of a given selector by just examining the selectors. In the engine, ...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found