Introdução a Gatling
1. Visão geral
Gatling é umload testing tool que vem com excelente suporte do protocoloHTTP - o que o torna realmente uma boa escolha para testar a carga de qualquer servidorHTTP.
Este guia rápido mostrará comosetup a simple scenario para testar a carga de um servidorHTTP.
Gatlingsimulation scripts are written in Scala, mas não se preocupe - a ferramenta vem para nos ajudar com uma GUI que nos permite registrar o cenário. Depois de terminar de registrar o cenário, a GUI cria o scriptScala que representa a simulação.
Depois de executar a simulação, temos umHTML reports pronto para apresentar.
Por último, mas não menos importante, a arquitetura de Gatlingis asynchronous. Esse tipo de arquitetura nos permite implementar usuários virtuais como mensagens em vez de threads dedicados, tornando-os muito baratos em recursos. Portanto, executar milhares de usuários virtuais simultâneos não é um problema.
Também é importante notar que o mecanismo principal é, na verdade,protocol agnostic, por isso é perfeitamente possível implementar suporte para outros protocolos. Por exemplo, Gatling atualmente também envia o suporteJMS.
2. Criando um projeto usando o arquétipo
Although we can get Gatling bundles as a .zip we choose to use Gatling’s Maven Archetype. This allows us to integrate Gatling and run it into an IDE and make it easy to maintain the project in a version control system. Be careful as Gatling require a JDK8.
Na linha de comando, digite:
mvn archetype:generate
Então, quando solicitado:
Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains):
Tipo:
gatling
Você deve ver:
Choose archetype:
1: remote ->
io.gatling.highcharts:gatling-highcharts-maven-archetype (gatling-highcharts-maven-archetype)
Digite:
1
para selecionar o arquétipo e, em seguida, selecione a versão a ser usada (escolha a versão mais recente).
Selecione os nomesgroupId,artifactId,versionepackage para as classes antes de confirmar a criação do arquétipo.
Conclua importando o arquétipo para um IDE - por exemplo, paraScala IDE (com base no Eclipse) ouIntelliJ IDEA.
3. Defina um cenário
Antes de iniciar o gravador, precisamosdefine a scenario. Será uma representação do que realmente acontece quando os usuários navegam em um aplicativo da web.
Neste tutorial, usaremos o aplicativo fornecido pela equipe do Gatling para fins de amostra e hospedado na URLhttp://computer-database.gatling.io.
Nosso cenário simples pode ser:
-
Um usuário chega ao aplicativo.
-
O usuário procura por 'amstrad'.
-
O usuário abre um dos modelos relacionados.
-
O usuário volta para a página inicial.
-
O usuário itera pelas páginas.
4. Configurando o gravador
Em primeiro lugar, inicie a classeRecorder a partir do IDE. Uma vez iniciada, a GUI permite configurar como as solicitações e respostas serão registradas. Escolha as seguintes opções:
-
8000 como porta de escuta
-
pacoteorg.example.simulation
-
RecordedSimulation nome da classe
-
Follow Redirects? verificado
-
Automatic Referers? verificado
-
Black list first estratégia de filtro selecionada
-
.\.css,.\.js e.*\.ico nos filtros da lista negra
Agora temos que configurar nosso navegador para usar a porta definida (8000) escolhida durante a configuração. Esta é a porta à qual nosso navegador deve se conectar para queRecorder seja capaz de capturar nossa navegação.
Veja como fazer com o Firefox, abra as configurações avançadas do navegador, acesse o painel Rede e atualize as configurações de conexão:
5. Gravando o Cenário
Agora que tudo está configurado, podemos registrar o cenário que definimos acima. Os passos são os seguintes:
-
Inicie a gravação clicando no botão "Iniciar"
-
Vá para o site:http://computer-database.gatling.io
-
Pesquise modelos com 'amstrad' no nome
-
Selecione ‘Amstrad CPC 6128 '
-
Voltar à página inicial
-
Itera várias vezes através das páginas do modelo clicando no botãoNext
-
Clique no botão "Parar e salvar"
A Simulação será gerada no pacoteorg.example definido durante a configuração sob o nomeRecordedSimulation.scala
6. Execute uma simulação com Maven
Para executar nossa simulação gravada, precisamos atualizar nossopom.xml:
io.gatling
gatling-maven-plugin
2.2.4
test
execute
true
Isso permite executar a simulação na fase de teste. Para iniciar o teste, basta executar:
mvn test
Quando a simulação for concluída, o console exibirá o caminho para os relatórios HTML.
Nota: a configuração<disableCompiler>true</disableCompiler> é usada porque usaremos Scala com o maven. Essa sinalização garantirá que não terminemos compilando nossa simulação duas vezes. Mais detalhes estão disponíveis emGatling docs.
7. Revendo o Resultado
8. Conclusão
[.iframe-fluido] ##
Neste tutorial,we have explored carrega testando um servidor HTTP com Gatling. As ferramentas nos permitem registrar uma simulação baseada em um cenário definidowith the help de uma interface GUI. Após a gravação, podemos iniciar nosso teste. O relatório de teste será em forma de currículo HTML.
Para construir nosso exemplo, optamos por usar um arquétipo maven. Isso nos ajudato integrate Gatling and run it into an IDE and make it easy to maintain the project in a version control system.
O código de exemplo pode ser encontrado emGitHub project.