What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
BackstopJS already runs screenshot capture and image comparison work in parallel. To tune that work, set the root-level asyncCaptureLimit and asyncCompareLimit values in your configuration, then adjust them to the memory and capacity of the machine running the tests.
How BackstopJS parallelism works
BackstopJS processes image capture and image comparison in parallel, and controls those as separate stages. asyncCaptureLimit limits concurrent screenshot captures; asyncCompareLimit limits concurrent image comparisons. Raising either limit may increase throughput, but can also increase RAM use. The project README describes its memory guidance as approximate, not a guarantee. BackstopJS README
Set the concurrency limits
Add the settings at the root of your BackstopJS configuration file. For example:
{
"asyncCaptureLimit": 5,
"asyncCompareLimit": 20
}
These values are illustrative starting points, not universal recommendations. Lower limits reduce simultaneous work and may help on memory-constrained runners; higher limits may improve throughput when the host has capacity. The README lists defaults of 10 concurrent captures and 50 concurrent comparisons. Because its master README is mutable and does not identify a release date, check that your installed BackstopJS version supports the settings and verify its defaults before relying on them.
PC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minute#1 Best Overall
Choose limits without guessing
- Begin with the installed version’s documented defaults or conservative values appropriate to your runner.
- Run a representative test suite and observe whether the machine has sufficient memory while capture and comparison work is active.
- Change one limit at a time. If memory pressure occurs, lower the limit for the stage contributing to the load; if the host has headroom and throughput is insufficient, try a measured increase.
- Repeat the same workload after each change so you can compare results on consistent terms.
The README gives an approximate comparison-memory rule of thumb: 100 MB baseline plus about 5 MB per concurrent comparison. It is the project’s estimate, not an independently measured benchmark or a promise of safe memory use. Browser processes, screenshot dimensions, workload, and runner overhead can affect actual consumption.
Run the configured tests
Use the project’s existing configuration, or pass a different file with --config. BackstopJS supports JSON and JavaScript configuration files. A locally installed CLI can be run like this:
Rank #2
./node_modules/.bin/backstop test --config=backstop.json
Replace backstop.json with the path to your configuration if needed. You can also call the CLI from an npm script or use BackstopJS’s Node API when it needs to fit an existing build process. The README documents --filter for matching scenario names, which is useful for running a focused subset while debugging. BackstopJS README
Use parallelism in CI
For actionable pipeline results, the README documents CI reporting that generates JUnit output. It also documents the CLI exit status: 0 on success and 1 if anything fails. Configure your CI system to collect the report and treat a failing test command as a failed pipeline step.
Rank #3
BackstopJS’s internal concurrency limits are documented; the sources do not establish built-in sharding semantics for splitting a configuration among independent CI workers. Distribution across jobs is an orchestration choice and may require separate configurations or filters. Avoid assuming that multiple workers will coordinate safely without checking your setup.
Keep rendering consistent across environments
BackstopJS notes that text can render differently between environments and documents backstop test --docker as an option for reducing cross-environment rendering differences. The published Docker image documents mounting the working directory at /src; its listing also says backstop openReport is unsupported in that image. Check the current image documentation for execution details and limitations: BackstopJS Docker Hub listing.
Rank #4
- Used Book in Good Condition
Troubleshoot parallel runs
- Memory use spikes or the run fails under load: reduce the relevant concurrency limit and repeat the run. The README’s memory estimate is approximate, so do not treat it as a guaranteed sizing formula.
- Changing a setting has no effect: confirm the setting is at the configuration root, that the command is using the file you edited, and that the installed BackstopJS release recognizes it.
- Local and CI screenshots differ: compare the rendering environments. The project documents Docker as an option when text differs across environments; note the published image’s
openReportlimitation. - The whole suite is too broad for diagnosis: use the documented
--filteroption to target matching scenario names, then rerun the full suite before treating the pipeline result as complete. - CI does not show test results or fail on regressions: enable the documented JUnit CI report and ensure the pipeline preserves the command’s exit status.
Or skip the browser setup
If you need screenshots by URL rather than BackstopJS baseline comparison, ScreenshotNeo offers a one-request screenshot API. See the ScreenshotNeo API documentation.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
- Cookie banners are accepted and removed before capture; known newsletter popups and chat widgets are removed too, and each cleanup step can be turned off.
- Bot checks or CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are not billed; response headers report the page verdict and billing status.
- An MCP server provides
take_screenshot,get_page_info, andcapture_pdffor AI agents and MCP clients. - The free plan includes 1,000 screenshots a month with no card; paid plans start at $5 for 3,000.
Sign up for ScreenshotNeo’s free plan.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Frequently Asked Questions
Can BackstopJS run multiple capture and comparison tasks at once?
Yes. Its README describes both stages as parallel work and exposes separate limits for capture and comparison.
Best Value
Does increasing both limits always make a test run faster?
No. Higher concurrency can increase RAM use, and the available documentation does not establish one optimal setting for every runner or workload.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




