스크립팅된 브라우저 를 사용하면 Selenium WebDriver 로 구동되는 JavaScript와 유사한 스크립팅 언어를 사용하여 복잡한 모니터링 워크플로를 구축할 수 있습니다.
사용 가능한 모든 기능에 대한 자세한 안내는 Synthetic의 스크립팅된 브라우저 참조 를 참조하십시오.
팁
다른 스크립팅된 브라우저 예제를 보려면 New Relic의 Github 리포지토리에서 Quickstarts Synthetics 라이브러리 를 확인하세요. New Relic 온라인 기술 커뮤니티의 Level Up Relic Solutions 섹션에서 New Relic 지원 엔지니어의 팁을 볼 수도 있습니다.
URL 모니터링
이 예에서 모니터는 http://telco.nrdemo-sandbox.com/ 을 방문합니다.
//Visit http://telco.nrdemo-sandbox.com/$browser.get("http://telco.nrdemo-sandbox.com/");
이 스크립팅 작업은 거의 모든 스크립팅된 브라우저의 기초입니다. 자세한 내용 은 URL 방문 을 참조하십시오.
링크로 이동
아래 예에서 모니터:
- http://telco.nrdemo-sandbox.com/ 으로 이동합니다.
- 링크 텍스트를 통해 정보 페이지를 찾고 링크를 클릭합니다 .
- 부분 문자열
Home
을 검색하여 Acme Telco Home 링크를 찾고 링크를 클릭합니다 .
$browser.get("http://telco.nrdemo-sandbox.com/").then(function(){//Find a link whose display text is `About` and click that link. return $browser.findElement($driver.By.linkText("About")).click();}).then(function(){ return $browser.findElement($driver.By.partialLinkText("Home")).click();});
이러한 단계는 시퀀싱 기능 에 의해 정렬됩니다.
요소를 찾는 자세한 지침 및 기타 방법은 요소 찾기 를 참조하십시오. 모든 로케이터 목록은 로케이터: 페이지 요소 찾기 를 참조하십시오.
웹사이트 검색
아래 예에서 모니터:
- http://telco.nrdemo-sandbox.com/static/companyBlog.jsp 로 이동합니다.
- XPath를 통해 검색 상자를 찾고
relic
을 입력합니다. - XPath를 통해 제출 버튼을 찾아 클릭하여 검색을 제출합니다.
$browser.get("http://telco.nrdemo-sandbox.com/static/companyBlog.jsp").then(function(){//Find the search field by specifying its id, then enter `relic`. return $browser.findElement($driver.By.xpath("//h4[text()='Blog Search']/following-sibling::div/input")).sendKeys("relic");}).then(function(){//Click the search button. return $browser.findElement($driver.By.xpath("//h4[text()='Blog Search']/following-sibling::div//button")).click();});
필드에 텍스트를 보내는 방법에 대한 자세한 내용은 텍스트 입력 을 참조하십시오.
페이지가 로드될 때까지 기다립니다.
아래 예에서 모니터:
- http://telco.nrdemo-sandbox.com/browse/phones 로 이동합니다.
- XPath를 통해 Acme Standard 전화의 세부 정보 버튼을 찾아 클릭합니다.
- HTML 페이지 제목이
Acme Commerce Company
과 일치하도록 최대 10초 동안 기다립니다. - XPath를 통해 장바구니 에 추가 버튼을 찾아 클릭합니다.
$browser.get("http://telco.nrdemo-sandbox.com/browse/phones").then(function(){ return $browser.findElement($driver.By.xpath("(//a[text()='Details'])[3]")).click();});//Call the wait function.$browser.wait(function() {//Tell the monitor to get the page title, then run a function on that title. return $browser.getTitle().then(function(title) {//Ensure that the title matches `Acme Commerce Company`. return title === "Acme Commerce Company"; });//If the condition isn't satisfied within 10000 milliseconds (10 seconds), proceed anyway.}, 10000);//Find the `Add to Cart` button via its XPath and click it.$browser.findElement($driver.By.xpath("//input[@value='Add to Cart']")).click();
스크립트를 일시 중지하는 대기 조건 설정에 대한 자세한 내용은 페이지 제목 대기 를 참조하십시오 .
페이지 요소를 기다립니다.
아래 예에서 모니터:
- 로드 http://telco.nrdemo-sandbox.com/ .
- HTML ID를 통해 지원 드롭다운을 찾아 클릭합니다.
- FAQ 버튼이 표시되고 클릭할 때까지 최대 20초 동안 기다립니다.
//Navigate to the Acme Telco Homepage and clicks on the Support dropdown.$browser.get("http://telco.nrdemo-sandbox.com/").then(function(){ return $browser.findElement($driver.By.id("supportDropDown")).click();}).then(function(){ //Call the wait function to wait until the FAQ button appears. return $browser.waitForAndFindElement($driver.By.id("supportFAQLink"), 20000).then(function(aboutPage){ return aboutPage.click(); })});
자세한 내용 은 특정 요소 대기 및 조건: 조건 일시 중지 및 대기를 참조하세요.
웹사이트에 로그인
아래 예에서 모니터:
- http://telco.nrdemo-sandbox.com/login.jsp 를 로드합니다.
- 요소 이름을 통해 사용자 이름 필드를 찾고 보안 자격 증명 기능을 통해 보안 사용자 이름을 제출합니다.
- 요소 이름을 통해 비밀번호 필드를 찾고 보안 비밀번호를 제출합니다.
- XPath를 통해 로그인 버튼을 찾고 클릭하여 계정 정보를 제출합니다.
$browser.get("http://telco.nrdemo-sandbox.com/login.jsp").then(function(){//Find the user name field by specifying its name, then submits a secured username. return $browser.findElement($driver.By.name("username")).sendKeys($secure.SECURE_USERNAME);}).then(function(){//Find the password field by specifying its name, then submits a secured password. return $browser.findElement($driver.By.name("password")).sendKeys($secure.SECURE_PASSWORD);}).then(function(){//Find and click the login button. return $browser.findElement($driver.By.xpath("//input[@value='Login']")).click();});
보안 자격 증명 사용에 대한 자세한 내용은 보안 자격 증명 저장 을 참조하십시오.
팁
어떤 자격 증명을 사용해야 합니까?
여러 웹사이트에서 비밀번호를 재사용하면 안 되는 것처럼 스크립트에 고유한 새 자격 증명을 만드는 것이 좋습니다. 개인 자격 증명을 사용하거나 자격 증명을 재사용하지 마십시오.