Teste de carga de selênio explicado: WebDriver & Java

O teste de desempenho é um tipo de teste não funcional que mede como aplicativos web, páginas da Web ou frameworks respondem quando testados contra vários níveis de carga para ver como eles agem e respondem quando sob carga por determinados períodos de tempo. Neste artigo vamos nos propusemos a explicar como usar o Selênio e sua família de ferramentas, para realizar testes de desempenho. Embora não seja recomendável usar apenas Selenium e WebDriver para a realização de testes de carga, este artigo explicará o processo de configuração de um teste de carga com o Selenium, bem como cobrirá as vantagens de uma solução como o LoadView.

O que é o WebDriver de Selênio?

O Selenium WebDriver é utilizado para automatizar testes de aplicativos web para verificar se ele preenche o formulário fiel. Ele suporta inúmeros navegadores, por exemplo, Firefox, Chrome, Internet Explorer e Safari. De qualquer forma, utilizando o WebDriver, podemos automatizar testes para aplicações web por assim que fossem. Ele não se encaixa na conta de aplicativos baseados no Windows. Da mesma forma, reforça diversos dialetos de programação, por exemplo, C#, Java, Perl, PHP e Ruby para compor conteúdos de teste. O Selenium WebDriver é gratuito em palco, uma vez que um código semelhante pode ser utilizado em vários sistemas operacionais como Windows, iOS, Linux e Ubuntu. É um dos segmentos da família Selênio, que incorpora adicionalmente o Selenium IDE (Ambiente de Desenvolvimento Integrado), a API do Cliente Selênio, o Controle Remoto de Selênio e a Grade de Selênio.

O Selenium WebDriver não funciona com o Windows, mas essa restrição pode ser sobrecarregada utilizando instrumentos de terceiros, por exemplo, AutoIT, Sikuli e outros. Possui diversos procedimentos de área também, por exemplo, ID, Nome, Texto de Link, Texto de Conexão Parcial, Nome da Classe, Seletor CSS (Cascading Style Sheets) e Xpath. Ele também tem melhor suporte para páginas dinâmicas como AJAX (Asynchronous JavaScript e XML), onde os componentes da página podem mudar sem que a própria página seja recarregada. Utilizando diversos documentos de contêineres, podemos também testar APIs (Application Programming Interfaces), bancos de dados e, assim, utilizando o Selenium WebDriver.

Devops de teste de carga

Grade de selênio e teste de carga

Selenium Grid é outro componente do Selênio que é usado para ajudar a reduzir o tempo de execução do teste ao executar vários testes ao mesmo tempo, também conhecido como teste paralelo. Por exemplo, com o Selenium Grid, um usuário pode realizar vários testes em diferentes navegadores e sistemas operacionais ao mesmo tempo. A Grade de Selênio é composta por dois elementos distintos, chamados hubs e nódulos. Os hubs trabalham em conjunto com solicitações do WebDriver e comandos de teste de rotas (JSON) para seus nódulos, onde ocorre a execução do teste. Pense no hub como uma única máquina onde você pode se conectar a várias máquinas executando diferentes sistemas operacionais. Os nós são onde os sistemas operacionais, navegadores e o WebDriver remoto estão contidos se você estiver executando testes em uma máquina separada.

No entanto, em termos de teste de carga, você pode encontrar restrições de sistema se você estiver procurando executar testes de carga em escala. Testes de carga em larga escala exigem requisitos adicionais de dimensionamento, configuração e manutenção que ferramentas de código aberto, como o Selenium Grid, não podem suportar. Para casos como este, uma solução como o LoadView é benéfica. Falaremos mais sobre a solução LoadView e os benefícios de usar essa solução para executar scripts selenium da nuvem a partir de uma rede de nuvem totalmente gerenciada.

Ferramentas de código aberto: Selênio vs. JMeter

Logotipo de selênio
O debate sobre se qual ferramenta de software de código aberto é melhor para testes é um tema comum entre engenheiros de desempenho e testadores. Selenium e JMeter são duas ferramentas completamente diferentes, no entanto, ambas foram projetadas para testar aplicações web e suas capacidades evoluíram ao longo do tempo para suportar uma gama mais ampla de testes. Enquanto o JMeter é construído principalmente para testes de desempenho ou carga, o Selenium é usado principalmente para automação. No entanto, ele realmente se resume aos requisitos para seus testes e com qual solução você está mais confortável. Por exemplo, você precisa entender o desempenho da perspectiva do usuário final em um navegador real?

Se você está procurando automatizar testes em diferentes navegadores, então o Selenium seria uma escolha desejável. Se você está simplesmente procurando realizar testes de desempenho baseados em protocolo para entender como seu aplicativo ou site responde a usuários simultâneos, então o JMeter pode ser o preferido. No entanto, é importante notar que o JMeter também tem suas desvantagens quando se trata de testes de desempenho. Como o Selenium, se você está procurando realizar testes em larga escala, pode ser difícil suportar, pois os testes devem ser executados a partir de uma máquina local que é restrita por recursos de hardware. Temos um ótimo artigo que abrange os prós e contras dos testes de carga JMeter.

Leia: Teste de carga do JMeter: como usar o JMeter para testes de desempenho

Arquitetura webdriver de selênio

A API do Selenium WebDriver oferece facilidade de correspondência entre idiomas e navegadores. A imagem que acompanha mostra o retrato composicional do WebDriver de Selênio.

Existem quatro partes fundamentais da Arquitetura WebDriver:

  • Amarras da linguagem de selênio
  • Protocolo de Fio JSON
  • Drivers do programa
  • Navegadores Genuínos
Arquitetura selênio

Amarras da linguagem de selênio

Testadores de carga de selênio fizeram vinculações de idiomas/Bibliotecas de Clientes de Selênio para ajudar inúmeros dialetos. Por exemplo, na chance de que você precisa utilizar o driver do programa em Java, utilize a compilação Java. Todas as vinculações de idiomas confirmadas podem ser baixadas no site oficial do Selenium. A quantidade de clientes de Selênio desenvolveu-se fundamentalmente após algum tempo. Inúmeros clientes implicam inúmeras pilhas de melhorias a serem mantidas, e a documentação de rede para utilizar o Selenium com vários dialetos, utilizando a API do WebDriver como a principal utilidade a ser compartilhada por meio de vinculação.

Protocolo de Fio JSON

JSON (JavaScript Object Notation) é uma norma aberta para negociação de informações na web. Sustenta estruturas de informação como artigo e exposição. Desta forma, é tudo menos difícil de compor e peruse informações da JSON. JSON Wire Protocol é um veículo usado para mover informações entre um cliente e um servidor. JSON Wire Protocol preenche como um padrão do setor para diferentes administrações web REST (Representational State Transfer).

Drivers do programa

O Selênio utiliza motoristas, explícitos a cada programa para construir uma associação protegida com o programa sem descobrir a lógica interior da utilidade do programa. O driver do programa também é explícito para a linguagem utilizada para automação, por exemplo, Java, C#, e assim por diante. No momento em que executamos um conteúdo de teste utilizando o WebDriver, as atividades de acompanhamento são realizadas no interior.

 

        • A demanda HTTP (Hypertext Transfer Protocol) é criada e enviada ao driver do programa para cada pedido de Selenium.
        • O motorista recebe a demanda HTTP através do trabalhador HTTP.
        • O SERVIDOR HTTP escolhe todos os meios para executar diretrizes que são executadas no programa.
        • O status de execução é enviado de volta ao SERVIDOR HTTP, que é, portanto, enviado de volta para conteúdo automatizado.

Navegadores Genuínos

Os navegadores suportados pelo Selenium WebDriver incluem o seguinte:

  • Internet Explorer
  • Mozilla Firefox
  • Google Chrome
  • safári
  • Ópera

Características do WebDriver de Selênio

Suporte múltiplo do navegador

O Selenium WebDriver suporta uma série de navegadores de internet, por exemplo, Firefox, Chrome, Internet Explorer, Opera e Safari. O Selenium WebDriver também suporta navegadores simulados ou navegadores sem cabeça, como HTMLUnit. HTMLUnit é um navegador sem cabeça ou um navegador que não usa uma GUI (Graphical User Interface). Outros navegadores sem cabeça suportados incluem o PhantomJS, no entanto, não é recomendado, pois não é mantido por um longo tempo. Muitas soluções de teste de carga de código aberto usam navegadores sem cabeça, pois os testadores de desempenho podem iniciar muitas solicitações HTTP ou tráfego baseado em protocolos. O problema, no entanto, com navegadores sem cabeça é que eles não podem testar scripts do lado do cliente, de modo que o desempenho real da perspectiva do usuário é perdido.

relatório de monitoramento de desempenho
Testes baseados em protocolos versus testes baseados em navegador real

Os testes baseados em protocolos foram extremamente populares durante os primeiros anos da Internet. No entanto, com o tempo, as estruturas de aplicativos da Web e os navegadores evoluíram, e agora aqueles métodos de teste de carga outrora populares tornaram-se cada vez mais desatualizados. Embora os testes HTTP ainda sejam usados hoje em dia, isso dificulta o teste de carga à medida que os sites se tornam mais complexos.

Os aplicativos web modernos dependem do comportamento e das ações do lado do cliente, em vez do servidor para navegação, pesquisas, etc. Por exemplo, os SPAs (Single-Page Applications, aplicativos de página única) dependem de pouco envolvimento do servidor assim que a página é carregada. Pode haver algum conteúdo dinamicamente carregado do lado do servidor, mas do ponto de vista do usuário, isso fornece a eles uma experiência mais perfeita sem ter que carregar continuamente novas páginas.

 

Suporte à linguagem de programação

O WebDriver também suporta muitas das linguagens de programação populares como Java, C#, JavaScript, PHP, Ruby, Perl e Python. Posteriormente, o cliente pode escolher qualquer uma das linguagens de programação com as que mais se sentem confortáveis e começar a construir os conteúdos de teste.
Tente monitorar com o LoadView.

Grátis por 30 dias. Sem cartão de crédito, sem contrato.

Automação de teste de selênio com Python

Como mencionamos anteriormente, python é uma das linguagens de programação suportadas dentro do Selenium. Python é popular porque é fácil de usar e usa comandos básicos em inglês, ao contrário da pontuação, símbolos e caracteres como outras linguagens de programação usam. Além disso, o Python tende a funcionar mais rápido e é mais simples em comparação com outras línguas, como Java, por exemplo. Para começar a testar com o Python, existem alguns pré-requisitos que precisam ser concluídos, como a instalação da versão Python mais recente, bem como os drivers web apropriados, dependendo do navegador que você está usando, como Chrome, Edge, Firefox, etc.

Além disso, existem etapas e considerações adicionais, como definir preferências, criar o projeto e o módulo PyDev antes que você possa começar a criar seu script Python. Então, do ponto de vista de um testador, isso leva mais tempo e esforço para poder apenas realizar testes. Então, por exemplo, se você quiser testar o login em uma conta, há muito trabalho manual e conhecimento que um testador precisa ter antes que eles possam começar. Uma solução baseada na Web como o LoadView remove todos esses obstáculos com o EveryStep Web Recorder. Os testadores de desempenho podem simplesmente navegar através de seu aplicativo ou site da Web, independentemente do navegador usado, como um usuário final típico faz e os scripts são salvos automaticamente. A partir daí, você pode inserir variáveis que podem simular o login em um formulário, enviando diferentes credenciais para testes de carga. Não é necessário experiência ou conhecimento prévio de codificação.

velocidade

O WebDriver funciona mais rápido quando contrastado com diferentes aparelhos do Selenium Suite. não precisa de nenhum meio do trabalhador rodoviário para falar com o programa; o dispositivo fala diretamente com o programa.

Comandos Básicos

A maioria das ordens utilizadas no Selenium WebDriver são tudo menos difíceis de fazer. Por exemplo, para despachar um programa no WebDriver, as seguintes ordens são utilizadas:

  • Driver WebDriver = novo FirefoxDriver(); (Programa Firefox)
  • Driver WebDriver = novo ChromeDriver(); (Programa Chrome)
  • Driver WebDriver = novo InternetExplorerDriver(); (Programa Internet Explorer)
Métodos e Classes do WebDriver

O WebDriver fornece respostas diferentes para se adaptar a algumas das possíveis dificuldades em testes de automação. O WebDriver também permite que os analisadores gerenciem todos os tipos de componentes web complexos, por exemplo, caixas de verificação, drop-downs e advertências.

Experimente o LoadView por 30 dias!

Sem cartão de crédito, sem contrato.

Teste de carga usando o WebDriver de Selênio

Existem alguns passos quando se trata de testes de carga usando o Selenium WebDriver.

Crie uma configuração do navegador

Faça um Thread Group e inclua “Chrome Driver Config” no menu Config Elements.

Grupo de segmentos de selênio
Nesse ponto, você deve dar ao ChromeDriver baixado um caminho para o seu Elemento Config.
Rio ChromeDriver de selênio

Implemente seu teste

Inclua o WebDriver Sampler no Thread Group. Isso o levará a uma nova seção e abrirá uma página do site. Para se comunicar com o programa, você deve utilizar técnicas explícitas de Selênio, como chaves de send, clique(), etc. Aqui estão algumas dicas:

Procurar comando aberto

Este comando abre a URL dada

WDS.browser.get
Para fazer alguma atividade explícita de interface do usuário, você deve importar o pacote org.openqa.selenium para o seu conteúdo. Basta adicionar esta linha ao seu conteúdo como mostrado abaixo.
JavaImporter

Comando SendKeys

Se você sabe sobre o Selenium, você percebe que pode chegar ao componente por cssSelector, ID, XPath e assim por diante a variável pkg que fizemos, o que incentiva você a descobrir o componente web. É assim que você descobre um componente. Você armazena o webElement em uma variável chamada searchField.

Comando SendKeys
Neste ponto, você simplesmente utiliza o trabalho padrão de Selenium SendKeys para pensar em algum conteúdo.
searchField

Clique em Comando

Selênio tem uma ordem de snap subjacente. Você simplesmente utiliza uma capacidade semelhante depois de ganhar o webElement. Para começar, armazenamos o componente e reproduzimos a atividade de snap.

Clique em Comando

Comandos adicionais

Além dessas ordens essenciais, devemos utilizar algumas ordens explicitamente destinadas ao Selênio, para que o Selenium tenha a opção de pegar o tempo inicial e final do sampler. Essas duas técnicas enviarão ao Selênio os sinais de início e fim para fins reveladores.

Beginning_End de selênio

Comando log

Você deve fazer algum registro durante o seu teste. Nesse ponto você simplesmente utiliza a ordem inferior. Além disso, os usuários podem ver os resultados do teste de carga.

Comando log

Tipos de Pedidos

Existem dois tipos de solicitações com as que você pode se sentir confortável, GET e POST.

Selênio RECEBER Solicitação
Na hipótese de ser uma solicitação GET, nesse ponto ele traz uma reação que será criada no final do programa e será enviada por HTTP para o driver do programa, e eventualmente, o driver do programa com o auxílio da convenção de fio JSON envia-o para a interface do usuário, ou Eclipse IDE (Ambiente de Desenvolvimento Integrado).
Tente o monitoramento da API com o LoadView.

Grátis por 30 dias. Sem cartão de crédito, sem contrato.

Vantagens do WebDriver de Selênio

Existem outras ferramentas no mercado que podem automatizar testes, então quais são as vantagens do Selenium WebDriver? Analisaremos várias vantagens que o Selenium WebDriver tem sobre outras ferramentas de automação.

 

      • Livre. É uma das ferramentas de teste de automação de código aberto mais populares do mercado. Além disso, ele pode se integrar com muitas das plataformas populares de Integração Contínua (CI) como Jenkins, Maven, TestNG e muito mais.
      • Suporta vários sistemas operacionais como Windows, Mac, Linux, Unix, etc.
      • Suporta uma ampla gama de idiomas, incluindo Python, Java, C#, Ruby, JavaScript, PHP e Kotlin.
      • Suporte para navegadores populares como Chrome, Firefox, Opera, Safari e Internet Explorer.
      • O Selenium WebDriver termina a execução de conteúdos de teste mais rapidamente quando comparado com diferentes ferramentas.
      • API mais concisa (Interface de Programação de Aplicativos).
Devops de teste de carga

Desvantagens do Selênio

Embora existam muitas vantagens de uma ferramenta de código aberto como o Selenium, existem algumas desvantagens que você vai querer considerar:

      • Suporta apenas testar aplicativos baseados na Web.
      • Requer conhecimento aprofundado. Os usuários precisam de uma boa compreensão das linguagens de programação.
      • O emissão de relatórios é limitado e normalmente exige que os usuários confiem em ferramentas de terceiros.
      • Nenhum suporte técnico dedicado ou confiável como você teria para uma ferramenta comercial.
      • Sem suporte para ORC (Optical Character Recognition). Há uma solução alternativa de terceiros, mas requer muitas etapas e conhecimento aprofundado para realizar efetivamente.

Ferramentas de teste de carga de código aberto

curva ajustável dinâmica de visão de carga
Como já discutimos anteriormente, uma ferramenta de código aberto como o Selenium é uma ótima maneira de realizar testes de carga de forma muito econômica. O selênio é apenas uma das muitas opções de código aberto disponíveis para engenheiros e testadores. Outras ferramentas populares incluem JMeter, Gatling, Tsung e Locust. No entanto, ser de código aberto nem sempre significa que é a melhor solução de teste de carga. Com o software de código aberto em geral, há muito trabalho e configuração adicionais que precisam ser concluídos antes mesmo de você começar o processo de teste de carga. Embora as ferramentas de código aberto sejam gratuitas, ainda há um investimento significativo de hardware e tempo que precisa ser considerado.
Além disso, pode haver uma variedade de recursos e benefícios que estão faltando a partir de ferramentas de código aberto que ferramentas comerciais, como o LoadView, que vêm de série. Com o LoadView não há uma configuração demorada ou requisitos de hardware, para que os engenheiros de desempenho possam se concentrar em testes. Recursos como painéis de desempenho sob demanda, gravador de script de ponto e clique, relatórios de desempenho e acesso a uma rede de testes de carga distribuída totalmente gerenciada, apenas para citar alguns.

Testes de interface do usuário e a experiência do usuário

Um fator importante para saber se um cliente ou cliente acaba fazendo negócios com sua organização é sua experiência com seus sites e aplicativos web. Não só é fundamental garantir que seus aplicativos web estejam funcionando corretamente, mas o teste de carga garante que seus aplicativos e seu sistema em geral possam lidar com aumentos no tráfego sem afetar o comportamento. Isso proporciona confiança ao cliente e aumenta a chance de que eles sejam um retorno no futuro. O teste de interface do usuário é um pouco diferente de testar o back-end de um sistema.

O teste de interface do usuário se concentra em como os componentes visíveis de suas páginas e aplicativos se comportam. Isso inclui formulários, carrinhos de compras, menus, portais, etc. Qualquer coisa que seja visível para o usuário ou processos que sejam críticos para a empresa deve ser testado. Embora uma ferramenta como o Selenium possa ser usada, uma solução como o LoadView fornece aos engenheiros todas as ferramentas de que precisam de páginas e aplicativos de teste rápido e facilmente. O selênio requer configuração adicional e conhecimento abrangente de linguagens de programação. Com o LoadView, você pode scriptr essas ações do usuário rapidamente com o EveryStep Web Recorder e testar esses scripts a partir de uma rede de nuvem totalmente gerenciada de mais de 40 locais.

Leia: Teste de carga UI vs. Back-end

LoadView: Teste de carga e estresse em navegadores reais

As ferramentas de monitoramento de API pagas geralmente incluem recursos adicionais, opções adicionais, suporte a vários protocolos, acesso a atualizações contínuas e locais de monitoramento globais, o que é fundamental para entender como as APIs estão se saindo de onde seus usuários estão localizados. Além disso, o suporte é um grande diferencial entre ferramentas gratuitas de monitoramento de API e ferramentas de monitoramento de API pagas. As opções de suporte com ferramentas gratuitas de API são tipicamente limitadas e só podem estar disponíveis através de perguntas frequentes ou documentos de suporte, sem acesso a uma equipe de suporte dedicada 24 horas por dia, 7 dias por semana.

LoadView

Para aplicativos web, os usuários podem utilizar o EveryStep Web Recorder e apontar e clicar em seu caminho através do aplicativo da mesma maneira que um usuário ou cliente faria. Esses scripts são então carregados na plataforma LoadView onde, com apenas mais alguns cliques, você pode criar seu cenário de teste de carga e executar seu teste. Não perca tempo roteirizando manualmente cenários para suas aplicações web. Saiba mais sobre os recursos do LoadView.

Vantagens do LoadView

Estas são apenas algumas das grandes vantagens do LoadView:

  • Simples de usar. Ele tem uma interface de usuário fácil de entender.
  • Inclui o EveryStep Web Recorder para gravação fácil e rápida de script.
  • Integra-se com ferramentas de Integração Contínua, como jenkins.
  • Suporta muitas tecnologias e frameworks, navegadores e dispositivos móveis.
  • Teste de mais de 40 locais globais.
  • Pode testar no nível de protocolo, bem como usar navegadores reais.

Diferenças básicas entre LoadView e Selênio

Alt do logotipo LoadView

LoadView

  • LoadView é uma solução de teste de carga totalmente gerenciada baseada na Web.
  • O LoadView não precisa de suporte estendido para testes entre navegadores.
  • O LoadView pode testar em escala e tudo e os usuários podem ver a visualização gráfica dos testes de carga.
  • O LoadView pode capturar um vídeo para facilitar a solução de problemas.
Logotipo de selênio

selénio

  • Selênio é uma biblioteca de programação tangível e não um aparelho.
  • O Selenium suporta uma ampla gama de navegadores para testes de navegador cruzado.
  • O selênio não escala bem.
  • O Selenium WebDriver não tem a capacidade de capturar um vídeo e solução de problemas.

O conjunto de testes selenium pode ser composto em uma suíte TestNG XML. Como o nome propõe, é um documento XML que retrata toda uma suíte/situação de teste de Selênio a ser executada. O registro subsequente pode ser compartilhado entre máquinas de teste, admitindo que eles têm uma lógica de inclusão de teste semelhante. O selênio pode ser utilizado para alguns testes de apresentação (por exemplo, testes restritos de transmissão de dados), mas não pode ser utilizado para empilhar testes com exatidão como o LoadView. Por exemplo, o Selênio não pode produzir um número controlado de solicitações por um período considerável de tempo. O LoadView torna a configuração de seus detalhes de teste de carga, como usuários simultâneos, atrasos, tempos de rampa/rampa para baixo e muito mais.

E como mencionamos anteriormente, o LoadView pode gravar scripts passo a passo para sessões de aplicativos da Web através de navegadores reais e reproduzir as sessões da Web à medida que o servidor os vê. Além disso, o LoadView tem outra experiência de cliente final incluída, o que lhe dá poder testar suas páginas da Web e ver o que os clientes veem quando seu site está sob carga.

Uma vez que seus testes estejam concluídos, você pode visualizar os dados através de relatórios de desempenho, relatórios de sessão, gráficos de cachoeira, etc., para ver a divisão de desempenho de cada elemento e componente. Na maior parte do tempo, há erros e bugs que seus usuários podem nem estar cientes, mas está afetando os tempos de carga e o desempenho. Você pode ver exatamente onde estão os problemas, para que suas equipes possam corrigi-los rapidamente.

Conclusão: Teste de carga de selênio explicado

teste de desempenho de estresse de carga
LoadView e Selenium são ambos utilizados para testes de aplicativos web. No entanto, a distinção fundamental é que o LoadView é usado para testar a apresentação de aplicativos web sob carga e estresse. Por outro lado, o Selenium é mais apropriado para testes de automação e cross program de um site. Considerando que tipo de teste é importante para o empreendimento, certamente pode-se usar o LoadView para atender a todas as suas necessidades de teste de desempenho.

O LoadView fornece vem pronto com muitos recursos fora da caixa que a maioria das ferramentas no mercado não incluem. Além disso, os usuários têm a opção de escolher entre vários planos baseados em assinatura ou um plano sob demanda, que melhor se adequa às necessidades da sua organização.

Experimente o LoadView para você hoje! Ou melhor ainda, agende uma demonstração ao vivo com um de nossos engenheiros de desempenho. Eles vão levá-lo passo a passo através da plataforma LoadView e mostrar exatamente como configurar, configurar e executar testes de carga.

Leve seu teste de carga para o
Próximo Nível

Experimente recursos incomparáveis com escalabilidade ilimitada. Sem cartão de crédito, sem contrato.