mobile application performance testing guide
Guide des tests de performances des applications mobiles:
Dans ce Gamme explicite de tutoriels sur les tests de performances, nous avons exploré le concept de Test des performances du cloud dans notre dernier tutoriel.
Ici, vous apprendrez ce qu'est une application mobile, les types d'applications mobiles, l'approche des applications mobiles de test des performances, comment configurer un environnement de test des performances des applications mobiles, comment résoudre les problèmes de performances avec les applications mobiles, les défis impliqués et les outils disponibles, etc. de manière détaillée.
=> Cliquez ici pour une série complète de didacticiels sur les tests de performance
Ce que vous apprendrez:
- Aperçu
- Qu'est-ce qu'une application mobile?
- L'architecture des applications mobiles
- Approche de test des performances des applications mobiles
- Stratégie de performance des applications mobiles
- Environnement de test des performances des applications mobiles
- Défis des tests de performance des applications mobiles
- Dépannage des problèmes de performances avec les applications mobiles
- Outils de test des performances des applications mobiles
- Conclusion
- lecture recommandée
Aperçu
Dans le monde technologique d’aujourd’hui, les applications mobiles sont largement utilisées que les applications de bureau classiques. Le nombre d'utilisateurs qui utilisent des smartphones pour accéder à la plupart de leurs applications plutôt que d'utiliser un ordinateur de bureau ou un ordinateur portable est considérablement augmenté.
En outre, l'utilisateur final attendra une bonne réponse de l'application lorsqu'il l'utilisera. Par conséquent, le développeur qui crée les applications mobiles doit garder cela à l'esprit lors du développement de l'application.
Désormais, les tests de performances sont essentiels, qu'il s'agisse d'une application Web standard ou d'une application sur un appareil mobile. Si une application est mise en ligne sans avoir été testée en termes de performances et si l'utilisateur final est confronté à des problèmes de performances tels qu'une réponse lente, etc., il essaiera de trouver une autre meilleure application qui fonctionnera mieux.
Les tests de performance sont coûteux et prennent également plus de temps. Par conséquent, de nombreux clients évitent de faire des tests de performance, mais cela aidera beaucoup à résoudre les problèmes de production. Ainsi, toute application doit être testée minutieusement avant d'être mise à la disposition de l'utilisateur final.
Qu'est-ce qu'une application mobile?
Les applications mobiles sont un ensemble de fonctions prédéfinies conçues pour fonctionner sur les appareils mobiles tels que les téléphones intelligents, les tablettes et autres téléphones multifonctions. Toutes les applications mobiles ne sont pas identiques, il existe trois types différents d'applications mobiles et celles-ci sont basées sur la technologie qui a été utilisée pour développer ces applications.
3 types d'applications mobiles comprennent:
- Applications mobiles natives
- Applications mobiles basées sur le Web
- Applications hybrides

# 1) Applications mobiles natives:
Les applications mobiles natives sont les applications qui s'exécutent sur vos propres smartphones ou tablettes, elles s'exécutent sur le système d'exploitation des appareils mobiles. Ils offrent des performances élevées et sont également très fiables. Ces types d'applications accèdent également aux autres applications de votre smartphone telles que les photos, le carnet d'adresses, etc.
Les applications natives sont disponibles dans la boutique d'applications mobiles. Pour Android, nous avons un Play Store et pour iPhone, nous avons iTunes. Ainsi, ces applications sont téléchargées à partir de leurs magasins respectifs et installées sur des appareils mobiles.
Exemples des applications natives sont une calculatrice, un calendrier, une application Facebook, etc.
# 2) Applications mobiles basées sur le Web:
Les applications mobiles basées sur le Web s'exécutent directement à partir du navigateur, elles ne sont pas installées sur l'appareil mobile.
Exemples des applications mobiles basées sur le Web sont des jeux en ligne, des sites de réseautage social, etc.
# 3) Applications hybrides:
Les applications hybrides sont similaires aux applications natives et elles s'exécutent à l'intérieur du conteneur natif, elles sont un mélange des deux applications et elles utilisent le navigateur de l'appareil et non le navigateur réel pour afficher les pages Web de l'application.
Exemples des applications hybrides sont Instagram, Yelp etc.
L'architecture des applications mobiles
Dans la figure ci-dessus , les smartphones et les tablettes relèvent du côté client. Ils incluent les appareils que nous utilisons habituellement comme le téléphone intelligent, les tablettes, leur réseau comme la 3G, la 4G, etc. Un système d'exploitation des appareils comme Android, ios, Windows, etc.
Réseau cellulaire mobile , Sans fil, Internet et Pare-feu relèvent du Réseau. Pour le réseau cellulaire, nous voyons la force du signal, la congestion du réseau, les abandons, etc. Pour un réseau sans fil, nous voyons la force du signal, la vitesse, etc.
Web, App et DB viennent du côté serveur où la majorité du travail est effectuée.
Approche de test des performances des applications mobiles
Les tests de performances des applications mobiles sont différents des tests de performances des applications Web. Les ordinateurs portables ou de bureau utilisés pour accéder aux applications Web ne souffrent pas beaucoup des mauvaises conditions du réseau, notamment la perte de paquets ou la latence.
Alors que dans les conditions du réseau des applications mobiles, la perte de paquets, la latence, le type d'appareil que nous utilisons comme un smartphone ou un appareil intelligent et la bande passante sont tous importants et nous ne devons pas ignorer tous ces facteurs tout en considérant les tests de performances des applications mobiles.
Avant de développer votre stratégie de performance, vous devez comprendre quel type d'application vous exécutez sur votre appareil mobile.
Il existe trois types d'applications:
- Applications basées sur le navigateur
- Applications natives
- Applications hybrides
# 1) Applications basées sur le navigateur:
Ces types d'applications sont directement accessibles via un navigateur mobile et ne nécessitent aucun logiciel supplémentaire pour être téléchargé ou installé sur l'appareil.
Ils sont légers et sont construits sur la même pile dans tous les types d'appareils tels qu'Android, iPhone, etc. site Web adaptatif le mouvement facilite encore plus la création d'une application basée sur plusieurs navigateurs, car vous pouvez rendre l'application à différentes tailles d'écran.
Ces types d’applications présentent des inconvénients, tels qu’ils ne sont pas accessibles sans connexion Internet, n’ont pas toutes les fonctionnalités intégrées à l’appareil et ont également tendance à apparaître plus lentes pour les utilisateurs.
Alors. lors du test des performances de ce type d'applications, il est important de répliquer la charge utilisateur à partir d'un navigateur mobile et il est également important de tester le rendu de la page Web sur les appareils cibles.
# 2) Applications natives:
Ces types d'applications sont construits sur une plate-forme particulière à l'aide du logiciel qui est installé directement sur l'appareil.
Les applications natives sont plus rapides et plus réactives car elles sont construites localement sur l'appareil. Comme le code sur chaque appareil est différent, par exemple pour iPhone, Android, etc., lors des tests de performances, nous devons envisager de tester sur chaque plate-forme.
# 3) Applications hybrides:
Les applications hybrides sont la combinaison d'applications navigateur et natives. Ils sont composés d'un shell natif qui offre une expérience intégrée rapide.
Alors que les tests de performances ciblent la charge générée par les utilisateurs d'une telle application hybride côté serveur, ils évaluent également les performances de l'application sur l'appareil du point de vue de l'utilisateur final.
Alors, comment tester ces applications mobiles?
Afin de tester de telles applications mobiles, nous devons créer un environnement avec des émulateurs et des appareils réels. Les émulateurs mobiles sont des logiciels qui doivent être installés sur nos ordinateurs portables ou de bureau pour imiter une application mobile ou une plate-forme mobile.
Par conséquent, en utilisant ces émulateurs, nous pouvons générer une quantité importante de charge pour nos tests de charge.
L'autre méthode utilise de vrais appareils, ici nous avons l'appareil physiquement et nous pouvons voir comment l'application fonctionne sur chaque appareil. En utilisant de vrais appareils, nous n'avons pas la possibilité de générer la charge qui est notre objectif principal, mais pour ce faire, nous devons avoir plusieurs appareils réels.
Cependant, si vous souhaitez tester le comportement de l'application sur un appareil spécifique, vous pouvez utiliser l'appareil réel, mais pour générer une charge, nous devons utiliser des émulateurs.
exemples de user stories avec critères d'acceptation
Le point suivant à noter lors du test d'une application mobile est de connaître l'emplacement d'accès de l'utilisateur final. Il est très important de savoir si les utilisateurs accèdent à partir de la même ville, du même pays ou s'ils sont répartis à travers le monde, etc. Si nous planifions notre test ou notre environnement sans en tenir compte, nos tests seraient erronés.
Les performances des applications sur une application mobile comme un téléphone intelligent ou un appareil intelligent sont généralement mesurées en termes de performances de l'appareil, des performances du serveur / API et des performances du réseau.

Nous devons vérifier les éléments suivants sous chaque performance.
Performances de l'appareil:
- Heure de démarrage de l'application
- Autonomie de la batterie lors de l'utilisation de l'application
- Consommation de mémoire
- Variation matérielle et logicielle
- Utilisation avec d'autres applications
- Une application s'exécutant en arrière-plan
Performances du serveur / API:
- Données vers et depuis le serveur.
- Appels API générés
- Temps d'arrêt du serveur
Performances du réseau:
- Perte de paquets
- Vitesse du réseau
Ainsi, lors de la rédaction de l'approche pour les tests de performances des applications mobiles, vous devez prendre en compte tous les points ci-dessus et correspondre à la portée et aux exigences de votre projet.
Stratégie de performance des applications mobiles
L'approche du test de performance diffère pour chaque type d'application mobile. L'approche varie d'une application à l'autre car chaque application est développée avec différents composants et le mécanisme de traitement est différent pour chacun.
Les applications mobiles basées sur un navigateur agissent différemment de l'application de navigateur Web classique. Ce comportement est dû à la bande passante du plan de données utilisé par l'utilisateur final et dépend également de la configuration sur les appareils mobiles.
Le coût de développement de ce type d'application basée sur un navigateur sera moindre car le travail de développement consisterait à voir sa compatibilité avec les navigateurs disponibles sur les appareils mobiles.
Par conséquent, pour les tests de performances tels que les applications basées sur un navigateur mobile, nous devons répliquer la charge de l'utilisateur sur le navigateur. Nous pouvons le faire en utilisant des émulateurs ou tout autre composant supplémentaire. Outre la charge utilisateur sur les navigateurs mobiles, nous devons également tester le rendu de la page Web sur les appareils.
Le coût de développement des applications mobiles natives est plus élevé. Les applications sont installées directement sur l'appareil, ce qui améliore l'expérience utilisateur, mais l'application dépend de la plate-forme.
Donc, si nous voulons tester les performances dans ce type d'applications, nous devons tester toutes les plates-formes des appareils mobiles comme Android, iOS, Windows, etc. et également sur tous les types d'appareils comme les smartphones, les tablettes, etc.
Les applications mobiles hybrides sont une combinaison d'applications mobiles basées sur un navigateur et d'applications mobiles natives.Nous devons donc ici tester la charge de l'utilisateur sur le serveur et effectuer des tests de performances complets sur tous les appareils mobiles et plates-formes.
Pour toute application sur l'appareil mobile, deux facteurs principaux affectent les performances de l'utilisateur final:
- Demande sur l'appareil mobile
- Le rendu de la page sur l'appareil mobile
# 1) Demande sur l'appareil mobile:
En vertu de cela, la demande est délivrée au serveur et la réponse du serveur est générée en fonction de la demande reçue. Une fois la réponse générée au niveau du serveur, cette réponse est renvoyée au dispositif mobile qui a envoyé la requête initiale.
Ici, les paramètres qui doivent être examinés sont la charge du serveur, les différents types de réseaux tels que 3G, 4G, etc., une charge sur chaque réseau et tous les autres composants.
Nous pouvons les tester en utilisant des émulateurs, c'est-à-dire que nous pouvons générer les scripts et utiliser des émulateurs pour imiter la charge de l'utilisateur sur le serveur.
# 2) Rendu de page sur l'appareil mobile:
Le rendu de page sur l'appareil mobile n'est rien d'autre que la réponse reçue du serveur pour la demande que nous avons envoyée depuis notre application mobile.
Ici, les paramètres qui doivent être examinés sont le système d'exploitation de l'appareil, le paramètre de configuration de l'appareil mobile, etc. Nous pouvons les tester en vous connectant réellement à l'appareil mobile et en les surveillant.

Maintenant, examinons en détail chaque étape mentionnée dans la figure ci-dessus:
a) Créez des scénarios utilisateur en temps réel:
Comme pour les applications de navigateur Web classiques, nous devons identifier en temps réel les scénarios ou les conditions attendus sur le serveur. Il y aura de nombreux scénarios à tester.
Supposons une condition dans laquelle il existe une application Web disponible sur les ordinateurs de bureau ainsi que sur les appareils mobiles, elle est également native sur les appareils Android et iOS. Ici, nous devons développer un script de test basé sur le type d'accès à l'application. Par conséquent, nous devons le tester séparément sur chaque appareil.
En outre, nous devons tenir compte du modèle de charge de travail pour ce scénario, c'est-à-dire que nous devons comprendre comment la charge est répartie sur chaque appareil. Par exemple, 500 utilisateurs accèderont à l'application via le Web, environ 100 utiliseront une application native sur leur appareil iOS et 200 autres accèderont à l'application depuis leur appareil natif sur l'application Android.
Nous devons également considérer les emplacements géographiques de la charge sur le serveur. Par exemple, 30% des utilisateurs accèdent depuis les États-Unis, 50% depuis l'Inde et 20% depuis d'autres pays. Il est obligatoire d'imiter l'emplacement différent de l'utilisateur car cela aura un impact très énorme sur les serveurs.
Tester tous les 100% à partir d'un seul endroit donnera des résultats erronés. Il est donc conseillé de tester la charge sur les serveurs en donnant un emplacement différent. La solution cloud peut être utilisée pour imiter différents emplacements géographiques.
b) Créer des conditions réseau en temps réel:
Ici, nous devons créer différentes conditions de réseau et également la qualité du réseau comme le réseau 3G, le réseau 2G, le Wi-Fi avec la meilleure vitesse, la vitesse moyenne et la faible vitesse. Nous devons faire une émulation de réseau pour créer des conditions de réseau.
Nous devrions également tester les performances en donnant des conditions de bande passante de 50%, nous pouvons y parvenir en faisant une émulation de réseau. Nous pouvons utiliser n'importe quel outil comme Wind Tunnel, Shunra, etc.
Testez également le réseau par rapport à différentes zones géographiques comme le réseau 3G à Bangalore. 4G à Hyderabad etc. Ici aussi, nous devons faire une émulation de réseau en utilisant des outils appropriés.
c) Créer des conditions de périphérique en temps réel:
Ce n'est rien d'autre que le type d'application sur l'appareil mobile, comme s'il s'agit d'une application client léger ou une application client épais, quel est le système d'exploitation sur l'appareil mobile, le type d'appareil comme iPhone, Nokia, etc., et toute autre application qui fonctionnera en parallèle lors de l'utilisation de cette application particulière, etc., doit également être testée dans le cadre des scénarios.
d) Testez les performances de chaque composant:
Après avoir créé tous les scénarios ci-dessus, nous devons tester les performances de l'application, y compris tous les logiciels et matériels. Collectez maintenant toutes les métriques nécessaires pendant le test de charge.
Certaines des mesures côté serveur qui doivent être collectées sont l'utilisation du processeur, la charge du processeur, le temps de traitement, le nombre total d'octets disponibles, les paquets envoyés, les paquets reçus, etc.
Certaines des mesures de réseau qui doivent être collectées sont les paquets et les octets envoyés sur le réseau, les paquets et les octets reçus sur le réseau, les paquets abandonnés et le délai moyen total.
Les métriques de périphérique à collecter sont le processeur, l'utilisation de la mémoire, le temps de réponse, etc. et mesurent également tous les temps de réponse et le débit des transactions.
Environnement de test des performances des applications mobiles
Avant de mettre en place l'environnement de test de performance pour une application mobile, nous devons comprendre quelles sont les applications mobiles qui seront testées, quels systèmes d'exploitation ou appareils seront testés ainsi que les différents emplacements géographiques.
Par conséquent, tout d'abord, nous devons créer un environnement composé d'émulateurs et d'appareils réels. Alors, qu'est-ce qu'un émulateur? Un émulateur est un logiciel qui peut être installé sur nos ordinateurs portables ou ordinateurs de bureau, et ceux-ci agissent comme des appareils mobiles. Nous pouvons générer une charge énorme en utilisant ces émulateurs, il est donc préférable de les utiliser pour tester la charge de toutes les applications mobiles.
D'autre part, les appareils réels sont des appareils mobiles physiques. Nous devons donc vérifier le comportement de l'application sur chaque appareil et sur chaque réseau. Mais nous ne pourrons pas tester la bande passante, la perte de paquets, etc., lorsque plusieurs appareils sont connectés au même réseau et accèdent à la même application.
La prochaine chose à considérer est l'emplacement géographique des appareils d'application, c'est un aspect obligatoire et très important à prendre en compte, sinon nos résultats de test ne seront pas comme ce qui se passe dans le scénario du monde réel.
Ainsi, une fois que vous avez analysé tout ce qui précède, sélectionnez l'outil de test de charge correspondant pour effectuer les tests de performance.
Défis des tests de performance des applications mobiles
Les défis auxquels nous sommes confrontés lors du test de performance des applications mobiles comprennent:
- Lorsque nous devons tester notre application sur différents appareils mobiles, nous devons organiser tous les appareils tels que IOS, Android, Windows, etc.
- La simulation de réseau est un autre défi auquel nous serons confrontés, c'est-à-dire que nous devons simuler des réseaux tels que les réseaux 3G, 2G, 4G et wifi.
- La mémoire disponible dans les appareils mobiles pour gérer les exécutions de test.
- L'autonomie de la batterie des appareils mobiles.
Dépannage des problèmes de performances avec les applications mobiles
Une fois le test terminé, il est temps de rassembler le goulot d'étranglement des performances identifié pendant le test. Une fois les problèmes consolidés, nous devons identifier la cause première du problème et les résoudre.
Examinons quelques problèmes de performances avec les applications mobiles:
- Un retard dans la réponse de l'application mobile: Ce retard est généralement causé par la mémoire ou par la mise en cache. Dans de tels cas, il est conseillé de vider le cache et de réexécuter le test.
- L'application est redémarrée, suspendue ou gelée un certain temps: Dans de tels cas, vérifiez le logiciel comme si des mises à jour devaient être effectuées, vérifiez le code de l'application pour toute optimisation, la gestion de la mise en cache sont des domaines à examiner.
Outils de test des performances des applications mobiles
Les outils peuvent varier en fonction du type d'appareil et de la plate-forme.
Certains des outils les plus couramment utilisés sont donnés ci-dessous.
Pour les appareils Android:
robots: Grâce à cet outil, nous pouvons enregistrer et rejouer les différentes étapes de réalisation du test. Cliquez sur ici pour un tutoriel Robotium .
Monkey Runner : En utilisant cet outil, nous pouvons exécuter nos tests sur les appareils en les connectant à un bureau. En utilisant l'interface de l'outil, nous pouvons accéder au smartphone.
Pour les appareils iOS:
Automator: En utilisant cet outil, nous pouvons faire glisser et déposer les flux de travail et les automatiser.
Conclusion
Je suis sûr que vous en auriez appris davantage sur les applications mobiles et sur la manière de procéder et d'effectuer des tests de charge sur les applications mobiles de manière parfaite grâce à ce didacticiel informatif.
Notre prochain tutoriel vous expliquera comment effectuer des tests de performances manuels en termes simples.
=> Visitez ici pour une série complète de didacticiels sur les tests de performances
Tutoriel PREV | Tutoriel SUIVANT
lecture recommandée
- Test des performances des applications mobiles à l'aide de BlazeMeter
- Guide du débutant sur les tests de performances des applications Web à l'aide de WAPT Pro
- Guide de test de sécurité des applications Web
- Test de performance vs test de charge vs test de stress (différence)
- Comment obtenir rapidement un emploi de test mobile - Guide de carrière de test mobile (partie 1)
- Test de charge, de stress et de performance des applications Web à l'aide de WAPT
- Comment effectuer des tests de performances manuels?
- Outils de test de pénétration d'applications mobiles et fournisseurs de services
