0
votes

L'appium peut-il exécuter plusieurs tests différents simultanément sur plusieurs périphériques?

Je suis nouveau dans les tests parallèles de l'appui / sélénium et je me demandais si on pouvait exécuter des tests différents simultanément sur plusieurs appareils? Mon équipe doit réduire le temps d'exécution total de nos tests d'interface utilisateur et ne sont pas concernés par différentes versions du système d'exploitation affectant le comportement de la demande de ces tests spécifiques. J'ai lu plusieurs postes et essaye de rechercher des réponses, mais tout ce que je peux sembler trouver sur Internet sont des articles, des tutoriels et des forums sur la manière d'exécuter le même test en parallèle sur plusieurs périphériques.

Puis-je exécuter des tests différents simultanément sur plusieurs périphériques sans donner de coup de pied à des tests différents manuellement, ou est-ce une limitation de l'appui? Idéalement, cela serait mis en œuvre à l'aide d'une solution open source.

(À l'heure actuelle, nous essayons d'utiliser une approche junit pour les tests en raison de limitations spécifiques d'autres outils. Tous les tests sont en cours d'écriture en Java.)

Merci pour votre temps.


0 commentaires

3 Réponses :


0
votes

Qu'est-ce que vous demandez, fondamentalement, ce n'est pas possible.

Vous ne pouvez pas exécuter différents cas de test sur différents appareils.

Bien que vous puissiez parcourir les mêmes cas de test sur une large gamme de dispositifs à l'aide de la ruche ou de la browsck ou de l'AWS Device Farm.

J'espère que cela aide.


4 commentaires

Cela fait de l'aide, merci! Alors je suppose que la même chose serait alors vraie pour les tests d'interface utilisateur de Selenium Web, alors? (Le test parallèle est limité au même test sur plusieurs périphériques plutôt que de tests différents.)


Je ne suis pas d'accord sur le fait que cela n'est pas possible - avec une configuration personnalisée, vous pouvez absolument accomplir cela. Je l'ai personnellement mis en œuvre dans le passé.


Vous pouvez avoir un look ici: https://discuss.appium.io/t/parallel-execution-on-two-device s-de-deux-t différent-t-cas / 21243


@ J.Adhikari dans le lien que vous avez fourni est parallèle / des tests simultanés à atteindre ou est-ce davantage sur les lignes de la spécification de l'ordre de course des tests? L'un des commentateurs avait spécifié qu'ils souhaitaient atteindre un test entre pairs dans lesquels ils ont eu 2 tests interagissant les uns avec les autres et validant que les interactions étaient correctes. Je ne comprendrais peut-être pas correctement, mais c'est d'atteindre le même objectif que moi?



0
votes

Selon votre configuration, vous pouvez y accomplir. Cependant, beaucoup de votre automatisation de construction et de votre gestion de périphérique devront être configurés par vous ou votre équipe personnalisée, de sorte que vous ne pourrez donc pas utiliser une solution hors de la boîte pour le faire.

J'ai accompli la même chose avec le sélénium et l'appui - vous aurez besoin d'un cadre de test permettant d'exécuter des tests avec des paramètres et que vos périphériques devront être connectés à des hubs USB séparés qui ont chacun leur propre serveur virtuel attaché. .

Utiliser Nunit, voici mon approche:

  • génère des fichiers .txt pour chaque ensemble de tests que je veux exécuter - test_list_1.txt, test_list_2.txt , etc. Chaque liste contient un groupe de cas de test différent à exécuter.
  • Écrivez un script de construction pour nettoyer et construire votre projet à partir de zéro - pour C #, j'utilise un gâteau.
  • Configurez un travail à Jenkins qui exécute votre script de construction et appelle le coureur de console de Nunit, qui prend un test_list comme paramètre. Ceci initie une exécution de test sur une liste des cas de test

    Vous devriez pouvoir construire votre travail Jenkins contre toute liste de tests que vous souhaitez. Vous avez maintenant la possibilité d'exécuter votre automatisation contre différents tests, comme indiqué dans votre description de votre problème.

    Connectez vos machines virtuelles (qui se connectez à vos appareils d'appui) à Jenkins et ajoutez-les en tant que exécuteurs sur votre travail. Maintenant, vous avez plusieurs machines pour exécuter votre travail contre.

    Avec cette configuration, vous pouvez exécuter autant de travaux que vous avez des machines - 4 cartes VM signifie 4 emplois, ce qui signifie que vous pouvez exécuter 4 séries de cas de test différents.

    Configuration à ma fin a été complètement personnalisé - j'ai utilisé certains outils pour accomplir des étapes individuelles, mais cela a fonctionné pour nos besoins et nous avons accompli une exécution simultanée contre différents ensembles de cas de test.


3 commentaires

Merci. Donc, par exemple, si je voulais courir ceci sur ma machine locale, serais-je en mesure d'utiliser une instance de Jenkins locale pour le faire? Utiliser une instance de Jenkins locale, serais-je en mesure de démarrer plusieurs serveurs d'appui sur leurs propres ports, puis d'utiliser quelque chose comme le coureur de la console de Nunit pour lancer une nouvelle liste de tests utilisant un serveur d'appui et un appareil mobile dédié? Pour clarifier, 1 instance de Jenkins locale démarre 4 serveurs d'appui localement, puis à l'aide du coureur de la console, je passe dans "Test_list" qui exécute l'une des listes de test contre l'un des 4 périphériques? (S'il vous plaît laissez-moi savoir si ce n'est pas clair.)


Je suppose que ce que je veux savoir à cet égard est que j'ai besoin de VMS séparé pour exécuter les tests spécifiés dans les fichiers "Test_list" ou démarrerait plusieurs processus sur la même machine faire le tour?


Donc, la réponse à ce bit est en réalité non. Vous aurez besoin de machines virtuelles distinctes pour chaque instance de coureur de console Nunit. J'ai personnellement essayé d'utiliser plusieurs instances Nunit sur une seule machine et cela n'a pas fonctionné simultanément.



0
votes

Vous pouvez exécuter vos tests localement sur plusieurs périphériques en créant plusieurs instances d'Appium Server. Chaque serveur d'appui doit être exécuté sur une adresse IP et proxy différente. Vous devez donc définir vos capacités pour chaque instance en conséquence. Mais il y a une autre solution aussi, mais c'est un peu coûteux. C'est AWS Device Farm . AWS fournit plusieurs périphériques réels hébergés à des serveurs que vous pouvez utiliser pour les exécutions de vos costumes de test personnalisés. Ils donnent au départ 1000 minutes de test gratuites. Vous devez créer un projet Maven pour vos scripts de test. Je préfère utiliser le test à la suite que Junit.


2 commentaires

Alors, pourquoi préférez-vous Testner sur JUnit? Est-ce une préférence fonctionnelle ou est-ce une préférence personnelle?


C'est une préférence fonctionnelle depuis que les rapports fournis par des témoignages sont bien plus détaillés. Et aussi Testg est un nouveau modèle basé sur JUnit, il y a clairement plus d'avantages en utilisant cela. Et surtout, la plupart des serveurs de cloud soutiennent maintenant le test.