---
title: Puppeteer Testing in the Cloud | TestingBot Blog
description: Start running Puppeteer tests in the cloud with TestingBot.
source_url:
  html: https://testingbot.com/blog/puppeteer-cloud-testing
  md: https://testingbot.com/blog/puppeteer-cloud-testing.md
---

# Puppeteer testing

Start running Puppeteer tests in the cloud with TestingBot.

By [Jochen D.](https://testingbot.com/about/jochen-d)2021-04-09

 Share on Facebook 

 Share on Twitter 

 Post on Reddit 

 Share link 

TestingBot has been providing a Selenium-based cloud service since 2012.

We started with offering a Selenium RC compatible grid and added Selenium WebDriver support when it was released.

In recent years, a number of other E2E testing frameworks have emerged. While these new frameworks offer the same end result (automated testing in browsers), their integration differs from each other.

In August 2020, we've added support for running [TestCafe tests](https://testingbot.com/blog/testcafe-testingbot-plugin) on our browser grid.  
A couple of months later, in November 2020, TestingBot announced support for [Cypress Testing](https://testingbot.com/blog/testingbot-cypress) in the cloud, allowing customers to run Cypress tests on multiple browsers in the cloud, with support for parallelisation and screenshots/video recording

Today, TestingBot announces support for another popular framework: Puppeteer

## Puppeteer Testing

Puppeteer is a NodeJS framework created by Google, which utilizes the Chrome DevTools protocol to automate a (Chromium) browser.

By default, it runs in headless mode, which means there's no browser UI. There is an option to run in normal (headfull) mode, allowing our screen recording to record a video from your Puppeteer tests.

Puppeteer offers a nice `async` interface to interact with the browser. You can read the full [Puppeteer documentation](https://pptr.dev/) to find out which methods are available.

To start using Puppeteer with the TestingBot cloud, you'll need to instruct Puppeteer to connect to our Puppeteer endpoint:

```javascript
const puppeteer = require('puppeteer')

const browser = await puppeteer.connect({
  browserWSEndpoint: 'wss://cloud.testingbot.com?key={key}&secret={secret}&browserName=chrome&browserVersion=latest'
})
```

The `connect` method indicates to Puppeteer that it should connect to the TestingBot WebSocket endpoint.

When you start a Puppeteer session, Puppeteer will connect to a browser in the TestingBot cloud, through the WebSocket endpoint, and run the Puppeteer script on one of our browser VMs.

Running Puppeteer tests on TestingBot has several advantages:

- **High Concurrency** : You can run multiple sessions simultaneously (in parallel), which means you'll get the results from your scripts/tests faster.
- **Versions/Platforms** : We maintain a big collection of different [browsers, browser versions and platforms](https://testingbot.com/support/web-automate/browsers). No need to maintain, update and fix browser issues in your local Kubernetes/Grid setup.
- **Assets** : TestingBot will record a video of the test and collect various logfiles

## Puppeteer Testing

On its own, Puppeteer is just an automation framework, designed to automate a browser.

There's two popular testing frameworks to use in combination with Puppeteer:

- [Jest with Puppeteer](https://testingbot.com#jest)
- [PyTest and Puppeteer](https://testingbot.com#pytest)

### Jest with Puppeteer

If you're looking to do actual E2E testing, you can use a framework like Jest. Jest is a popular testing framework and works very well in combination with Puppeteer.

By using `jest-puppeteer`(which is a Jest preset) and configuring the `browserWSEndpoint`, you can create Jest tests like this:

```javascript
describe('Google', () => {
  beforeAll(async () => {
    await page.goto('https://google.com')
  })

  it('should display google text on page', async () => {
    await expect(page).toMatch('google')
  })
})
```

The great thing about this preset is that it does the connecting and closing of the WebSocket connections before and after each test.

For more information regarding using Jest and Puppeteer, please see our [Puppeteer + Jest documentation](https://testingbot.com/support/web-automate/puppeteer/jest).

### PyTest and Puppeteer

For Python Testers, PyTest using `pytest-pyppeteer` and `pytest-asyncio` provides an easy way to run Puppeteer tests. You'll need to install `pyppeteer.`

An example on how to do this with Pyppeteer

```python
import pytest
import pyppeteer

@pytest.mark.asyncio
async def test_title():
  try:
    browser = await pyppeteer.connect(browserWSEndpoint='wss://cloud.testingbot.com?key=key&secret=secret&browserName=chrome&browserVersion=latest')

    page = await browser.newPage()
    await page.goto('https://testingbot.com')
    title = await page.title()
    assert title == 'Cross Browser Testing and Mobile App Testing | TestingBot'
    await browser.close()
  except E:
    print(E)
```

For more information about Pyppeteer, please see our [PyTest documentation](https://testingbot.com/support/web-automate/puppeteer/pytest).

## Puppeteer Recorder

Another popular feature is the Puppeteer Recorder, which is built into Chrome DevTools.  
At the time of writing it's still behind an experimental flag. The recorder allows you to record the interactions from your Chrome browser to a Puppeteer script file.

You can see a full example on our [Puppeteer Recorder documentation](https://testingbot.com/support/web-automate/puppeteer/recorder) to get started.

## Puppeteer options

Puppeteer offers some nice features to use while testing:

- `page.emulateMediaFeatures`: this allows you to to test color schemes, reduced motion and color-gamuts.
- `page.emulateNetworkConditions`: emulate specific network conditions, test your webpage with specific network speeds.
- `page.emulateVisionDeficiency`: simulate a vision deficiency, including achromatopsia, deuteranopia, protanopia, tritanopia, and blurredVision.

Puppeteer offers various options to customize [taking screenshots](https://pptr.dev/#?product=Puppeteer&version=main&show=api-pagescreenshotoptions) of your webpages.

Next to taking full page screenshots, Puppeteer can also take [screenshots of specific DOM elements](https://pptr.dev/#?product=Puppeteer&version=main&show=api-elementhandlescreenshotoptions). This allows for comparing previous element screenshots to detect visual differences, which we'll discuss in a later blog post.

To conclude, Puppeteer is a robust and very performant framework, designed to automate Chromium browsers.  
Take advantage of our new integration and [start running Puppeteer tests](https://testingbot.com/support/web-automate/puppeteer) on Chrome and Microsoft Edge browsers on TestingBot.

[← Previous post Run Cypress tests on TestingBot's Browser Grid](https://testingbot.com/blog/testingbot-cypress) [Next post → Automated Accessibility Testing with TestingBot](https://testingbot.com/blog/automated-accessibility-testing)

## Sidebar

### TestingBot Cloud Testing

Run automated, manual and visual tests on remote browsers and devices. Sign up for a free trial.

[Free Trial](https://testingbot.com/users/sign_up)

### Latest articles

[![Announcing AI Test Insights](https://testingbot.com/assets/blog/2026/ai-insights.jpg)](https://testingbot.com/blog/ai-test-insights)

#### Announcing AI Test Insights

Use AI Insights to quickly discover why an automated test...

[Read: Announcing AI Test Insights](https://testingbot.com/blog/ai-test-insights)

[![Selenium vs Playwright 2026](https://testingbot.com/assets/blog/2026/selenium-vs-playwright-2026.jpg)](https://testingbot.com/blog/selenium-vs-playwright)

#### Selenium vs Playwright 2026

Comparing Selenium vs Playwright - which is the best test...

[Read: Selenium vs Playwright 2026](https://testingbot.com/blog/selenium-vs-playwright)

[![Maestro Physical Device Testing](https://testingbot.com/assets/blog/2026/maestro-physical.jpg)](https://testingbot.com/blog/maestro-physical-device-testing)

#### Maestro Physical Device Testing

Maestro testing in parallel on physical Android and iOS d...

[Read: Maestro Physical Device Testing](https://testingbot.com/blog/maestro-physical-device-testing)

## Related Articles

[![Selenium vs Playwright 2026](https://testingbot.com/assets/blog/2026/selenium-vs-playwright-2026.jpg)](https://testingbot.com/blog/selenium-vs-playwright "Selenium vs Playwright 2026")

### [Selenium vs Playwright 2026](https://testingbot.com/blog/selenium-vs-playwright)

Comparing Selenium vs Playwright - which is the best test framework for your usecase?

[Read article →](https://testingbot.com/blog/selenium-vs-playwright)

[![Selenium 20th birthday](https://testingbot.com/assets/blog/2024/selenium20.webp)](https://testingbot.com/blog/selenium-20-years "Selenium 20th birthday")

### [Selenium 20th birthday](https://testingbot.com/blog/selenium-20-years)

Celebrate Selenium's 20th birthday. An overview of the years.

[Read article →](https://testingbot.com/blog/selenium-20-years)

[![Playwright Testing on TestingBot](https://testingbot.com/assets/blog/2023/playwright-testing.jpg)](https://testingbot.com/blog/playwright-testing-introduction "Playwright Testing on TestingBot")

### [Playwright Testing on TestingBot](https://testingbot.com/blog/playwright-testing-introduction)

Learn how Playwright can run your automated tests on a variety of browsers, local or remote browsers on TestingBot.

[Read article →](https://testingbot.com/blog/playwright-testing-introduction)

[![Announcing AI Test Insights](https://testingbot.com/assets/blog/2026/ai-insights.jpg)](https://testingbot.com/blog/ai-test-insights "Announcing AI Test Insights")

### [Announcing AI Test Insights](https://testingbot.com/blog/ai-test-insights)

Use AI Insights to quickly discover why an automated test failed.

[Read article →](https://testingbot.com/blog/ai-test-insights)

## More by Jochen D.

[![Announcing AI Test Insights](https://testingbot.com/assets/blog/2026/ai-insights.jpg)](https://testingbot.com/blog/ai-test-insights "Announcing AI Test Insights")
### [Announcing AI Test Insights](https://testingbot.com/blog/ai-test-insights)

Use AI Insights to quickly discover why an automated test failed.

[![Maestro Physical Device Testing](https://testingbot.com/assets/blog/2026/maestro-physical.jpg)](https://testingbot.com/blog/maestro-physical-device-testing "Maestro Physical Device Testing")
### [Maestro Physical Device Testing](https://testingbot.com/blog/maestro-physical-device-testing)

Maestro testing in parallel on physical Android and iOS devices.

[![tvOS Physical Device Testing](https://testingbot.com/assets/blog/2025/appletv.jpg)](https://testingbot.com/blog/tvos-automated-testing "tvOS Physical Device Testing")
### [tvOS Physical Device Testing](https://testingbot.com/blog/tvos-automated-testing)

Run automated tvOS tests on physical AppleTV devices.

[See all posts by Jochen D. →](https://testingbot.com/about/jochen-d)

## Ready to start testing?
[Start a free trial](https://testingbot.com/users/sign_up)
