개요

브라우저 테스트는 Datadog이 사용자의 웹 애플리케이션에서 실행하는 시나리오입니다. 구성 가능한 간격에 따라 전 세계의 여러 위치에서 다양한 브라우저 및 장치를 통해 실행됩니다. 이 테스트는 애플리케이션이 실행 중이며 요청에 응답하고 있는지, 시나리오에 정의된 조건이 충족되는지를 검증합니다.

MFA로 보호되는 애플리케이션을 테스트하는 데 관심이 있다면 전용 가이드를 읽고 Synthetic Monitoring 팀에 피드백을 보내주세요. 고객님의 팀에 가장 중요한 시스템을 개선하는 데 활용하겠습니다.

테스트 구성

다음 옵션 중 하나를 사용하여 테스트를 생성할 수 있습니다.

템플릿으로 테스트 생성

  1. 사전에 채워진 템플릿 중 하나에 마우스를 올리고 View Template을 클릭합니다. 이렇게 하면 Test Details, Alert Conditions, Steps, Variables(옵션) 등 사전에 채워진 구성 정보가 표시되는 사이드 패널이 열립니다.
  2. +Create Test를 클릭하여 구성 페이지를 열면 사전에 채워진 구성 옵션을 검토하고 편집할 수 있습니다. 표시되는 필드는 테스트 처음 생성 시 제공되는 필드와 동일합니다.
  3. 오른쪽 상단의 Save & Quit을 클릭하여 브라우저 테스트를 제출합니다.

처음부터 테스트 빌드

  1. 새 브라우저 테스트를 처음부터 시작하려면
    템플릿을 클릭합니다.
  2. Starting URL 입력: 브라우저 테스트가 시나리오를 시작하는 URL입니다.
  3. name 추가: 브라우저 테스트의 이름입니다.
  4. environment and additional tags 선택: 브라우저 테스트에 연결된 env 및 관련 태그를 설정합니다. <KEY>:<VALUE> 형식을 사용해 지정된 <KEY>의 <VALUE>를 필터링합니다.
자세한 옵션은 고급 옵션을 참조하세요.
  1. browsers and devices를 선택합니다. 테스트를 실행할 브라우저(예: Chrome, Firefox, Edge)와 장치(예: Laptop Large, Tablet, Mobile Small)입니다.

    • 대형 노트북 장치의 경우 크기는 1440 픽셀 x 1100 픽셀입니다.
    • 태블릿 장치의 경우 크기는 768 픽셀 x 1020 픽셀입니다.
    • 소형 모바일 장치의 경우 크기는 320 픽셀 x 550 픽셀입니다.
  2. managed and private locations 선택: Datadog이 관리하는 전 세계의 위치 목록에서 선택하거나 프라이빗 위치를 생성하여 사용자 지정 위치 또는 내부 프라이빗 네트워크에서 브라우저 테스트를 실행합니다.

    참고: 또한 Continuous Testing Tunnel을 사용하여 로컬 개발 환경이나 CI/CD 파이프라인에서 테스트를 트리거해 내부 환경을 테스트할 수도 있습니다.

  3. test frequency 설정: 간격은 1분마다부터 일주일에 한 번까지 다양합니다.

  4. Save & Edit Recording을 클릭하여 브라우저 테스트를 제출합니다.

위치

Datadog’s out-of-the-box managed locations allow you to test public-facing websites and endpoints from regions where your customers are located.

AWS:

AmericasAsia PacificEMEA
Canada CentralHong KongBahrain
Northern CaliforniaJakartaCape Town
Northern VirginiaMumbaiFrankfurt
OhioOsakaIreland
OregonSeoulLondon
São PauloSingaporeMilan
SydneyParis
TokyoStockholm

GCP:

AmericasAsia PacificEMEA
DallasTokyoFrankfurt
Los Angeles
Oregon
Virginia

Azure:

RegionLocation
AmericasVirginia

The Datadog for Government site (US1-FED) uses the following managed location:

RegionLocation
AmericasUS-West

코드 조각

Synthetic Monitoring 브라우저 테스트를 설정할 때 수동으로 옵션을 선택하지 말고 코드 조각을 사용해 장치와 리전 정보를 자동으로 입력하세요. 다음 코드 조각을 사용할 수 있습니다.

  • Screen sizes: 브라우저 전반에서 특정 화면 크기로 브라우저 테스트를 자동으로 수행합니다.

    • Large
    • Tablet
    • Mobile
  • Multi-region check: 세 가지 주요 리전(AMER, APAC, EMEA) 각각의 위치에서 웹사이트를 자동으로 테스트합니다.

    코드 조각 예시가 표시된 브라우저 테스트 생성의 왼쪽 화면 스크린샷

고급 옵션

  • Disable CORS: 교차 출처 리소스 공유(CORS) 정책이 테스트를 차단하지 않도록 하려면 선택합니다.
  • Disable CSP: 콘텐츠 보안 정책(CSP)이 테스트를 차단하지 않도록 하려면 선택합니다.
  • Capture HTTP payloads: 각 테스트 단계에서 Fetch 및 XHR 리소스에 대한 요청 및 응답 헤더와 본문을 수집하려면 선택합니다. 이 옵션을 활성화한 후 테스트 결과의 Resources 탭에서 Fetch 또는 XHR 리소스 행을 클릭하여 요청 및 응답 헤더와 본문을 조회합니다.
  • Request Headers: Name 및 Value 필드에 헤더를 정의하여 기본 브라우저 테스트 헤더에 추가하거나 기본값을 재정의합니다. 예를 들어, 헤더에서 User Agent를 Datadog 스크립트 식별로 설정할 수 있습니다.
  • Cookies: 기본 브라우저 쿠키에 추가할 쿠키를 정의합니다. Set-Cookie 구문을 사용하여 한 줄에 하나의 쿠키를 입력합니다.
  • HTTP Authentication: 사용자 이름과 비밀번호로 HTTP Basic, Digest 또는 NTLM을 통해 인증합니다. 해당 자격 증명 정보는 브라우저 테스트의 모든 단계에서 사용됩니다. 참고: 브라우저 시스템 프롬프트를 통해 사용자 자격 증명을 요청하는 웹사이트의 경우, HTTP Basic을 사용해 인증할 수 있습니다.

요청 옵션은 테스트 실행마다 설정되며, 기록 시간이 아닌 실행 시간에 브라우저 테스트의 모든 단계에 적용됩니다. 다음 단계를 기록할 목적으로 이러한 옵션을 활성화 상태로 유지해야 하는 경우, 기록 중인 페이지에서 수동으로 옵션을 적용하고 테스트에서 다음 단계를 생성하세요.

테스트에서 서버 인증서의 오류를 건너뛰도록 지시하려면 Ignore server certificate error를 선택하세요.

  • Client Certificate: Upload File을 클릭하고 인증서 파일과 프라이빗 키를 업로드하여 클라이언트 인증서가 필요한 시스템에서 테스트를 수행합니다. PEM 인증서만 허용됩니다.
  • Client Certificate Domains: 인증서 파일이 업로드되면 클라이언트 인증서는 시작 URL의 도메인에 적용됩니다. 다른 도메인에 클라이언트 인증서를 적용하려면 Value 필드에 해당 도메인을 지정합니다.

URL에 와일드카드를 포함할 수 있습니다.

요청을 전송할 프록시의 URL을 Proxy URL 필드에 http://<YOUR_USER>:<YOUR_PWD>@<YOUR_IP>:<YOUR_PORT>로 입력합니다.

URL에 전역 변수를 포함할 수 있습니다.

테스트 단계에서 스크린샷이 찍히지 않도록 하려면 Do not capture any screenshots for this test를 선택하세요.

이 개인정보 보호 옵션은 개별 테스트 단계 수준에서 고급 옵션으로 제공되며, 테스트 결과에 민감한 데이터가 표시되지 않도록 합니다. 테스트에서 스크린샷을 캡처하지 않도록 설정할 경우, 실패 시 문제 해결이 더 어려워질 수 있습니다. 자세한 내용은 데이터 보안을 참조하세요.

초기 테스트 단계를 실패로 선언하기 전 테스트의 대기 시간(초)을 입력합니다.

기본적으로 시간대는 UTC로 설정되며, 언어는 영어(en)로 설정되어 있습니다. 언어를 정의하려면 해당하는 2~3자리 ISO 코드를 사용하세요.

테스트가 실행되는 동안 로드되지 않게 하려는 요청 패턴을 1개 이상 입력하세요. 일치 패턴 형식을 사용하여 한 줄에 하나의 요청 패턴을 입력하세요. 와일드카드(예: *://*.example.com/*)가 지원됩니다.

차단된 요청은 테스트 실행 중에 건너뛰기 되지만 기록 단계에서는 페이지 렌더링에 영향을 주지 않습니다. 테스트 실행의 Resources 탭에서 차단된 요청을 조회하세요. 차단된 요청의 상태는 blocked입니다.

Create local variables

To create a local variable, click + All steps > Variables. You can select one of the following available builtins to add to your variable string:

{{ numeric(n) }}
Generates a numeric string with n digits.
{{ alphabetic(n) }}
Generates an alphabetic string with n letters.
{{ alphanumeric(n) }}
Generates an alphanumeric string with n characters.
{{ date(n unit, format) }}
Generates a date in one of Datadog’s accepted formats with a value corresponding to the UTC date the test is initiated at + or - n units.
{{ timestamp(n, unit) }}
Generates a timestamp in one of Datadog’s accepted units with a value corresponding to the UTC timestamp the test is initiated at +/- n units.
{{ uuid }}
Generates a version 4 universally unique identifier (UUID).
{{ public-id }}
Injects the Public ID of your test.
{{ result-id }}
Injects the Result ID of your test run.

To obfuscate local variable values in test results, select Hide and obfuscate variable value. After you have defined the variable string, click Add Variable.

Apply filters to variable values

When you reference a variable, you can transform its resolved value by appending a filter with a pipe (|). Use the syntax {{ VARIABLE_NAME | filter }} anywhere a variable is accepted, such as the URL, request body, headers, and assertions. The following filters are available:

{{ VARIABLE_NAME | urlEncode }}
URL-encodes the variable’s value. For example, hello world becomes hello%20world.
{{ VARIABLE_NAME | urlDecode }}
URL-decodes the variable’s value. For example, hello%20world becomes hello world.
{{ VARIABLE_NAME | base64Encode }}
Base64-encodes the variable’s value. For example, hello becomes aGVsbG8=.
{{ VARIABLE_NAME | base64Decode }}
Base64-decodes the variable’s value. For example, aGVsbG8= becomes hello.

Filters apply to both local and global variables. You can apply one filter per reference, and filter names are case-sensitive.

전역 변수 사용

브라우저 테스트 세부 정보의 Starting URL 및 Advanced Options와 테스트 기록에서 Settings에 정의된 전역 변수를 사용할 수 있습니다.

사용 가능한 변수의 목록을 표시하는 방법은 다음과 같습니다.

  • 브라우저 테스트의 세부 정보에서 원하는 필드에 ‘{{‘를 입력합니다.

  • 브라우저 테스트의 레코더에서 테스트의 변수를 가져온 다음 원하는 필드에 ‘{{‘를 입력하거나 애플리케이션에 변수를 주입하여 사용합니다.

브라우저 테스트 기록 시 변수를 사용하는 방법에 대한 자세한 내용은 브라우저 테스트 단계를 참조하세요.

경보 조건 정의

경보 조건을 사용자 지정하여 테스트가 경보를 전송하는 상황을 정의할 수 있습니다.

브라우저 테스트 경보 규칙

경보 규칙

n/N개의 위치에서 X분 동안 어설션이 실패하면 경보가 트리거됩니다. 이 경보 규칙을 활용하면 경보가 트리거되기 전에 테스트의 실패 기간과 테스트 실패 위치 수를 지정할 수 있습니다.

경보는 다음 두 조건이 모두 충족될 때만 트리거됩니다.

  • 지난 X분 동안 최소 하나의 위치가 실패 상태여야 합니다(최소 하나의 어설션이 실패함).
  • 지난 X분 중 어느 한 시점에 최소 N개의 위치가 실패 상태여야 합니다.

실패할 경우, 해당 위치가 실패로 표시되기 전에 재시도를 X회 실시합니다. 이 설정을 통해 위치가 실패로 간주되기 위해 필요한 연속 테스트 실패 횟수를 정의할 수 있습니다. 기본적으로, 실패한 테스트를 재시도하기 전에 300ms를 대기합니다. 이 간격은 API로 구성할 수 있습니다.

빠른 재시도

테스트가 실패할 경우 빠른 재시도를 사용하면 실패로 표시되기 전에 Yms 후에 테스트를 X회 재시도할 수 있습니다. 재시도 간격을 사용자 지정하면 오탐을 줄이고 경보의 정확성을 향상시킬 수 있습니다.

위치 가동 시간은 재시도가 완료된 후 최종 테스트 결과를 기반으로 계산되므로 빠른 재시도 간격은 총 가동 시간 그래프에 직접적인 영향을 미칩니다. 총 가동 시간은 구성된 경보 조건을 기반으로 계산되며, 총 가동 시간에 따라 알림이 전송됩니다.

Synthetic Monitoring 알림이 테스트 결과를 평가하고 경보를 트리거하는 방법에 대한 자세한 내용은 Synthetic Monitoring 경보 이해하기를 참조하세요.

Downtimes

To pause test execution during planned maintenance windows, select an existing Scheduled downtime in the Downtimes section. The test automatically pauses during the downtime’s scheduled time slots.

Note: You cannot create a new downtime from the test creation form. To create one, navigate to Settings > Downtimes.

테스트 모니터링 구성

경보 조건 세트에 따라 알림이 전송됩니다. 이 섹션을 사용하여 팀에 메시지를 전송하는 방법과 내용을 정의할 수 있습니다.

  1. 브라우저 테스트용 message를 입력하거나 사전에 채워진 모니터링 메시지를 사용합니다. 이 필드는 표준 마크다운 형식을 허용하며 다음 조건 변수를 지원합니다.

    조건 변수설명
    {{#is_alert}}모니터링을 통해 경보가 발생하면 표시됩니다.
    {{^is_alert}}모니터링을 통해 경보가 발생하지 않으면 표시됩니다.
    {{#is_recovery}}모니터링이 ‘alert’로부터 복구되면 표시됩니다.
    {{^is_recovery}}모니터링이 ‘alert’로부터 복구되지 않으면 표시됩니다.
    {{#is_renotify}}모니터링이 다시 알림을 전송하면 표시됩니다.
    {{^is_renotify}}모니터링이 다시 알림을 전송하지 않으면 표시됩니다.
    {{#is_priority}}모니터링이 우선순위(P1~P5)와 일치하면 표시됩니다.
    {{^is_priority}}모니터링이 우선순위(P1~P5)와 일치하지 않으면 표시됩니다.

    Notification messages include the message defined in this section and information about the failing locations. Pre-filled monitor messages are included in the message body section:

    Synthetic Monitoring 모니터링 섹션, 사전에 채워진 모니터링 메시지가 강조 표시됨

    For example, to create a monitor that iterates over steps extracting variables for browser tests, add the following to the monitor message:

    {{! List extracted variables across all successful steps }}
    # Extracted variables
    {{#each synthetics.attributes.result.steps}}
    {{#if extractedValue}}
    * **Name**: `{{extractedValue.name}}`
    **Value:** {{#if extractedValue.secure}}*Obfuscated (value hidden)*{{else}}`{{{extractedValue.value}}}`{{/if}}
    {{/if}}
    {{/each}}
    
  2. Choose team members and services to notify.

  3. Specify a renotification frequency. To prevent renotification on failing tests, check the option Stop re-notifying on X occurrences.

  4. Click Save & Start Recording to save your test configuration and record your browser steps.

For more information, see Synthetic Monitoring notifications.

Record your steps

Tests can be recorded from Google Chrome. To record your test, download the Datadog Record Test extension. Because Microsoft Edge is Chromium-based, you can also install the Chrome extension in Edge after you turn on Allow extensions from other stores. See Microsoft’s guide to adding extensions from other stores for instructions.

You can switch tabs in a browser test recording to perform an action on your application (such as clicking on a link that opens another tab) and add another test step. Your browser test must interact with the page first (through a click) before it can perform an assertion. By recording all of the test steps, the browser test can switch tabs automatically at test execution.

브라우저 테스트 기록 테스트
  1. 필요시 페이지 오른쪽 상단의 Open in a pop-up을 선택하여 테스트 기록을 별도의 팝업 창으로 열 수 있습니다. 이 옵션은 애플리케이션이 iframe에서 열리는 것을 지원하지 않거나 기록 중 크기 문제를 피하고 싶을 때 유용합니다. 테스트를 새 브라우저에서 시작하려면 Incognito mode에서 팝업 창을 여세요. 이 모드는 이미 로그인된 세션, 기존 브라우저의 쿠키 등이 없는 상태입니다.

  2. 필요시 브라우저 테스트에서 단계 기록을 실행할 때 Datadog이 RUM 데이터를 자동으로 수집하도록 활성화합니다. 자세한 내용은 RUM 및 Session Replay 탐색을 참조하세요.

  3. Start Recording을 클릭하여 브라우저 테스트 기록을 시작합니다.

  4. 모니터링하려는 사용자 여정을 실행하는 애플리케이션을 클릭하면 액션이 자동으로 기록되어 왼쪽의 브라우저 테스트 시나리오 내의 단계를 생성하는 데 활용됩니다.

  5. 자동으로 기록되는 테스트 단계 외에도 왼쪽 상단의 단계기능으로 더욱 다양한 시나리오를 생성할 수 있습니다.

    브라우저 테스트 단계

    Datadog은 브라우저 테스트에서 실행된 여정으로 인해 예상한 상태가 도출되었는지 확인하기 위해 브라우저 테스트를 어설션으로 종료할 것을 권장합니다.

  6. 시나리오를 완료했으면 Save and Launch Test를 클릭합니다.

단계 리플레이

브라우저 테스트 중 1개 이상의 단계를 브라우저에서 바로 다시 실행하려면 Datadog 기록 테스트 확장 프로그램을 다운로드하세요.

단계 리플레이 기능은 개별 단계를 디버그하고, 브라우저 테스트를 편집할 때 올바른 애플리케이션 상태에 도달하며, 테스트를 저장하기 전에 전체 흐름을 확인하는 데 도움이 됩니다.

참고: 단계 리플레이는 서로 다른 조건(브라우저 버전, 네트워크, 사용자 에이전트, 로그인 상태)이나 제한으로 인해 전체 Synthetic Monitoring 테스트 실행과 다르게 작동할 수 있습니다.

단계 리플레이 사용 방법

단계는 세 가지 방법으로 리플레이할 수 있습니다.

1. 단일 단계 리플레이: 단일 단계를 다시 실행합니다.

단계 위에 마우스를 올리고 재생 버튼을 클릭하여 이 단계만 리플레이합니다.

2. 모든 단계 리플레이: 레코더에 정의된 전체 단계 시퀀스를 실행합니다.

단계 목록 상단의 모두 리플레이 버튼(⏩︎)을 클릭하여 모든 단계를 리플레이합니다.

3. 선택한 단계 리플레이: 단계 목록에서 선택한 단계의 하위 세트를 실행합니다.

리플레이할 단계를 선택한 후, 단계 목록 상단에서 선택한 단계 리플레이 버튼(⏩︎)을 클릭합니다.

단계 리플레이 기능 지원

아래 요약 표를 통해 단계 리플레이에서 지원되는 브라우저 테스트 단계 유형을 확인하세요.

단계 유형단계 리플레이 지원 여부참고 사항
변수 추출
URL로 이동
새로 고침
스크롤
옵션 선택
대기
API 테스트 실행
확인란 상태 어설션
현재 URL 어설션
요소 특성 어설션
요소 콘텐츠 어설션
요소 존재 여부 어설션
파일 다운로드 어설션
페이지 포함 사항 어설션
페이지 미포함 사항 어설션
JavaScript에서 어설션
JavaScript에서 추출
키 입력
텍스트 입력
클릭 **Click steps are supported, but may behave differently than in a full Synthetic Monitoring test run.
마우스 오버 **Hover steps are supported, but may behave differently than in a full Synthetic Monitoring test run.

단계 리플레이에서 지원되지 않는 단계 유형

단계 유형단계 리플레이 지원 여부
이메일 어설션아직 지원되지 않음
요청 어설션아직 지원되지 않음
이메일 본문에서 추출아직 지원되지 않음
이메일 링크로 이동아직 지원되지 않음
파일 업로드아직 지원되지 않음

디버거 권한

전체 Synthetic Monitoring 테스트 실행 환경과 최대한 유사하게 재현하기 위해, JavaScript 기반 단계나 키 입력 시뮬레이션과 같은 일부 단계는 리플레이 시 디버거 권한이 필요합니다.

확장 프로그램이 디버거 권한이 필요한 버전으로 처음 업데이트되면 권한 요청이 표시되며 권한이 승인될 때까지 확장 프로그램이 비활성화됩니다.

세 개의 점 메뉴를 클릭하여 권한을 수락합니다.

권한

기본적으로, Datadog Admin 및 Datadog Standard 역할을 가진 사용자만 Synthetic 브라우저 테스트를 생성, 편집 및 삭제할 수 있습니다. Synthetic 브라우저 테스트에 대한 생성, 편집 및 삭제 권한을 얻으려면 사용자를 두 가지 기본 역할 중 하나로 업그레이드하세요.

사용자 지정 역할 기능을 사용하는 경우, synthetics_read 및 synthetics_write 권한이 포함된 사용자 지정 역할에 사용자를 추가하세요.

액세스 제한

세분화된 액세스 제어를 사용하여 역할, 팀 또는 개별 사용자를 기반으로 테스트에 액세스할 수 있는 사용자를 제한하세요.

  1. 양식의 권한 섹션을 엽니다.
  2. Edit Access를 클릭합니다.
    프라이빗 위치 구성 양식에서 테스트에 대한 권한 설정
  3. Restrict Access를 클릭합니다.
  4. 팀, 역할 또는 사용자를 선택합니다.
  5. Add를 클릭합니다.
  6. 각 역할에 연결하려는 액세스 수준을 선택합니다.
  7. Done을 클릭합니다.
Viewer 액세스 권한이 없어도 해당하는 프라이빗 위치의 결과를 조회할 수 있습니다.
액세스 수준테스트 구성 조회테스트 구성 편집테스트 결과 조회테스트 실행기록 조회기록 편집
액세스 권한 없음
Viewer
Editor

추가 자료