Y a-t-il des outils là-bas qui utilise la reconnaissance d'image (recherche, comparaison, validation d'images) comme base pour automatiser et tester GUI Software.Je connaissez Ranorex le supporte. Y a-t-il des outils de meilleure qualité? Y a-t-il des gotchas à utiliser une reconnaissance d'image pour entraîner l'automatisation des tests? P>
7 Réponses :
Merci pour votre commentaire! Veuillez consulter le logiciel de test de routinebot - un logiciel de test d'interface en cliquant sur certains modèles d'image et voir par vous-même comment cette idée est mise en œuvre dans un Outil d'automatisation! P>
À partir de la FAQ de RoutinEbot de Routinebot: "Si vous utilisez dans votre image de script Patters, et l'apparence originale de certains, disez le bouton, dans l'application testée modifiée, le script ne sera pas exécuté correctement. Donc, lorsque vous concevez vos scripts, vous avez à l'esprit cette possibilité. Il existe quelques solutions possibles à ce problème: vous pouvez utiliser une commande clickbutton, qui utilise le texte de la légende du bouton (pas son image). Une autre solution utilise des images d'image plus petites, dans ce cas, il y a moins de chances que le modèle soit modifié. " - Comme je l'ai dit, la reconnaissance de l'image devrait être considérée comme un dernier recours.
Je découragerais également l'utilisation de la reconnaissance de l'image avec SendKeys et cliquez sur les coordonnées ou (images de bouton) pour effectuer des tests de l'interface utilisateur. J'ai récemment utilisé l'automatisation de l'UI pour automatiser les tests d'une application WPF avec succès. En plaçant des petits chapelums (Automation.Automationid = "Okbutton") Tout au long de notre application XAML, j'ai pu écrire des tests de l'unité C # qui exercent différents aspects de l'application. Même sans que l'automatisation de l'interface utilisateur de la chapelure est toujours capable d'exercer une application, mais il est légèrement plus difficile lorsque vous essayez d'identifier les commandes de l'interface utilisateur. P>
Un article décent sur le projet de code est disponible comme point de départ. p>
http://www.codeproject.com/kb/wpf/uiautomation.aspx p>
Vous aurez également besoin d'une assurance-chômage d'UI, un outil gratuit de Microsoft, qui vous aide à trouver des contrôles et d'exercer manuellement les commandes via l'automatisation de l'UI comme guidage pour écrire les scripts. L'outil est enterré dans le SDK Windows Vista, après l'installation de Uispy.exe. L'outil d'espionnage UI peut toujours exécuter sur une machine Windows XP en copiant l'EXE sur la machine cible. P>
Considérez Autoitscript pour conduire des GIIS Windows dans des scénarios de test - et raclage de l'UIS. Considérez la reconnaissance des caractères optiques open source Tesseract. Aussi opencv pour la vision de la machine. P>
Free Autoitscript fonctionne au niveau de l'API en ce que vous pouvez lire des états de divers widgets et des sections Windows, envoyer des actions à ces composants d'interface utilisateur, attendez des modifications de l'état, etc. Il est possible de produire un code d'automatisation hautement robuste garantissant la mise au point sur Indépendance de Windows et de résolution. P>
OK, tout d'abord, je comprends les réponses précédentes: les applications de test utilisant la reconnaissance de l'image ne sont pas le meilleur moyen de tester des Guis. Mais, en même temps, je ne comprends pas pourquoi vous ne répondez pas à la question en premier lieu. Il demande des outils qui fonctionnent de cette façon, je penserais qu'il est assez intelligent de comprendre où il entrera. P>
OK, maintenant le sujet principal, mon choix comprend: p>
Une ancienne question, mais peut-être que cette réponse peut s'avérer utile à quelqu'un. J'utilise actuellement deux produits, P>
Tester n'importe où, par automatisation n'importe où ( http://www.automationywhere.com/testing/ ) p>
et test rapide professionnel, par HP ( http://www8.hp.com/us/fr/software-solutions/software.html?compuri=1172957#.uhjbwplw5-k ) p>
Les deux font le travail assez bien, et les deux soutiennent l'utilisation de la reconnaissance de l'image. Je ne suis pas entièrement convaincu que la reconnaissance de l'image est en soi une mauvaise chose. Comme pour toutes choses, vous devez adapter votre approche à vos besoins et utiliser le bon outil pour le travail. P>
Je pensais que j'ajouterais une autre entrée à ce fil. Les choses ont peut-être changé, pas sûr, mais quand j'ai vu la démo de la dernière fois, ce produit a offert à l'IDE / interface / fonctionnalités de Sikuli, comme étant un produit commercial et soutenu des périphériques réels au-delà du simulateur. Je ne sais pas si l'outil s'est amélioré pour détecter des objets par identifiant au-delà des images maintenant ou non. P>
Seetest de http://experitest.com p>
Permettez-moi de suggérer une autre solution.
Ce n'est pas un cadre d'automatisation UI complet, mais plutôt un outil spécifique juste pour la validation de l'image.
Cela vous permettra d'ignorer la partie instable de vos images également (données aléatoires, etc.)
Il s'intégrera à tout autre cadre de test d'interface utilisateur que vous choisissez: sélénium, sikuli, etc. p>
Evident Gotcha - Divergences entre les paramètres de la machine d'agent. Si vous créez un test sur la résolution 1280, mais que vous le jouez à 1150, vous allez rencontrer des problèmes. En règle générale, vous préférez conduire votre automatisation au niveau de l'objet d'interface graphique ou au niveau de l'API. Mon expérience est que l'utilisation de la reconnaissance d'image pour l'automatisation des tests de conduite ne doit être utilisée qu'en dernier recours.
Je suis d'accord avec Rodknee et Tom E. À l'aide de la reconnaissance de l'image pour les tests d'interface utilisateur n'est rien de moins pénible et une perte de temps extrêmement douloureuse. Si votre application est correctement construite, vous pouvez appuyer sur la logique UI dans une couche différente de votre application qui est plus facilement testée. Modèle MVP a été créé à cet effet. Chaque opération pouvant être accomplie via l'interface utilisateur est représentée quelque part dans la vue. De cette manière, vous pouvez supprimer complètement l'interface utilisateur et toujours le test de votre application à l'aide de l'architecture restante (M-V-C). La pensée o