mobile application performance testing guide
Guia para testes de desempenho de aplicativos móveis:
Nisso Gama explícita de tutoriais de teste de desempenho, nós exploramos o conceito de Teste de desempenho na nuvem em nosso último tutorial.
Aqui, você aprenderá o que é um aplicativo móvel, tipos de aplicativos móveis, abordagem de teste de desempenho de aplicativo móvel, como configurar um ambiente de teste de desempenho de aplicativo móvel, como solucionar problemas de desempenho com aplicativos móveis, os desafios envolvidos e as ferramentas disponíveis, etc. de forma detalhada.
=> Clique aqui para obter a série completa de tutoriais de teste de desempenho
O que você aprenderá:
- Visão geral
- O que é um aplicativo móvel?
- A arquitetura de aplicativos móveis
- Abordagem de teste de desempenho de aplicativos móveis
- Estratégia de desempenho de aplicativos móveis
- Ambiente de teste de desempenho de aplicativos móveis
- Desafios de teste de desempenho de aplicativos móveis
- Solucionando problemas de desempenho com aplicativos móveis
- Ferramentas de teste de desempenho de aplicativos móveis
- Conclusão
- Leitura recomendada
Visão geral
No mundo atual da tecnologia, os aplicativos móveis são amplamente usados do que os aplicativos normais de desktop. O número de usuários que usam smartphones para acessar a maioria de seus aplicativos em vez de um desktop ou laptop aumentou drasticamente.
Além disso, o usuário final espera uma boa resposta do aplicativo quando o estiver usando. Conseqüentemente, o desenvolvedor que cria os aplicativos móveis precisa manter isso em mente ao desenvolver o aplicativo.
Agora, o Teste de Desempenho é fundamental, seja um aplicativo da web comum ou um aplicativo em um dispositivo móvel. Se um aplicativo entrar no ar sem passar por um teste de desempenho e se o usuário final enfrentar problemas de desempenho, como uma resposta lenta, etc., ele tentará encontrar outro aplicativo melhor que terá um desempenho melhor.
O teste de desempenho é caro e também leva mais tempo. Portanto, muitos clientes evitam fazer testes de desempenho, mas isso ajudará muito com os problemas de produção. Portanto, qualquer aplicativo deve ser testado exaustivamente antes de ser disponibilizado ao usuário final.
O que é um aplicativo móvel?
Os aplicativos móveis são um conjunto de funções predefinidas que são projetadas para funcionar em dispositivos móveis, como smartphones, tablets e outros telefones convencionais. Nem todos os aplicativos móveis são iguais, existem três tipos diferentes de aplicativos móveis e são baseados na tecnologia que foi usada para desenvolver esses aplicativos.
3 tipos de aplicativo móvel incluem:
- Aplicativos móveis nativos
- Aplicativos móveis baseados na web
- Aplicações Híbridas
Nº 1) Aplicativos móveis nativos:
Aplicativos móveis nativos são aqueles aplicativos executados em seus próprios smartphones ou tablets, eles são executados no sistema operacional dos dispositivos móveis. Eles oferecem alto desempenho e também são muito confiáveis. Este tipo de aplicativo também acessa outros aplicativos em seu aparelho smartphone, como fotos, catálogo de endereços etc.
como consertar o gateway padrão não está disponível
Os aplicativos nativos estão disponíveis na loja de aplicativos móveis. Para o Android, temos a Play Store e para o iPhone, o iTunes. Portanto, esses aplicativos são baixados de suas respectivas lojas e instalados em dispositivos móveis.
Exemplos de aplicativos nativos são calculadora, calendário, aplicativo do Facebook etc.
# 2) Aplicativos móveis baseados na web:
Os aplicativos móveis baseados na web são executados diretamente do navegador, mas não são instalados no dispositivo móvel.
Exemplos de aplicativos móveis baseados na web são jogos online, sites de redes sociais etc.
# 3) Aplicações híbridas:
Os aplicativos híbridos são semelhantes aos aplicativos nativos e são executados dentro do contêiner nativo, eles são uma mistura de ambos os aplicativos e usam o navegador do dispositivo e não o navegador real para renderizar as páginas da web do aplicativo.
Exemplos de aplicativos híbridos são Instagram, Yelp etc.
A arquitetura de aplicativos móveis
Na figura acima , smartphones e tablets vêm sob o lado do cliente. Eles incluem os dispositivos que costumamos usar como Smart Phone, Tablets, sua rede como 3G, 4G, etc. Um sistema operacional dos dispositivos como Android, iOS, Windows, etc.
Rede Celular Móvel , Wireless, Internet e Firewall vêm em Rede. Para a rede celular, vemos a força do sinal, congestionamento da rede, interrupções, etc. Para uma rede sem fio, vemos a força do sinal, velocidade, etc.
Web, aplicativo e banco de dados vêm no lado do servidor, onde a maior parte do trabalho é realizada.
Abordagem de teste de desempenho de aplicativos móveis
O teste de desempenho de aplicativos móveis é diferente do teste de desempenho de aplicativos da web. Os laptops ou desktops usados para acessar os aplicativos da web não sofrem muito com as más condições da rede, incluindo perda de pacotes ou latência.
Considerando que nas condições de rede de aplicativos móveis, perda de pacotes, latência, o tipo de dispositivo que estamos usando como um smartphone ou dispositivo inteligente e largura de banda são todos importantes e não devemos ignorar todos esses fatores ao considerar o teste de desempenho de aplicativos móveis.
Antes de desenvolver sua estratégia de desempenho, você deve entender que tipo de aplicativo está executando em seu dispositivo móvel.
Existem três tipos de aplicativos:
- Aplicativos baseados em navegador
- Aplicativos nativos
- Aplicativos híbridos
# 1) Aplicativos baseados em navegador:
Esses tipos de aplicativos podem ser acessados diretamente por meio de um navegador móvel e não precisam de nenhum software adicional para ser baixado ou instalado no dispositivo.
Eles são leves e são construídos na mesma pilha em todos os tipos de dispositivos, como Android, iPhone etc. Além disso, o web design responsivo O movimento torna ainda mais fácil criar um aplicativo baseado em vários navegadores, já que você pode renderizar o aplicativo em diferentes tamanhos de tela.
Esses tipos de aplicativos têm desvantagens, como não podem ser acessados sem uma conexão com a Internet, não têm todos os recursos integrados ao dispositivo e também tendem a parecer mais lentos para os usuários.
Então. durante o teste de desempenho desse tipo de aplicativo, é importante replicar a carga do usuário a partir de um navegador móvel e também é importante testar a renderização da página da web em dispositivos de destino.
# 2) Aplicativos nativos:
Esses tipos de aplicativos são construídos em uma plataforma específica usando o software que é instalado diretamente no dispositivo.
Os aplicativos nativos são mais rápidos e responsivos, pois são desenvolvidos localmente no dispositivo. Como o código em cada dispositivo é diferente, ou seja, para iPhone, Android, etc., durante o teste de desempenho, precisamos considerar o teste em cada plataforma.
# 3) Aplicações híbridas:
Os aplicativos híbridos são a combinação de aplicativos do navegador e nativos. Eles são compostos por um shell nativo que fornece uma experiência de integração rápida.
Enquanto o teste de desempenho visa a carga gerada pelos usuários de tal aplicativo híbrido no lado do servidor, bem como mede o desempenho do aplicativo no dispositivo da perspectiva do usuário final.
Então, como testamos esses aplicativos móveis?
Para testar esses aplicativos móveis, precisamos construir um ambiente com emuladores e dispositivos reais. Emuladores móveis são softwares que precisam ser instalados em nossos laptops ou desktops que irão imitar um aplicativo ou plataforma móvel.
Portanto, usando esses emuladores, podemos gerar uma quantidade significativa de carga para nosso teste de carga.
O outro método é usar dispositivos reais, aqui temos o dispositivo fisicamente e podemos ver como está o desempenho da aplicação em cada dispositivo. Usando dispositivos reais, não temos a opção de gerar a carga que é nosso objetivo principal, mas para fazer isso precisamos ter vários dispositivos reais.
Porém, se você deseja testar o comportamento da aplicação em um dispositivo específico, você pode usar o dispositivo real, mas para gerar a carga precisamos usar emuladores.
O próximo ponto a ser observado ao testar um aplicativo móvel é saber o local de acesso do usuário final. É muito importante saber se os usuários estão acessando da mesma cidade, mesmo país ou se estão espalhados pelo mundo etc. Se planejamos nosso teste ou ambiente sem considerar isso, então nossos testes estariam errados.
O desempenho do aplicativo em um aplicativo móvel, como um telefone inteligente ou dispositivo inteligente, é geralmente medido em termos de desempenho do dispositivo, desempenho do servidor / API e desempenho da rede.
Precisamos verificar o seguinte em cada desempenho.
Desempenho do dispositivo:
- Tempo de inicialização do aplicativo
- Tempo da bateria ao usar o aplicativo
- Consumo de memória
- Variação de hardware e software
- Uso com outros aplicativos
- Um aplicativo em execução em segundo plano
Desempenho do servidor / API:
serviços da web testando perguntas e respostas para entrevistas
- Dados de e para o servidor.
- Chamadas API geradas
- Tempo de inatividade do servidor
Desempenho da rede:
- Perda de Pacote
- Velocidade da rede
Portanto, ao escrever a abordagem para o teste de desempenho do aplicativo móvel, você precisa considerar todos os pontos acima e corresponder ao escopo e aos requisitos do seu projeto.
Estratégia de desempenho de aplicativos móveis
A abordagem de teste de desempenho difere para cada tipo de aplicativo móvel. A abordagem varia de um aplicativo para outro, pois cada aplicativo é desenvolvido com componentes diferentes e o mecanismo de processamento é diferente para cada um.
Os aplicativos móveis baseados em navegador agem de forma diferente do aplicativo de navegador da web normal. Este comportamento se deve à largura de banda do plano de dados que o usuário final está utilizando e também depende da configuração dos dispositivos móveis.
O custo de desenvolver este tipo de aplicativo baseado em navegador será menor, pois o trabalho de desenvolvimento seria para ver sua compatibilidade com os navegadores que estão disponíveis em dispositivos móveis.
Portanto, para testes de desempenho, como aplicativos baseados em navegador móvel, precisamos replicar a carga do usuário no navegador. Podemos fazer isso usando emuladores ou quaisquer outros componentes adicionais. Além da carga do usuário nos navegadores móveis, também precisamos testar a renderização da página da web nos dispositivos.
O custo de desenvolvimento de aplicativos móveis nativos é maior. Os aplicativos são instalados diretamente no dispositivo, o que torna a experiência do usuário melhor, mas o aplicativo depende da plataforma.
Portanto, se quisermos testar o desempenho neste tipo de aplicativos, precisamos testar todas as plataformas dos dispositivos móveis como Android, iOS, Windows etc e também em todos os tipos de dispositivos como smartphones, tablets etc.
Os aplicativos móveis híbridos são uma combinação de aplicativos móveis baseados em navegador e aplicativos móveis nativos, portanto, aqui precisamos testar a carga do usuário no servidor e também fazer um teste completo de desempenho em todos os dispositivos móveis e plataformas.
Para qualquer aplicativo no dispositivo móvel, existem dois fatores principais que afetam o desempenho do usuário final:
- Solicitar no dispositivo móvel
- A renderização da página no dispositivo móvel
Nº 1) Solicitação no dispositivo móvel:
Com isso, a solicitação é entregue ao servidor e a resposta do servidor é gerada com base na solicitação recebida. Assim que a resposta é gerada no servidor, essa resposta é enviada de volta para o dispositivo móvel que enviou a solicitação inicial.
Aqui, os parâmetros que precisam ser examinados são a carga do servidor, os diferentes tipos de rede como 3G, 4G etc., uma carga em cada rede e quaisquer outros componentes.
Podemos testá-los usando emuladores, ou seja, podemos gerar os scripts e usar emuladores para simular a carga do usuário no servidor.
# 2) Renderização de página no dispositivo móvel:
A renderização de página no dispositivo móvel nada mais é do que a resposta recebida do servidor para a solicitação que enviamos de nosso aplicativo móvel.
Aqui, os parâmetros que precisam ser examinados são o sistema operacional do dispositivo, a definição de configuração do dispositivo móvel, etc. Podemos testá-los efetuando login no dispositivo móvel e monitorando-os.
quais são bons sites para assistir anime
Agora, vamos dar uma olhada detalhada em cada etapa mencionada na figura acima:
a) Crie cenários de usuário em tempo real:
Semelhante aos aplicativos normais de navegador da web, precisamos identificar os cenários ou as condições que são esperadas no servidor em tempo real. Haverá muitos cenários a serem testados.
Suponhamos uma condição onde existe uma aplicação web que está disponível tanto em desktops quanto em dispositivos móveis, também é nativa em dispositivos Android e ios. Aqui, precisamos desenvolver um script de teste com base no tipo de acesso do aplicativo. Portanto, precisamos testá-lo separadamente em cada dispositivo.
Além disso, precisamos considerar o padrão de carga de trabalho para esse cenário, ou seja, precisamos entender como a carga é distribuída para cada dispositivo. Por exemplo, 500 usuários acessarão o aplicativo pela web, cerca de 100 utilizarão um aplicativo nativo em seu dispositivo ios e outros 200 acessarão o aplicativo de seu dispositivo nativo no aplicativo Android.
Devemos também considerar as localizações geográficas da carga no servidor. Por exemplo, 30% dos usuários acessam dos EUA, 50% da Índia e os restantes 20% de outras localidades. É obrigatório imitar a localização de um usuário diferente, pois isso terá um impacto muito grande nos servidores.
Testar 100% em um único local produzirá resultados errados. Portanto, é aconselhável testar a carga nos servidores, fornecendo um local diferente. A solução em nuvem pode ser usada para simular diferentes localizações geográficas.
b) Criar condições de rede em tempo real:
Aqui, precisamos criar diferentes condições de rede e também a qualidade da rede como rede 3G, rede 2G, Wi-Fi com a melhor velocidade, velocidade média e baixa velocidade. Precisamos fazer emulação de rede para criar condições de rede.
Devemos também testar o desempenho fornecendo condições de largura de banda de 50%, podemos conseguir isso fazendo emulação de rede. Podemos usar qualquer ferramenta como túnel de vento, Shunra, etc.
Além disso, teste a rede em relação a diferentes geografias, como a rede 3G em Bangalore. 4G em Hyderabad, etc. Aqui também precisamos fazer emulação de rede usando as ferramentas apropriadas.
c) Criar condições do dispositivo em tempo real:
Isso nada mais é do que o tipo de aplicativo no dispositivo móvel, como se é um aplicativo Thin client ou Thick client, qual é o sistema operacional no dispositivo móvel, o tipo de dispositivo como iPhone, Nokia etc., e qualquer outro aplicativo que será executado em paralelo durante o uso desse aplicativo específico, etc., também deve ser testado como parte dos cenários.
d) Teste o desempenho de cada componente:
Depois de criar todos os cenários acima, precisamos testar o desempenho do aplicativo, incluindo todo o software e hardware. Agora reúna todas as métricas necessárias durante o teste de carga.
Algumas das métricas do lado do servidor que precisam ser coletadas são uso da CPU, carga da CPU, tempo de processamento, total de bytes disponíveis, pacotes enviados, pacotes recebidos, etc.
Algumas das métricas de rede que precisam ser coletadas são Pacotes e bytes enviados pela rede, pacotes e bytes recebidos pela rede, Pacotes perdidos e atraso médio total.
As métricas de dispositivo a serem coletadas são CPU, utilização de memória, tempo de resposta, etc. e também medem todos os tempos de resposta da transação e rendimento.
Ambiente de teste de desempenho de aplicativos móveis
Antes de configurarmos o ambiente de teste de desempenho para um aplicativo móvel, precisamos entender quais são os aplicativos móveis que serão testados, quais sistemas operacionais ou dispositivos serão testados e também as diferentes localizações geográficas.
Portanto, primeiro, precisamos criar um ambiente que consiste em emuladores e dispositivos reais. Então, o que é um emulador? Um emulador é um software que pode ser instalado em nossos laptops ou desktops, e estes funcionam como dispositivos móveis. Podemos gerar uma carga enorme usando esses emuladores, portanto, eles são melhores para testar a carga de qualquer aplicativo móvel.
Por outro lado, Dispositivos Reais são dispositivos móveis físicos. Portanto, precisamos verificar o comportamento do aplicativo em cada dispositivo e em cada rede. Mas não poderemos testar a largura de banda, perda de pacotes etc., quando vários dispositivos estiverem conectados à mesma rede e acessando o mesmo aplicativo.
A próxima coisa a se considerar é a localização geográfica dos dispositivos de aplicação, este é um aspecto obrigatório e muito importante a ser considerado, caso contrário, nossos resultados de teste não serão como o que acontece no cenário do mundo real.
Então, depois de analisar tudo acima, selecione a respectiva ferramenta de teste de carga para conduzir os testes de desempenho.
Desafios de teste de desempenho de aplicativos móveis
Os desafios que enfrentamos durante o teste de desempenho de aplicativos móveis incluem:
- Quando precisamos testar nosso aplicativo em diferentes dispositivos móveis, precisamos organizar todos os dispositivos como IOS, Android, Windows etc.
- A simulação de rede é outro desafio que enfrentaremos, ou seja, precisamos simular redes como 3G, 2G, 4G e wi-fi.
- A memória disponível nos dispositivos móveis para lidar com as execuções de teste.
- A duração da bateria dos dispositivos móveis.
Solucionando problemas de desempenho com aplicativos móveis
Após a conclusão da execução do teste, é hora de coletar o gargalo de desempenho identificado durante a execução do teste. Assim que os problemas forem consolidados, precisamos identificar a causa raiz do problema e corrigi-los.
Vamos dar uma olhada em alguns problemas de desempenho com aplicativos móveis:
- Atraso na resposta do aplicativo móvel: Esse atraso geralmente é causado pela memória ou pelo cache. Nesses casos, é aconselhável limpar o cache e executar o teste novamente.
- O aplicativo algumas vezes é reiniciado, travado ou travado: Nesses casos, verifique o software se alguma atualização precisa ser feita, verifique o código do aplicativo para qualquer otimização, lidar com o cache são algumas áreas a serem examinadas.
Ferramentas de teste de desempenho de aplicativos móveis
As ferramentas podem variar com base no tipo de dispositivo e plataforma.
Algumas das ferramentas mais comumente usadas são fornecidas abaixo.
Para dispositivos Android:
robôs: Usando esta ferramenta, podemos registrar e repetir as várias etapas para a realização do teste. Clique aqui para um tutorial do Robotium .
Monkey Runner : Usando esta ferramenta, podemos executar nossos testes nos dispositivos conectando-os a um desktop. Usando a Interface da ferramenta podemos acessar o smartphone.
Para dispositivos iOS:
Automator: Usando esta ferramenta, podemos arrastar e soltar os fluxos de trabalho e automatizá-los.
Conclusão
Tenho certeza de que você teria aprendido mais sobre aplicativos móveis e como prosseguir e realizar o teste de carga nos aplicativos móveis de uma maneira perfeita por meio deste tutorial informativo.
Nosso próximo tutorial apresentará um resumo de como realizar testes de desempenho manuais em termos simples.
=> Visite aqui para obter a série completa de tutoriais de teste de desempenho
PREV Tutorial | PRÓXIMO Tutorial
Leitura recomendada
- Teste de desempenho de aplicativos móveis usando BlazeMeter
- O guia do iniciante para testes de desempenho de aplicativos da Web usando WAPT Pro
- Guia de teste de segurança de aplicativos da Web
- Teste de desempenho vs teste de carga vs teste de estresse (diferença)
- How to Get a Mobile Testing Job Fast - Mobile Testing Career Guide (Parte 1)
- Teste de carga, estresse e desempenho de aplicativos da Web usando WAPT
- Como realizar o teste de desempenho manual?
- Ferramentas e provedores de serviços de teste de penetração de aplicativos móveis