Skip to main content
Monitoring as Code works by connecting Playwrighttest files with Checkly constructs to handle the end-to-endconfiguration of your Browser Check.

Browser Check Construct

The Browser Check construct is used to configure your monitoring settings, such as frequency, locations, and tags. Learn more about the Browser Check Construct
browser-check.ts
import { BrowserCheck, Frequency } from 'checkly/constructs'
import * as path from 'path'

new BrowserCheck('browser-check-1', {
  name: 'Browser check #1',
  frequency: Frequency.EVERY_10M,
  locations: ['us-east-1', 'eu-west-1'],
  code: {
    entrypoint: path.join(__dirname, 'login.spec.js')
  }
})

Test Script Structure

Checkly uses Playwright to power Browser Checks. Playwright is a robust, open-source framework for browser automation and end-to-end web application testing. It enables you to write atomic, reliable tests and easily control interactions within a web page. Browser checks execute automated test scripts in real browsers.
login.spec.ts
// Use environment-specific URLs and credentials
const baseURL = process.env.BASE_URL || 'https://app.example.com'
const testUser = process.env.TEST_USER_EMAIL
const testPassword = process.env.TEST_USER_PASSWORD

test('Environment-aware test', async ({ page }) => {
  await page.goto(`${baseURL}/login`)
  await page.fill('[name="email"]', testUser)
  await page.fill('[name="password"]', testPassword)
  // ... rest of test
})

Environment variables

Check, group and global variables are accessible in your code using the standard Node.js process.env.MY_VAR notation. For example, the code snippet below show how you can log into GitHub.
variables.spec.ts
import { test } from '@playwright/test'

test('GitHub login', async ({ page }) => {
  await page.goto('https://github.com/login')
  await page.getByLabel('Username or email address').type(process.env.GITHUB_USER)
  await page.getByLabel('Password').type(process.env.GITHUB_PWD)
  await page.getByRole('button', { name: 'Sign in' }).click()
})

Built-in runtime variables

Our check runtimes also expose a set of environment variables (e.g. process.env.CHECK_NAME) to figure out what check, check type etc. you are running.
VariableDescriptionAvailability
ACCOUNT_IDThe ID of the account the check belongs to.
CHECK_IDThe UUID of the check being executed.Only available after saving the check.
CHECK_NAMEThe name of the check being executed.
CHECK_RESULT_IDThe UUID where the result will be saved.Only available on scheduled runs.
CHECK_RUN_IDThe UUID of the check run execution.Only available on scheduled runs.
CHECK_TYPEThe type of the check, e.g. BROWSER.
PUBLIC_IP_V4The IPv4 of the check run execution.
PUBLIC_IP_V6The IPv6 of the check run execution.
REGIONThe current region, e.g. us-west-1.
RUNTIME_VERSIONThe version of the runtime, e.g, 2023.09.Only in Browser, Multistep, and API setup/teardown scripts.