Personne n'a utilisé SIKULI pour tester leur interface graphique d'applications?
SIKULI semble avoir une énorme quantité de possibilités. Personne n'a essayé de l'utiliser comme un outil pour tester? Ou serait-il mieux adapté pour l'automatisation des actions pour les utilisateurs?
Vous devez vous connecter pour publier un commentaire.
Citant Les Tests unitaires pour l'interface graphique (dans le projet La Documentation):
Ainsi, alors que ma compréhension est que SIKULI est initialement destiné au GUI l'automatisation, il peut certainement être utilisé pour l'interface graphique de test (qui est étroitement liée, si vous considérez que GUI test = GUI automatisation + cadre de vérification). Jetez un oeil à Les tests unitaires pour l'interface graphique (JEdit) pour un exemple complet (et voir la
assertXXX
sur les images).Et en effet, je vois un grand potentiel dans SIKULI pour tester car il me semble que l'écriture des tests très facile, même sans une seule ligne de l'application réelle écrit (juste à l'aide de quelques maquettes par exemple). SIKULI pourrait devenir un excellent compagnon pour les différentes saveur de tests (BDD, les essais d'acceptation, etc).
C'est vraiment un étonnant morceau de logiciel, très impressionnant.
Je suis à l'aide de Sikuli beaucoup pour l'INTERFACE d'automatisation de test. Je suis "en retard" à la Sikuli partie, ayant découvert en janvier 2011. Je suis vraiment heureux que j'ai découvert que c'est la fin, parce que tout en elle était prometteuse à l'heure, je ne pense pas que jusqu'à ce que Sikuli x1.0-rc1 (ce qui s'est passé en décembre) a été publié qu'il était prêt à l'heure de grande écoute.
Auparavant, j'ai utilisé TestQuest et de l'Aubergine pour l'INTERFACE utilisateur d'automatisation de test. À mon avis, Sikuli bat les deux mains vers le bas. Je crois vraiment qu'il a le potentiel de changer radicalement la façon dont les gens d'effectuer des tests d'INTERFACE utilisateur automatisation pour le mieux et sera d'évangélisation pour les gens autour de moi.
À l'aide de Sikuli est correctement signifie que vous êtes pas à la suite d'un "enregistrement et de lecture de" modèle. Plutôt, vous devez aborder le développement d'automatisation des tests avec Sikuli - comme vous avez besoin de tous les outils - en tant que logiciel de développement de la tâche.
Nous sommes actuellement dans le processus de transfert d'une UI automation DSL (Domain specific Language), nous avons construit pour l'Aubergine à Sikuli. L'une des principales caractéristiques, nous tirerons profit de notre DSL est Sikuli du texte des capacités de reconnaissance. Cela va nous permettre d'exécuter le même scénario, à travers différentes versions localisées de notre produit.
Parce que Sikuli s'appuie sur OpenCV (pour la reconnaissance d'images) et tesseract-ocr pour la reconnaissance de texte), il a une quantité incroyable de puissance et de flexibilité.
Aussi, voir le document: http://groups.csail.mit.edu/uid/projects/sikuli/sikuli-chi2010.pdf
@jordan,
Absolument spot sur " l'Utilisation du Sikuli est correctement signifie que vous n'êtes pas à la suite d'un "enregistrement et de lecture de" modèle. Plutôt, vous devez aborder le développement d'automatisation des tests avec Sikuli - comme vous avez besoin de tous les outils - en tant que logiciel de développement de la tâche.
J'ai créé une solution d'automatisation des tests pour tester une vidéoconférence de l'application faite par les mondes plus grand fabricant de PC. Ils n'ont pas compris que c'était un dev projet, pas un point et cliquez sur l'opération que n'importe quel singe pourrait s'exécuter. En essayant d'expliquer les enjeux de codage avec un typées dynamiquement langue était impossible.
De mon expérience, le plus grand défi est l'image la gestion. J'ai utilisé le système de fichiers et configparser pour la première itération de l'automatisation des tests. À l'aide de configparser travaillé toutefois, il a été difficile à mettre en œuvre. Dans l'avenir, je prévois sur l'utilisation de gouttes. Sikuli ne prend pas en charge l'extraction directe des images à partir d'un DB (encore) bien que j'ai un travail autour de.
Utilisation d'un IDE est critique car la Sikuli IDE ne sont pas respectées et les outils de développement. Les 2 IDE est je l'ai configuré, NetBeans et Eclipse/PyDev ont leur propre série de problèmes. Le sont parfaits pour le codage cependant fausses erreurs, l'injection de l'espace et du code de la perte rendre à la fois moins de solutions idéales. J'ai le code et les tests dans NetBeans, Exécuter en SikuliIDE et enregistrer le tout dans le bloc-notes comme une sauvegarde.
En dépit de toutes les difficultés encounteres je suis un grand partisan de Sikuli. Sikuli a le potentiel de changer d'automatisation de test, le rendant accesable à l'ensemble de l'AQ de la communauté sans avoir à être une OO codeur.
Enregistré un flux de travail avec un Flex web app. A fallu un certain temps pour trouver un fiable stratégie pour créer des captures d'écran, mais une fois que je l'ai fait, le script continue à fonctionner même après que j'ai changé mon bureau schéma de couleur! La syntaxe est un peu maladroit, mais quand vous avez besoin de cliquer sur un contrôle spécifique dans une collection de contrôles similaires, c'est à dire des cases à cocher, champs de saisie. Regarde comme la seule façon de le faire est par l'utilisation de
find()
en combinaison avecright(); left(); inside()
. Semble que plus les captures d'écran sont, le plus fiable sont-ils détectés. De l'omi, une bonne pratique serait d'inclure uniquement les objets importants sur les captures d'écran, et de les faire comme atomique que possible, mais sans compromettre leur unicité.Pour les moins de développeur centrée sur l'automatisation des tests pour Sikuli, consultez également RobotFramework.org. Il y a un tutoriel sur comment faire un (personnalisé) Sikuli bibliothèque de test pour Robot Cadre
http://blog.mykhailo.com/2011/02/how-to-sikuli-and-robot-framework.html
et j'ai créé une simple version générique ainsi
http://code.google.com/p/simplesikuli
Et si jamais il y avait des limites pour Sikuli en termes de manipulation de la fenêtre, contrôles d'interface utilisateur graphique, la souris et l'interaction du clavier, vous pouvez toujours compléter avec un autre grand gratuit outil de test: AutoIt. AutoIt par lui-même aussi a des limites, lorsque vous le combinez avec Sikuli, ils constituent pour chacun des outils de lacunes, pour remplacer de qualité commerciale GUI outils de test.
Voici mon point de vue sur l'awesomeness de Sikuli pour l'automatisation des tests: http://pculture.org/devblogs/mirotesting/2011/06/24/using-sikuli-to-automate-miro-testing/
J'ai un fiable de la croix-plate-forme de suite de tests pour Miro.
Je suis en train d'écrire un cadre pour l'interface graphique essai/erreur de manipulation avec sikuli. C'est génial.
J'ai utilisé sikuli pour GUI tests, aussi, j'ai pu l'intégrer avec d'HUDSON.
Je viens de publié mon propre cadre de référence de l'interface de l'application des tests à l'aide de Skikuli + RobotFramework.
SikuliFramework fournit une abstraction orientée objet sur le dessus de Sikuli pour aider à l'interaction des éléments d'interface, tels que les jeux de boutons, cases à cocher, des boutons radio, windows et le dialogue des hiérarchies de l'interface d'automatisation et d'essais. Il dispose également d'une intégration étroite avec les RobotFramework.
https://github.com/smysnk/sikuli-framework
Sikuli est basé sur une image statique de la correspondance. Donc, il est seulement approprié pour les situations où le GUI est suffisamment stable. Pour la dynamique de l'interface graphique, comme l'animation ou de l'interface graphique qui comprend une sorte de hasard, il n'est donc pas applicable.
Et Sikuli ne couvre que la partie visuelle de l'essai. Il n'a aucune idée de si l'état interne est, en effet, comme prévu.
Je suis un fan de Sikuli et je crois que c'est complémentaire à d'autres tests et peut sauver beaucoup du manuel des tests d'efforts.
Cependant, il faut du temps pour bien faire les choses.
Je lui ai donné un deuxième coup de feu en l'espace de deux ans et la deuxième fois j'ai été en mesure d'obtenir de bons résultats que j'ai été plus familier avec l'environnement.
Il est livré avec une interface intuitive IDE python et le rend facile à étendre un peu les choses.
Il est très facile de changer cliquez sur les positions, ensemble de tolérance et d'enregistrer des choses. Une fois que vous obtenez une cale de la façon d'enregistrer et de vérifier la documentation, il devient facile à utiliser un minimum d'images et d'améliorer la précision. Il attrape les changements dans l'interface graphique et les résultats assez facilement. Il est également facile d'attendre un certain événement. La vérification d'erreur est facile.
Le plus gros problème, c'est que l'enregistrement des tests échouent souvent, si vous venez de l'exécuter sur une autre machine que celle qui a été enregistrée sur. Il pourrait avoir à faire avec la comparaison d'images basée sur le pattern matching. On peut améliorer la concordance modèle de probabilité en donnant des valeurs de tolérance. Mais il devient ennuyeux à la fois de garder sur la modification de la tolérance. Ma recommandation est d'utiliser un autre ensemble d'images sur différentes plates-formes et de préférence fonctionner sur une seule machine ou une machine virtuelle.
Une fois que vous avez un ensemble commun de flux de travail, vous pouvez faire une bibliothèque de ces fonctions communes telles que (ouvrir-fermer-enregistrer le projet, modifier les paramètres)et à utiliser dans différents scripts. Il devient très facile grâce à la bibliothèque devient complet. Cela signifie également que vous devrez modifier le script seulement à un seul endroit et il va se refléter dans tous les scripts.
J'ai également créé un cadre simple (image ci-jointe) pour exécuter les tests et enregistrer les résultats à l'aide de C# .Net. On peut utiliser n'importe quoi pour créer un simple test exécuter l'application. Il a juste besoin pour exécuter le test sur la ligne de commande et vérifier les résultats.
Je travaillais dans une petite équipe au sein de laquelle nous avons eu des tests limités en ressources. Avec Sikuli j'ai fait enregistré efforts de l'existant et de l'équipe QA également aidé à m'attraper les insectes avant de le pousser à la main.
J'ai recommandé Sikuli pour les membres d'autres équipes dans mon entreprise, et ils s'en servent pour générer le jeu de données pour la ML les modèles. Ils l'ont fait par l'automatisation de leur Engg application avec des paramètres.
Sikuli prend le temps de sombrer dans un premier temps. Mais quand il est fait correctement, il peut économiser beaucoup d'efforts.