19 Elements del navegador

Visió general

Els elements del navegador permeten supervisar llocs web complexos i aplicacions web mitjançant un navegador.

::: nota important Actualment, el suport dels elements del navegador és experimental. :::

Els elements del navegador recullen dades executant un codi JavaScript definit per l'usuari i recuperant dades mitjançant HTTP/HTTPS. Aquest element pot simular accions relacionades amb el navegador com ara fer clic, introduir text, navegar per pàgines web i altres interaccions de l'usuari amb llocs web o aplicacions web.

A més de l'script, es pot especificar una llista opcional de paràmetres (parells de nom i valor) i temps d'espera.

::: nota important L'element implementa parcialment l'estàndard W3C WebDriver amb Selenium Server o amb un WebDriver normal (per exemple, ChromeDriver) com a punt final de prova web. Perquè l'element funcioni, configureu el punt final al paràmetre WebDriverURL del fitxer de configuració servidor/proxy de Zabbix. :::

Els elements del navegador són executats i processats pel servidor Zabbix o els enquestadors del navegador proxy. Si cal, podeu ajustar el nombre d'instàncies prèviament bifurcades dels enquestadors d'elements del navegador al [servidor] Zabbix (/manual/appendix/config/zabbix_server#startbrowserpollers)/proxy paràmetre StartBrowserPollers del fitxer de configuració.

Per monitorar llocs web i aplicacions web complexes, la plantilla Website by Browser està disponible com a out -of-the-box template.

Configuració

::: nota important Si utilitzeu ChromeDriver com a punt final de prova web, consulteu Consideracions de seguretat. :::

Al camp Tipus de formulari de configuració de l'element, seleccioneu Navegador i, a continuació, ompliu els camps obligatoris.

Tots els camps d'entrada obligatoris estan marcats amb un asterisc vermell.

Els camps que requereixen informació específica per als elements del navegador són:

Camp Descripció
Clau Introduïu una clau única que s'emprarà per identificar l'element.
Paràmetres Especifiqueu les variables que s'han de passar a l'script com a parells d'atribut i valor.
S'admeten macros d'usuari. Per veure quines macros integrades s'admeten, cerqueu "Element de tipus navegador" a la taula macro compatible.
Script Introduïu el codi JavaScript al bloc que apareix en fer clic al camp de paràmetres (o al botó de visualització/edició al costat). Aquest codi ha de proporcionar la lògica per retornar el valor de mètrica.
El codi té accés a tots els paràmetres, tots els objectes JavaScript addicionals i [objectes JavaScript d'element del navegador] (/manual/config/items/preprocessing/javascript/browser_item_javascript_objects) afegit per Zabbix.
Vegeu també: JavaScript Guide.
Temps d'espera Temps d'espera d'execució de JavaScript (entre 1 i 600 segons; si el supera es retornarà un error).
Tingueu en compte que, depenent de l'script, el temps d'espera pot tardar més a activar-se.
Per obtindre més informació sobre el * Paràmetre Timeout*, veieu atributs generals d'element.

Exemples

Script per defecte

El següent script:

  1. Inicia una sessió del navegador.
  2. Navega a un URL especificat.
  3. Recull entrades de rendiment i estadístiques de sessió i les retorna com a cadena JSON.

Al camp Script, introduïu:

var browser = new Browser(Browser.chromeOptions());
       
       try {
           browser.navigate("http://example.com");
           browser.collectPerfEntries();
       }
       finally {
           return JSON.stringify(browser.getResult());
       }
Comproveu l'inici de sessió de Zabbix

El següent script:

  1. Inicia una sessió del navegador.
  2. Navega a la pàgina d'inici de sessió de Zabbix.
  3. Introdueix el nom d'usuari "Administrador" i el mot de pas "zabbix".
  4. Cerca i fa clic al botó d'inici de sessió.
  5. Cerca i fa clic al botó de tancament.
  6. Recull dades de rendiment abans i després de la sessió, així com després de la sessió.
  7. Gestiona els errors capturant missatges d'error i una captura de pantalla.
  8. Retorna els resultats recollits com a cadena JSON.

Al camp Script, introduïu:

var browser, result;
       
       browser = new Browser(Browser.chromeOptions());
       
       try {
           browser.navigate("http://example.com/zabbix/index.php");
           browser.collectPerfEntries("open page");
       
           var el = browser.findElement("xpath", "//input[@id='name']");
           if (el === null) {
               throw Error("cannot find name input field");
           }
           el.sendKeys("Admin");
       
           el = browser.findElement("xpath", "//input[@id='password']");
           if (el === null) {
               throw Error("cannot find password input field");
           }
           el.sendKeys("zabbix");
       
           el = browser.findElement("xpath", "//button[@id='enter']");
           if (el === null) {
               throw Error("cannot find login button");
           }
           el.click();
       
           browser.collectPerfEntries("login");
       
           el = browser.findElement("link text", "Sign out");
           if (el === null) {
               throw Error("cannot find logout button");
           }
           el.click();
       
           browser.collectPerfEntries("logout");
       
           result = browser.getResult();
       }
       catch (err) {
           if (!(err instanceof BrowserError)) {
               browser.setError(err.message);
           }
           result = browser.getResult();
           result.error.screenshot = browser.getScreenshot();
       }
       finally {
           return JSON.stringify(result);
       }
Iniciar el navegador

El següent script:

  1. Inicia una sessió de navegador per al navegador disponible en funció del primer navegador coincident en l'ordre especificat a l'script.
  2. Defineix les capacitats del navegador, inclosa l'estratègia de càrrega de la pàgina i les opcions específiques de cada navegador, com ara el mode sense cap dels navegadors Chrome, Firefox i Microsoft Edge.

Tingueu en compte que per configurar instàncies de WebDriver, us caldran scripts de prova o escenaris addicionals per interactuar amb els llocs web o l'aplicació web que sou provant.

Al camp Script, poseu-hi:

var browser = new Browser({
           "capabilities":{
               "firstMatch":[
                   {
                       "browserName":"chrome",
                       "pageLoadStrategy":"normal",
                       "goog:chromeOptions":{
                           "args":[
                               "--headless=new"
                           ]
                       }
                   },
                   {
                       "browserName":"firefox",
                       "pageLoadStrategy":"normal",
                       "moz:firefoxOptions":{
                           "args":[
                               "--headless"
                           ]
                       }
                   },
                   {
                       "browserName":"MicrosoftEdge",
                       "pageLoadStrategy":"normal",
                       "ms:edgeOptions":{
                           "args":[
                               "--headless=new"
                           ]
                       }
                   },
                   {
                       "browserName":"safari",
                       "pageLoadStrategy":"normal"
                   }
               ]
           }
       });