O teste de carga HTTP tem sido uma prática para fazer testes de desempenho para sites, aplicativos e serviços web para planejar, preparar e tomar decisões informadas sobre a infraestrutura de aplicativos. Mas com pilhas de tecnologia em constante evolução e conteúdo interativo, a maneira tradicional de fazer testes de carga HTTP é suficiente para cobrir todas as suas bases? A resposta curta é não. Para layout da resposta de uma maneira elaborada para entender a abordagem moderna para testes de carga HTTP e como fazê-lo, vamos começar com o básico.
Páginas estáticas vs. Páginas Dinâmicas
Páginas da Web estáticas são a forma mais simples de recursos do site que começou tudo. Eles são escritos em HTML básico, CSS e JavaScript. Nada de alterações significativas nestas páginas até que você faça alterações manuais, e nenhuma computação ou processamento é necessária para essas páginas a partir do final do servidor. Essas páginas são renderizadas pelo navegador com solicitações básicas e mecanismos de resposta. O navegador envia a solicitação, e o servidor responde sem realmente fazer nada adicional, além de enviar de volta o código HTML pré-construído. Exemplos incluem páginas de blog, páginas de documentação, sites pessoais, etc.
Por outro lado, páginas dinâmicas fornecem recursos interativos e elementos para cada solicitação subsequente do usuário. Algumas das tecnologias mais comuns hoje em dia para a criação de páginas dinâmicas são AJAX, AngularJS, VueJS, ReactJS,etc. O conteúdo dinâmico da página é gerado com base em diferentes fatores e casos de uso, como tempo, região, perfil do usuário e assim por diante. Exemplos disso incluem mídias sociais, e-commerce, sites de jogos, sites de streaming e outros aplicativos modernos.
Evolução do Aplicativo Moderno com Páginas Dinâmicas
Continuando nossa discussão a partir de páginas estáticas e páginas dinâmicas, vamos entender as capacidades e o comportamento dos aplicativos modernos.
Mudanças de tempo de execução
As páginas estáticas não são alteradas no tempo de execução, enquanto os aplicativos modernos alteram o conteúdo com base nos vários fatores de criação de perfil.
interação
Embora as páginas estáticas tenham pouca ou nenhuma interação baseada em cliques, os aplicativos modernos têm uma variedade de funcionalidades interativas, desde jogos a reprodutor de vídeo até e-commerce.
modular
Páginas estáticas são as mesmas todas as vezes, em todos os lugares, e para todos. Páginas dinâmicas podem adicionar vários serviços e recursos com base na interação do usuário e transações de usuário.
Serviços de terceiros
Aplicações modernas fazem uso pesado de serviços de terceiros que, por sua vez, podem ser alterados e acessados dinamicamente.
arquitetura
As aplicações estáticas empregam a forma mais simples de solicitações GET/POST HTTP. Em contraste, as solicitações e respostas modernas de aplicativos têm vários serviços construídos em cima um do outro, como autenticação, VPN, colaboração em tempo real, etc.
O aumento dos aplicativos de página única
Os aplicativos de uma página única (SPAs) são agora a maneira mais popular e amplamente utilizada de desenvolver aplicativos para minimizar ou mesmo eliminar a navegação do usuário de uma página para outra. Todas as renderizações e transações de conteúdo acontecem na mesma página, calculando fortemente as coisas no próprio navegador, em vez de o servidor fornecer o código HTML pronto para uso.
Os SPAs transformaram a forma como os sites costumavam funcionar fazendo o levantamento pesado no navegador em uma única página. E com isso, vem o desafio para testes de carga HTTP, já que as ferramentas tradicionais de teste de carga HTTP não são capazes de renderizar e executar computação baseada em navegador. Isso exige novos métodos de teste de carga HTTP para aplicações dinâmicas, especialmente SPAs.
Desafios de teste de carga HTTP: SpAs de teste de carga
Com o uso extensivo de páginas dinâmicas, os SPAs apresentam um novo desafio para testes de carga HTTP para criar o ambiente de carga mais realista. A seguir estão os pontos cruciais que fazem do teste de carga HTTP tradicional uma coisa do passado.
Teste de carga baseado em navegador real
Como discutimos, os SPAs dependem da computação pesada de HTML pelo navegador usando JavaScript em vez do servidor. Isso mudou drasticamente a interação entre clientes e servidores. Para gerar de forma eficaz e correta a carga GET/POST para o seu aplicativo, você precisa usar ferramentas que simulam usuários de teste de navegadores reais.
Teste de carga baseado em localização
Provavelmente, seus SPAs levariam em conta dados baseados em localização para personalizar o conteúdo. Por exemplo, moeda ou comércio local, juntamente com o desempenho variado das transações. Testes reais de carga baseados em navegador de vários locais gerariam uma carga realista para o seu aplicativo para otimizar o desempenho de geolocalização.
Teste de carga baseado em transações
Mapear as ações dos usuários com scripts para ações individuais e ações baseadas em parâmetros é uma parte vital dos SPAs de teste de carga. Por exemplo, é um site de e-commerce e você quer gerar uma carga realista para ele, você gostaria de carregar páginas com filtros e combinações de classificação para ver como isso afetará o desempenho do seu site para o alto tráfego.
Teste de carga RIA
Seus SPAs vão evoluir de acordo com as necessidades do seu negócio. Um dia você teria conteúdo em vídeo, e outro dia você teria um concurso de votação. Se for um aplicativo de jogos, então ele terá todos os tipos de interações e renderização do usuário. Sua solução de teste de carga deve ser capaz de testar praticamente qualquer coisa que possa ser renderizada e executada no navegador.
Por que o teste de carga HTTP não é suficiente: teste de carga aplicações modernas e dinâmicas
Os testes tradicionais de carga HTTP não são capazes de gerar carga realista com base nesses fatores e requisitos. Esses desafios requerem uma abordagem nova e abrangente para combinar tudo de forma holística para produzir a carga mais realista. Os SPAs geralmente incluem novas formas inovadoras de fazer as coisas e resolver problemas para usuários com pilha de tecnologia em várias camadas e tecnologias RIA. Assim, tornando-o tradicional teste de carga HTTP desafiador para servir ao propósito de teste. Para resolver esse problema, você precisa de uma plataforma que lhe permita registrar transações e interações reais em navegadores reais e em vários locais. A facilidade de gravar essas transações e roteirizar também desempenha um papel vital na seleção de tal plataforma; outra coisa, você perderia seu tempo de scripting em vez de testes reais de carga HTTP.
LoadView vem com o EveryStep Web Recorder para criar cenários de teste de carga com um simples ponto e clique em script que faz você ir em pouco tempo. Com o LoadView, você também pode testar usuários de navegadores reais de vários locais para verificar se seu aplicativo está executando bem e servindo conteúdo preciso sob estresse sem atrasos ou gargalos. A combinação do EveryStep Web Recorder com a plataforma LoadView cria uma plataforma de teste de carga tão abrangente que você pode descobrir proativamente tudo o necessário para que seus SPAs executem de forma consistente e correta em todos os casos de uso de teste de carga.
Experimente a plataforma LoadView hoje e receba até 5 testes de carga gratuitos para começar!