O navegador com script emula uma experiência personalizada do usuário por navegador de script que navega em seu site, executa ações específicas e garante que elementos específicos estejam presentes. Selenium Webdriver conduz monitor com script. Cada vez que seu script é executado, a New Relic cria um navegador Google Chrome totalmente virtualizado baseado em Selenium que navega em seu site e segue cada etapa do script. O monitoramento sintético inclui um editor script estilo IDE que sugere funções, localizador e outros elementos para simplificar o script. Consulte Referência do navegador com script para obter uma lista de todas as funções disponíveis.
Como criar um script monitor de navegador com
Vá para one.newrelic.com > All capabilities > Synthetic monitoring.
Clique em Create monitor.
Selecione o bloco User flow / functionality para testar a disponibilidade e a funcionalidade do seu site em diferentes locais.
Configurar o monitor. Preencha os campos desejados. Adicione um nome para seu monitor. Selecione o navegador e os dispositivos emulados que você gostaria de testar.
Clique em Select locations para selecionar o local onde deseja testar o monitor.
Clique em Write script para adicionar seu script descrevendo as ações que você deseja que o monitor execute. O monitor preenche previamente o editor com um script de exemplo com o qual você pode trabalhar ou pode removê-lo e começar do zero.
Clique em Validate se quiser testar seu script. Isso pode levar alguns minutos dependendo do script.
Clique em Save monitor.
Visite um URL
Todos os scripts começam especificando para qual URL o monitor deve navegar. Para especificar um URL, chame $webDriver.get("url")
:
await $webDriver.get("https://mywebsite.com");
Sequenciar ações
Como o WebDriverJS é assíncrono, as ações de script às vezes podem ser executadas fora de ordem. Para forçar a execução das ações do script em ordem, use a palavra-chave await
:
await $webDriver.get("https://my-website.com");await $webDriver.findElement($selenium.By.linkText("Configuration Panel"));
Você também pode agrupar cada ação em uma chamada then(function(){})
. Mas, nesse caso, a função encapsulada deve return
cada função assíncrono para garantir que sejam concluídas antes que o script prossiga:
$webDriver.get("https://my-website.com").then(function(){ return $webDriver.findElement($selenium.By.linkText("Configuration Panel"));});
Para conectar diversas ações em sequência, envolva cada ação em uma chamada then(function(){})
e encadeie as chamadas:
$webDriver.get("https://my-website.com").then(function(){ return $webDriver.findElement($selenium.By.linkText("Configuration Panel"));}).then(function(){ return $webDriver.findElement($selenium.By.partialLinkText("Configuration Pa"));});
Localize elementos
Depois de especificar um URL para monitor, normalmente você desejará localizar um elemento específico na página. Localizar um elemento verifica sua presença na página e também permite interagir com o elemento da página.
Você pode localizar elementos por class
, id
, link text
, name
ou mesmo XPath. Para encontrar esses atributos, utilize as ferramentas de desenvolvimento do seu navegador ou visualize o código-fonte do seu site. Para obter uma lista de todas as funções do localizador, consulte localizador: Localizar elemento da página.
Interaja com elementos
Como um monitor com script controla um navegador Chrome ou Firefox real, com tecnologia Selenium , ele pode interagir com o elemento de página da mesma forma que um usuário faria. Por exemplo, o monitor pode clicar em um link, inserir texto em uma caixa de pesquisa, etc. Para obter uma lista de ações disponíveis, consulte ActionSequence: vincular várias ações.
Primeiro, localize o elemento de página e depois chame uma função de interação:
Espera e tempos limite
Elementos de página grandes, como imagens ou conteúdo dinâmico complexo, podem demorar muito para carregar. Seu script poderá falhar se o monitor tentar interagir ou localizar um elemento que ainda não foi carregado.
Para evitar esses problemas, defina condições de espera que pausarão o script até que o elemento de página especificado esteja presente ou sequencie ações manualmente. Para obter uma lista de condições, consulte Condições: pausar e aguardar condições.
Importante
Após um tempo de execução máximo de três minutos, o New Relic interrompe manualmente o script.
manualmente os log resultados no do script log
Você também pode log manualmente os resultados do monitor no logdo script. Use o log para solucionar problemas de um script: para descobrir qual etapa do seu script está falhando, inclua uma função de log junto com cada etapa principal do seu script.
Importante
O comprimento máximo do log é de 50.000 bytes. O log de script com mais de 50.000 bytes é truncado.
Desbloquear serviços analíticos
O Sintético bloqueia a execução de scripts de serviços analíticos populares por padrão. Você pode permitir que o script seja executado para serviços específicos. Isso permite que o script do serviço seja executado e colete dados como faria para um usuário real.
//Allow Google Analytics scripts to runawait $urlFilter.addToAllowList(['google-analytics.com']);
//Visit https://my-website.comawait $webDriver.get('https://my-website.com');
Personalize o agente do usuário
Você pode personalizar o agente de usuário do browser com script para garantir que quaisquer correções específicas do browser em seu aplicativo estejam funcionando corretamente ou para ignorar um mecanismo de segurança para filtrar um site interno.
//Simulate Internet Explorer 10.6$headers.add('User-Agent', 'Mozilla/5.0 (compatible; MSIE 10.6; Windows NT 6.1; Trident/5.0; InfoPath.2; SLCC1; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET CLR 2.0.50727) 3gpp-gba UNTRUSTED/1.0');
//Visit http://httpbin.org/user-agentawait $webDriver.get('http://httpbin.org/user-agent');
Importante
Isso apenas falsifica o cabeçalho HTTP do agente do usuário para a solicitação ao servidor. Isso não altera o valor de navigator.userAgent
.
Importar módulos opcionais
Você também pode importar muitos módulos populares do Node.js para aprimorar seu conjunto de testes, automatizar a inserção de dados de teste e simplificar funções complexas. Para obter mais informações, consulte Importando módulos Node.js.
Importante
For Non-Legacy Runtimes O ambiente de script contém diretórios protegidos contra gravação. Se o seu script exigir o armazenamento de arquivos, acrescente qualquer um dos seguintes caminhos ao nome do arquivo:
runtime/input-output/input/
runtime/input-output/output/