이 문서는 합성 모니터 버전 0.4.x 이하에 대한 것입니다. 합성 모니터 버전 0.5 또는 0.6.0 및 모니터 버전 Chrome 100 이상 에 대한 설명서도 참조하세요.
중요
2024년 8월 26일부터 공개 또는 위치 위치에서 구형 런타임을 사용하여 새 모니터를 더 이상 생성할 수 없습니다.
2024년 10월 22일을 기점으로 컨테이너화된 미니언(분당 호출 수) 및 구형 신세틱스 손잡이 버전 의 수명이 종료 됩니다. 표시 위치의 경우 런타임 업그레이드 UI 사용하여 모니터를 최신 런타임으로 업데이트하세요. 위치 위치의 경우 모니터 성능 저하를 방지하기 위해 권장되는 마이그레이션 단계를 검토하십시오.
몇 가지 일반적인 사용 예는 스크립팅된 브라우저 모니터 소개를참조하십시오.
개요
합성 스크립트 브라우저 는 $driver
및 $browser
변수를 통해 Selenium Webdriver API 2.47.0 에 대한 액세스를 제공합니다. 특히:
$driver
selenium-webdriver
모듈의 모든 내보내기를 제공합니다(예:ActionSequence
,Button
,By
,WebElement
등).$browser
selenium-webdriver.WebDriver()
의 합성 풍미 인스턴스입니다.get()
및findElement()
와 같은 주요 기본WebDriver
API와 일부 합성 맞춤 API를 노출합니다.
이 문서는 합성 스크립트 브라우저 모니터 버전 0.4.0 이하에서 사용할 수 있는 기능을 설명합니다. 최신 모니터 설명서는 모니터 버전 0.5.0+ 설명서를참조하십시오.
기타 관련 문서:
- 합성 스크립팅에 대한 자세한 내용은 스크립팅 된 브라우저 작성 을 참조하십시오.
- 예제 스크립트는 스크립팅된 브라우저 예제 를 참조하십시오.
- 모니터 버전 및 런타임 차이점에 대한 자세한 정보는 런타임 환경 을 참조하십시오.
- 스크립팅된 브라우저 예제를 보고 공유하려면 New Relic의 지원 포럼 에서 synthetic-script태그가 지정된 주제를 확인하십시오.
최상위 기능: 스크립트 작성
New Relic은 $browser
인스턴스에서 직접 최상위 함수를 호출합니다. 이들은 많은 기본 스크립팅 가능한 작업을 다루는 광범위한 기능을 제공합니다.
함수 | 반환 값 |
---|---|
이 드라이버를 사용하여 새 동작 시퀀스를 만듭니다. 사용 가능한 작업 목록은 ActionSequence: 여러 작업 연결 을 참조하십시오. | 무효의 |
값이 | 무효의 |
런타임에 헤더 맵을 추가합니다. | 무효의 |
런타임에서 특정 헤더를 삭제합니다. | 무효의 |
런타임에서 인수의 모든 헤더를 삭제합니다. | 무효의 |
호스트 이름을 허용하지 않습니다. 와일드카드 사용을 허용합니다. | 무효의 |
인수 배열의 모든 호스트 이름을 허용하지 않습니다. 와일드카드 사용을 허용합니다. | 무효의 |
종합 모니터링에서 기본적으로 차단된 호스트 이름을 허용합니다. | 무효의 |
인수의 모든 호스트 이름을 허용합니다. | 무효의 |
이 브라우저 인스턴스의 블랙리스트에서 호스트 이름을 제거합니다. | 무효의 |
허용되지 않는 목록에서 인수의 모든 호스트 이름을 제거합니다. | 무효의 |
이 브라우저 인스턴스의 허용 목록에서 호스트 이름을 제거합니다. | 무효의 |
이 브라우저 인스턴스의 허용 목록에서 인수의 모든 호스트 이름을 제거합니다. | 무효의 |
현재 선택한 프레임 또는 창의 컨텍스트에서 비동기 JavaScript를 실행하도록 명령을 예약합니다. | 약속하다 |
현재 선택한 프레임 또는 창의 컨텍스트에서 JavaScript를 실행하도록 명령을 예약합니다. | 약속하다 |
페이지에서 요소를 찾는 명령을 예약합니다. 찾을 수 없으면 New Relic은 오류를 반환합니다. | 웹요소 |
페이지에서 여러 요소를 검색 하도록 명령을 예약합니다. | 약속하다 |
페이지에서 요소를 기다리고 찾는 명령과 표시될 때까지 기다리는 또 다른 명령을 예약합니다. 찾을 수 없으면 New Relic은 오류를 반환합니다. 타임아웃 값은 선택 사항이며 요소를 찾고 가시성을 기다리는 두 작업에 별도로 적용됩니다. 이는 최악의 경우 이 방법이 제공된 시간 초과 값의 최대 두 배를 차지할 수 있음을 의미합니다. 기본 시간 초과 값은 1000ms(1초)입니다. | 약속하다 |
합성 브라우저에서 웹 페이지를 로드합니다. | 약속하다 |
사용 가능한 창 핸들의 현재 목록을 검색하는 명령을 예약합니다. | 약속하다 |
인스턴스의 기능으로 해결될 약속입니다. | 약속하다 |
현재 페이지의 URL을 검색하는 명령을 예약합니다. | 약속하다 |
현재 구성된 헤더의 맵을 반환합니다. | 지도 |
현재 페이지의 소스를 검색하는 명령을 예약합니다. 반환된 페이지 소스는 기본 DOM을 나타냅니다. 웹 서버에서 보낸 응답과 같은 방식으로 형식이 지정되거나 이스케이프될 것으로 기대하지 마십시오. | 약속하다 |
이 클라이언트의 세션에 대한 약속입니다. | 약속하다 |
현재 페이지의 제목을 검색하는 명령을 예약합니다. | 약속하다 |
현재 창 핸들을 검색하는 명령을 예약합니다. | 약속하다 |
페이지에 요소가 있는지 테스트하는 명령을 예약합니다. DOM 요소가 주어지면 이 함수는 드라이버가 현재 집중하고 있는 문서에 속하는지 확인합니다. 그렇지 않으면 함수는 주어진 검색 기준으로 하나 이상의 요소를 찾을 수 있는지 테스트합니다. | 약속하다 |
이 인스턴스의 옵션 인터페이스입니다. 쿠키, 시간 초과 및 기타 창 옵션을 관리할 수 있습니다. | 무효의 |
이 인스턴스의 탐색 인터페이스(브라우저 기능 기록) 입니다. | 무효의 |
이 드라이버의 CommandExecutor가 실행할 명령을 예약합니다. | 약속하다 |
지정된 시간 동안 드라이버를 절전 모드로 전환하는 명령을 예약합니다. | 약속하다 |
이 인스턴스의 대상 로케이터 인터페이스입니다. | 무효의 |
스크린샷을 찍도록 명령을 예약합니다. | 약속하다 |
일부 사용자 제공 기능에서 정의한 대로 조건이 유지될 때까지 기다리도록 명령을 예약합니다. | 웹요소 |
스크립트가 시작된 요청이 제한 시간까지 반환될 때까지 기다리도록 합니다. 비차단 리소스를 추적하는 데 유용합니다. | 약속하다 |
금지 목록: 와일드카드 사용
브라우저 인스턴스에 대한 도메인을 허용하지 않으려면 차단할 URL의 URL 구문과 일치하는 와일드카드가 필요합니다.
전체 .com
허용되지 않는 목록에는 다음 기능이 포함되어야 합니다.
함수 | 차단 조치 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
옵션: 브라우저 인스턴스 관리
이러한 기능은 쿠키, 시간 초과 및 창 크기와 같은 브라우저 인스턴스에 대한 옵션을 관리합니다. $browser.manage()
함수를 통해 이러한 옵션에 액세스합니다.
함수 | 반환 값 |
---|---|
쿠키를 추가하는 명령을 예약합니다. | 약속하다 |
현재 페이지에 표시되는 모든 쿠키를 삭제하는 명령을 예약합니다. | 약속하다 |
지정된 이름의 쿠키를 삭제하는 명령을 예약합니다. 이 명령은 현재 페이지에서 볼 수 있는 주어진 이름의 쿠키가 없는 경우 작동하지 않습니다. | 약속하다 |
지정된 이름으로 쿠키를 검색하는 명령을 예약합니다. 그러한 쿠키가 없으면 null을 반환합니다. 쿠키는 WebDriver 유선 프로토콜에 설명된 대로 JSON 개체로 반환됩니다. | 약속하다 |
현재 페이지에 표시되는 모든 쿠키를 검색하는 명령을 예약합니다. New Relic Syntheticcs는 WebDriver 유선 프로토콜에 설명된 대로 각 쿠키를 JSON 개체로 반환합니다. | 약속하다 |
요소가 즉시 존재하지 않는 경우 드라이버가 요소를 검색할 때 기다려야 하는 시간을 지정합니다. 대기 시간 초과를 대기 시간 초과를 늘리면 특히 XPath와 같은 느린 위치 전략에서 테스트 실행 시간이 증가하므로 주의하십시오. 기본값은 10초입니다. | 약속하다 |
오류를 반환하기 전에 페이지 로드가 완료될 때까지 기다리는 시간을 설정합니다. 시간 제한이 음수이면 페이지 로드가 최대 180초 동안 지속될 수 있습니다. 기본값은 60초입니다. | 약속하다 |
비동기 스크립트가 오류를 반환하기 전에 실행을 완료할 때까지 기다리는 시간(밀리초)을 설정합니다. 기본값은 30초입니다. | 약속하다 |
화면의 왼쪽 상단 모서리를 기준으로 창의 현재 위치를 검색합니다. | 약속하다 |
창의 현재 크기를 검색합니다. | 약속하다 |
현재 창을 최대화합니다. | 약속하다 |
현재 창의 위치를 변경합니다. | 약속하다 |
현재 창의 크기를 조정합니다. | 약속하다 |
로케이터: 페이지 요소 찾기
로케이터는 locator
인스턴스를 생성하기 위한 팩토리 함수 모음입니다. 로케이터는 $browser.findElement
또는 $browser.isElementPresent
와 같은 함수에 전달할 수 있는 DOM 요소를 찾습니다. $driver.By
을(를) 통해 전화하세요.
함수 | 반환 값 |
---|---|
특정 클래스 이름을 가진 요소를 찾습니다. 반환된 로케이터는 CSS 선택기 | 토지 경계 설정자 |
CSS 선택기를 사용하여 요소를 찾습니다. | 토지 경계 설정자 |
ID로 요소를 찾습니다. | 토지 경계 설정자 |
보이는 텍스트가 주어진 문자열과 일치하는 링크 요소를 찾습니다. | 토지 경계 설정자 |
JavaScript 표현식을 평가하여 요소를 찾습니다. | 토지 경계 설정자 |
name 속성이 주어진 값을 갖는 요소를 찾습니다. | 토지 경계 설정자 |
표시되는 getText 에 지정된 하위 문자열이 포함된 링크 요소를 찾습니다. | 토지 경계 설정자 |
주어진 태그 이름을 가진 요소를 찾습니다. 반환된 로케이터는 | 토지 경계 설정자 |
XPath 선택기와 일치하는 요소를 찾습니다. | 토지 경계 설정자 |
WebElement: 페이지 요소와 상호 작용
$browser.findElement
또는 $browser.waitForAndFindElement
과 같은 함수가 WebElement 참조를 반환하면 이러한 함수를 사용하여 해당 요소와 상호작용할 수 있습니다. 이를 사용하여 버튼을 클릭하고 텍스트를 보내 입력을 구성하고 테스트할 요소의 속성을 가져올 수 있습니다.
함수 | 반환 값 |
---|---|
이 요소를 클릭합니다. | 무효의 |
이 인스턴스가 나타내는 DOM 요소에 시퀀스를 입력하도록 명령을 예약합니다. | 웹요소 |
이 요소의 태그/노드 이름을 쿼리하도록 명령을 예약합니다. | 웹요소 |
이 인스턴스가 나타내는 요소의 계산된 스타일을 쿼리하도록 명령을 예약합니다. 요소가 부모로부터 명명된 스타일을 상속하는 경우 부모는 해당 값을 쿼리합니다. 가능한 경우 색상 값은 16진수 표현으로 변환됩니다(예: { | 약속하다 |
요소의 지정된 속성 값을 쿼리하는 명령을 예약합니다. | 약속하다 |
선행 또는 후행 공백 없이 하위 요소를 포함하여 이 요소의 가시적(CSS에 의해 숨겨지지 않음) | 약속하다 |
이 요소의 경계 상자 크기를 픽셀 단위로 계산하도록 명령을 예약합니다. | 약속하다 |
페이지 공간에서 이 요소의 위치를 계산하는 명령을 예약합니다. | 약속하다 |
이 인스턴스가 나타내는 DOM 요소가 disabled 속성에 따라 활성화되었는지 여부를 쿼리하는 명령을 예약합니다. | 약속하다 |
이 요소가 선택되었는지 여부를 쿼리하는 명령을 예약합니다. | 약속하다 |
이 요소(또는 이 요소가 | 약속하다 |
이 요소의 값을 지우는 명령을 예약합니다. | 약속하다 |
이 요소가 현재 표시되는지 여부를 테스트하는 명령을 예약합니다. | 약속하다 |
이 요소의 외부 HTML을 검색하는 명령을 예약합니다. | 약속하다 |
이 요소의 내부 HTML을 검색하는 명령을 예약합니다. | 약속하다 |
ActionSequence: 여러 작업 연결
액션 시퀀스는 웹사이트와 복잡한 사용자 상호작용을 생성할 수 있습니다.
- 새 작업 시퀀스를 만들려면
$browser.actions()
을 사용합니다. - 여러 작업을 하나의 시퀀스로 연결하려면 각각 뒤에
perform()
을 포함합니다. 이것은 단일 동작 시퀀스를 포함하여 개별 시퀀스를 실행한 다음 종료합니다.
다음 표에는 사용 가능한 작업 목록이 포함되어 있습니다. 자세한 내용은 웹 드라이브 액션 문서를 참조하세요.
함수 | 반환 값 |
---|---|
마우스 버튼을 클릭합니다. 요소가 제공되면 마우스가 먼저 해당 요소의 중앙으로 이동합니다. 이는 | 액션 시퀀스 |
마우스 버튼을 두 번 클릭합니다. 요소가 제공되면 마우스가 먼저 해당 요소의 중앙으로 이동합니다. | 액션 시퀀스 |
"드래그 앤 드롭" 기동을 수행하기 위한 편의 기능. 대상 요소는 다른 요소의 위치로 이동하거나 오프셋(픽셀 단위)만큼 이동할 수 있습니다. 위치는 | 액션 시퀀스 |
수정자 키 누름을 수행합니다. | 액션 시퀀스 |
수정자 키 해제를 수행합니다. 릴리스는 현재 포커스가 있는 요소를 대상으로 합니다. | 액션 시퀀스 |
마우스 버튼을 누릅니다. 이 순서로 호출되는지 다른 순서로 호출되는지에 관계없이 | 액션 시퀀스 |
마우스 버튼을 놓습니다. | 액션 시퀀스 |
마우스를 움직입니다. 이동할 위치는 마우스의 현재 위치, 요소의 왼쪽 상단 모서리에 상대적인 오프셋 또는 요소(이 경우 요소의 중간이 사용됨)로 지정할 수 있습니다. | 액션 시퀀스 |
이 작업 시퀀스를 실행합니다. | 약속하다 |
여러 키 입력을 시뮬레이션합니다. 시퀀스에서 발견된 각 수정자는 다시 만날 때까지 해제되지 않습니다. 모든 주요 이벤트는 현재 포커스가 있는 요소를 대상으로 합니다. 지원되는 영숫자가 아닌 키의 전체 목록은 WebDriver 열거 키 설명서 를 참조하십시오. | 액션 시퀀스 |
약속: 작업을 시퀀스에 연결
Promise에서 직접 함수를 실행할 수도 있습니다. 종합 모니터링은 기본 Node.js 환경이며 표준 Node.js 약속을 사용합니다.
이러한 함수는 약속의 상태를 평가하고 취소하는 등의 작업을 수행합니다. 특히 then()
함수와 그 형제 thenFinally()
및 thenCatch()
를 사용하여 일련의 작업을 만들 수 있습니다. 자세한 내용은시퀀스 작업 을 참조하십시오.
함수 | 반환 값 |
---|---|
이 프로미스 값의 계산을 취소하고 프로세스에서 프로미스를 거부합니다. 이 방법은 약속이 이미 해결된 경우 작동하지 않습니다. | 무효의 |
이 약속의 값이 아직 계산 중인지 여부입니다. | 부울 |
이 인스턴스가 확인될 때 리스너를 등록합니다. 이것은 스크립트에서 동기 작업을 연결하는 데 사용되는 기본 기능입니다. | 약속하다 |
프라미스의 값이 성공적으로 계산되었는지 여부에 관계없이 이 프라미스가 확인될 때 호출할 수신기를 등록합니다. | 약속하다 |
이 약속이 거부될 때 리스너를 등록합니다. | 약속하다 |
탐색: 브라우저 기록을 통해 이동
$browser.navigate()
함수는 브라우저 기록을 앞뒤로 이동하고, 페이지를 새로고침하고, 새 페이지로 이동할 수 있는 다양한 기능을 제공합니다.
함수 | 반환 값 |
---|---|
브라우저 기록에서 한 단계 뒤로 이동합니다. | 무효의 |
브라우저 기록에서 한 단계 앞으로 이동합니다. | 무효의 |
현재 페이지를 새로 고칩니다. | 무효의 |
현재 브라우저 창에서 새 웹페이지를 로드합니다. | 무효의 |
조건: 일시 중지 및 조건 대기
$browser.wait
, until
과 함께 사용하면 조건이 일치할 때까지 스크립트 실행이 일시 중지됩니다. 명시적 및 암시적 대기에 대한 자세한 내용은 WebDriver 설명서 를 참조하십시오.
.wait
및 .until
사용 예는 Webdriver.wait 예를 참조하세요.
다음은 $driver.until.Condition
에 사용할 수 있는 기능입니다.
함수 | 반환 값 |
---|---|
입력 드라이버가 지정된 프레임으로 전환할 수 있을 때까지 기다리는 조건을 만듭니다. 대상 프레임은 다음과 같이 지정할 수 있습니다.
| 상태 |
경고가 열리기를 기다리는 조건을 만듭니다. 성공하면 반환된 약속이 열린 경고에 대한 핸들로 이행됩니다. | 상태 |
주어진 요소가 비활성화될 때까지 기다리는 조건을 만듭니다. | 상태 |
주어진 요소가 활성화되기를 기다리는 조건을 만듭니다. | 상태 |
주어진 요소가 DOM에 있지만 사용자에게 표시되지 않을 때까지 기다리는 조건을 만듭니다. | 상태 |
주어진 요소가 표시될 때까지 기다리는 조건을 만듭니다. | 상태 |
주어진 요소가 선택되기를 기다리는 조건을 만듭니다. | 상태 |
주어진 로케이터로 요소를 찾을 때까지 반복되는 조건을 만듭니다. | 상태 |
주어진 로케이터로 적어도 하나의 요소를 찾을 때까지 반복되는 조건을 생성합니다. | 상태 |
주어진 요소의 보이는 텍스트가 주어진 부분 문자열을 포함할 때까지 기다리는 조건을 생성합니다. | 상태 |
대소문자를 구분합니다. 주어진 요소의 보이는 텍스트가 주어진 텍스트와 정확히 일치하기를 기다리는 조건을 만듭니다. | 상태 |
주어진 요소의 보이는 텍스트가 정규식과 일치하기를 기다리는 조건을 만듭니다. | 상태 |
주어진 요소가 부실해질 때까지 기다리는 조건을 만듭니다. 요소는 DOM에서 제거되거나 새 페이지가 로드되면 오래된 것으로 간주됩니다. | 상태 |
현재 페이지의 제목에 지정된 하위 문자열이 포함될 때까지 기다리는 조건을 만듭니다. | 상태 |
현재 페이지의 제목이 주어진 값과 일치할 때까지 기다리는 조건을 만듭니다. | 상태 |
현재 페이지의 제목이 주어진 정규식과 일치할 때까지 기다리는 조건을 만듭니다. | 상태 |