Teste de desempenho de aplicativos móveis

⚡ Resumo Inteligente

Os testes de desempenho de aplicativos móveis medem a rapidez com que um aplicativo inicia, quanta bateria e memória ele consome, a velocidade de resposta de suas APIs e seu comportamento em redes instáveis.

  • 🔘 Três categorias: O desempenho do dispositivo, do servidor ou da API e da rede, em conjunto, abrange todos os gargalos da mobilidade.
  • ☑️ Sinais do dispositivo: Tempo de inicialização, consumo de bateria, consumo de memória, variação de hardware e restauração em segundo plano são as principais verificações do dispositivo.
  • Sinais do servidor: Tamanho da carga útil, número de chamadas de API por ação e um plano de contingência documentado para períodos de inatividade do servidor.
  • 🧪 Sinais de rede: Jitter, perda de pacotes e variações de velocidade devem gerar uma mensagem clara, e não uma tela congelada.
  • 🛠️ Ferramentas: RobotiumMonkeyRunner e Automator aparecem aqui, embora os dois primeiros não recebam mais manutenção.
  • 📊 Prontidão: Uma lista de verificação que abrange RAM, tempo de resposta, concorrência e resistência a falhas determina se uma versão será lançada.

Testes de desempenho de aplicativos móveis em diferentes camadas de dispositivo, servidor e rede.

Para qualquer aplicativo móvel, o desempenho é crucial. Se o seu aplicativo não apresentar um bom desempenho, o usuário final irá desinstalá-lo e procurar outro que funcione melhor.

Seu aplicativo móvel precisa ser testado exaustivamente antes de ser liberado para o usuário final.

Estratégia de teste de aplicativos móveis

O desempenho do aplicativo em um telefone celular ou qualquer dispositivo inteligente é geralmente medido nas três categorias a seguir.

  • Desempenho do dispositivo
  • Desempenho de servidor/API
  • Desempenho de rede

O diagrama abaixo mapeia essas três camadas às suas respectivas verificações.

Diagrama de estratégia de teste de aplicativos móveis dividindo as verificações de desempenho em dispositivos, servidores e redes.

Desempenho do dispositivo

Quando o cliente experimenta um aplicativo lento, ele fica irritado.

Para avaliar o desempenho do dispositivo, verifique o seguinte:

  • Inicialização do aplicativo: Quanto tempo seu aplicativo leva para inicializar? É o primeiro parâmetro de desempenho julgado pelo usuário. Como regra geral, depois que o usuário toca no ícone do aplicativo, a primeira tela deve ser mostrada em 1 a 2 segundos.
  • Duração da bateria durante o uso de um aplicativo: Com o uso constante, alguns aplicativos móveis consomem muita bateria e aquecem o telefone. Isso geralmente acontece quando o aplicativo utiliza mais recursos do que o necessário, sobrecarregando o processador.
  • Consumo de memória: Ao Testes um aplicativo, o consumo de memória de um aplicativo deve ser verificado. Ao implementar determinadas funcionalidades no aplicativo, o consumo de memória também aumenta. Por exemplo, em Android aplicativos quando notificações push são implementadas, o consumo de memória aumenta.

    Em alguns casos, observou-se que o uso de memória por todo o sistema operacional é de apenas 14%, mas um novo aplicativo consome 11%. Portanto, esses fatores devem ser tratados antes de implantar o aplicativo no mundo real ou entregá-lo ao cliente.

  • Variação de hardware/software: Ao testar um aplicativo móvel, é obrigatório verificar os aplicativos em diferentes dispositivos. Pode ser que o aplicativo esteja funcionando perfeitamente em um dispositivo, mas não em outro. Como para diferentes fornecedores de Android dispositivos, podemos verificar o aplicativo em telefones Samsung, HTC e Lenovo. Da mesma forma, o aplicativo precisa ser testado com diferentes especificações de RAM e processador, como 1 GB ou 2 GB.
  • Utilização com outros aplicativos: Quando o aplicativo em teste estiver sendo executado em paralelo com outros aplicativos, não deverá haver interferência. A melhor maneira de verificar isso é trocando o aplicativo em teste por outros aplicativos.
  • Aplicativo em segundo plano: Quando um aplicativo em execução em segundo plano é recuperado, ele deve permanecer no mesmo estado em que se encontrava anteriormente. Se esse cenário não for tratado adequadamente, os dados serão perdidos. Casos relacionados ao ciclo de vida são abordados em [referência]. teste de interrupção.

Desempenho de servidor/API

Quando o aplicativo interage com o servidor via API, o tempo de resposta torna-se crucial para o desempenho. Para avaliar o desempenho do servidor, você deve verificar:

  • Dados enviados e recebidos pelo servidor: O aplicativo deve processar os dados enviados do servidor de forma eficiente. O carregamento dos dados não deve demorar muito. Em alguns aplicativos, os dados são enviados em um formato específico, portanto, antes de serem exibidos, precisam ser convertidos para um formato adequado. Nesse processo, os aplicativos podem ficar mais lentos e o tempo de resposta aumentar.
  • Chamadas de API geradas pelo aplicativo: O número de chamadas do aplicativo em teste para o servidor gerado pelo aplicativo deve ser menor. Em alguns casos, múltiplas chamadas de API são feitas para a mesma funcionalidade. Para melhor desempenho, isso deve ser tratado com menor número de chamadas.
  • Tempo de inatividade do servidor: Caso o servidor fique inativo ou inacessível por qualquer motivo, podemos salvar os dados no banco de dados nativo. Assim, sempre que o servidor estiver inativo, podemos exibir os dados armazenados no banco de dados nativo. Outra solução seria o uso de servidores de banco de dados de failover, ou seja, se um dos servidores estiver inativo ou em manutenção, o servidor de backup deve estar disponível para assumir o controle. O servidor de failover/backup deve manter replicação e sincronização contínuas com o servidor principal.

Desempenho de rede

O desempenho do aplicativo em diferentes redes e propriedades de rede precisa ser medido.

Para desempenho da rede, você verificará os seguintes itens.

  • Nervosismo: Quando há um atraso no recebimento de informações na rede, isso é denominado jitters. É um problema com redes sem conexão ou redes de comutação de pacotes. À medida que as informações são distribuídas em pacotes, os pacotes podem viajar por um caminho diferente do remetente ao destinatário. Quando os dados chegam ao local pretendido, eles ficam embaralhados em relação ao que foram originalmente enviados. No caso do Jitters, o aplicativo móvel deve ser capaz de lidar com isso.

    Você precisa exibir as notificações apropriadas ao usuário final, seja para reenviar a solicitação ou aguardar até que o sistema responda novamente.

  • Perda de Pacote: No caso de perda total de pacotes, o aplicativo deverá ser capaz de reenviar a solicitação de informações ou gerar os alertas adequadamente. Se os dados não estiverem completos, o usuário não será capaz de compreender as informações exibidas no aplicativo. Isso pode ser estressante para o usuário. Portanto, é melhor exibir uma mensagem adequada ou solicitar ao usuário que tente novamente.
  • Velocidade da rede: O aplicativo precisa ser testado em diversas redes com velocidades variáveis. Os testes devem ser realizados em redes 3G, 4G e 5G, incluindo Wi-Fi e redes móveis. Além disso, o comportamento do aplicativo deve ser monitorado, principalmente quando ambas as redes estiverem disponíveis e houver alternância entre elas.

    Por exemplo, um problema pode surgir em um aplicativo para os usuários ao alternar entre a rede de celular 4G e Wi-Fi, e vice-versa. Nesse caso, o aplicativo deixa de responder e pode ser necessário reiniciá-lo para que volte a funcionar.

Solução de problemas de desempenho de aplicativos móveis

Depois de descobrir as questões/problemas enquanto Teste de Desempenho. É hora de trace corrigir falhas.

Problema 1) Atraso ou resposta lenta do aplicativo móvel.

A causa desse atraso pode ser RAM, cache, etc.

Você precisa eliminar processos desnecessários ou limpar o cache. A solução do problema de conectividade pode resolver alguns dos problemas que estão criando atrasos

Problema 2) Aplicativo reiniciando, travando, travando ou sem resposta.

Pode ser corrigido por algumas das seguintes etapas

  • Otimizando os códigos do aplicativo
  • O software deve ser corrigido e atualizado.
  • Restaurações automáticas
  • Gerenciando RAM ou, em alguns casos, ROM ao usar placas externas
  • Wiping o particionamento de cache
  • Verificar se o aplicativo funciona com outros aplicativos e APIs de terceiros.
  • Mapaping o aplicativo móvel de acordo com o dispositivo

Ferramentas úteis de teste de aplicativos móveis

Ferramentas de teste de aplicativos móveis variam de acordo com os dispositivos ou sistema operacional móvel. Algumas ferramentas comuns de teste de desempenho de aplicativos móveis são

ANDROID

  • Robotium É como Selenium para aplicativos móveis. O testador pode gravar e reproduzir diversas etapas necessárias para realizar o teste.
  • Macaco Corredor MonkeyRunner pode executar testes em dispositivos reais conectados a um PC ou emuladores. A ferramenta possui uma API, que permite controlar um smartphone, um tablet ou um emulador de fora do Android código.

⚠️ Nota de versão: Ambos Android As entradas são legadas. Robotium não teve nenhum lançamento desde 2016, e Google O MonkeyRunner é considerado sem manutenção, o que leva as equipes a optarem pelo UI Automator e suas alternativas. uiautomatorviewer inspetor em vez disso.

APPLE

  • Automatizador (Mac) O Automator é um aplicativo desenvolvido pela Apple para macOSEle implementa a criação de fluxos de trabalho por meio de cliques (ou arrastar e soltar) para automatizar tarefas repetitivas em lotes, permitindo alterações mais rápidas. Isso economiza tempo e esforço em comparação com a intervenção humana para alterar manualmente cada arquivo separadamente.

Desafios

Os principais desafios enfrentados durante o teste de desempenho incluem

  • Organizando diferentes plataformas móveis e seus sistemas operacionais
  • Simulação de conectividades como 3G, 4G, 5G ou Wi-Fi, etc.
  • Restrições de dispositivos móveis, como consumo de bateria e recursos
  • Usabilidade do telefone móvel
  • Os diversos tamanhos de dispositivos móveis para executar o mesmo aplicativo

Configurar o ambiente de teste de desempenho de aplicativos móveis

Para configurar o ambiente de teste, você precisa-

  • Compreensão do aplicativo móvel que precisa ser testado
  • Identificação de diferentes sistemas operacionais nos quais o aplicativo precisa ser executado
  • Construindo a configuração de teste
  • Construa os emuladores ou simuladores
  • Protótipoping da configuração real
  • Selecionando a ferramenta apropriada para o teste

Lista de verificação de teste de desempenho de aplicativos móveis

Testar o desempenho dos aplicativos móveis é uma medida importante antes do lançamento. O teste de desempenho é feito para verificar

  • Quanto de RAM é necessário para utilizar este aplicativo?
  • Para verificar a velocidade e o tempo de resposta do APP em diferentes redes e circunstâncias.
  • Garanta uma experiência de usuário realista em diversas condições de rede
  • Garantir que os resultados necessários sejam alcançados no caso de múltiplas conectividades
  • Certifique-se de que o aplicativo não trave.
  • Garantir que os aplicativos móveis tenham um bom desempenho ao usar dados, Wi-Fi ou outra conectividade
  • Monitorando o tempo de atividade e os gargalos de uso da API móvel
  • Para garantir o número máximo de usuários simultâneos
  • Finalmente, para verificar o limite do aplicativo móvel

Perguntas Frequentes

Em dispositivos de gama média, o tempo de resposta geralmente é inferior a dois segundos, o que está de acordo com a regra mencionada anteriormente. É recomendável considerar o percentil 95 em vez da média, pois as reclamações mais frequentes são sobre dispositivos lentos.

Um ANR (Application Not Respondendo) é um evento que ocorre quando a aplicação não está respondendo. Android A thread principal é bloqueada. A taxa de sessões sem falhas é a porcentagem de sessões que terminam sem uma falha. Google O Google Play prioriza menos os aplicativos que excedem os limites estabelecidos para ambos os critérios.

Sessenta quadros por segundo é o mínimo necessário para rolagem e animação, e os monitores mais recentes visam noventa ou mais. A perda de quadros, chamada de "jank", é percebida como baixa qualidade, mesmo quando não há travamentos.

O aprendizado de máquina estabelece linhas de base para cada métrica por modelo de dispositivo, de modo que uma regressão seja sinalizada em relação a hardware semelhante, em vez de um número global. Ele também agrupa lentidão. tracsim, classificando qual gargalo afeta o maior número de sessões.

O Copilot elabora bem a estrutura repetitiva, como um esqueleto de script de carregamento ou um loop que captura amostras de memória. Os limites e a seleção de dispositivos refletem seu produto, portanto, revise cada asserção gerada antes de confiar nela.

Use ambos. Emuladores oferecem execuções de rede e API baratas e repetíveis dentro de um pipeline. Dispositivos reais são necessários para o consumo de bateria, limitação térmica e comportamento específico do fornecedor, que os emuladores não conseguem reproduzir fielmente.

JMeter é a opção de código aberto mais comum para lidar com solicitações simultâneas nos mesmos endpoints usados ​​pela aplicação. Ela mede a capacidade do servidor, algo que as ferramentas do lado do dispositivo nunca conseguem ver.

Um limite registrado para tempo de inicialização, memória ou tamanho do pacote que a compilação verifica automaticamente. Exceder esse limite causa falha na compilação, de modo que as regressões são detectadas no momento da mesclagem, em vez de após o lançamento.

Resuma esta postagem com: