2009-01-13 6 views
2

Je lance des tests de sélénium avec Selenium RC à partir de .NET (C#).Comment exécuter un test de sélénium (HTML) enregistré à partir de .NET

Dans certains cas, je souhaite conserver la source du scénario de test au format HTML (pour pouvoir la modifier depuis Selenium IDE), mais je voudrais exécuter/inclure ces tests à partir de mes tests unitaires C#. Peut-être que c'est évident, mais je ne peux pas trouver la méthode de l'API dans le noyau de sélénium pour atteindre cet objectif. Une idée de comment faire ça?

(je pense que la commande « includePartial » dans Sélénium on Rails fait la chose que je aurais besoin, mais pour C#.)

Répondre

3

J'ai posé cette question il y a quelque temps, et depuis, je Avancé dans les tests fonctionnels automatisés, plus à la BDD/ATDD/spécification par exemple direction avec SpecFlow. Je ne me rends compte que maintenant que j'ai implémenté une solution pour cette question concrète pendant mes expériences. Je partage ma solution, peut-être peut aider les autres.

J'ai créé un petit analyseur et un interpréteur pour les fichiers Selenium html (vous pouvez le télécharger ici: http://bit.ly/ciTMA2). Outre l'implémentation, ces classes ajoutent des méthodes d'extension à l'interface ICommandProcessor de Selenium. Sur cette base, un test peut ressembler à ceci:

Liste des commandes = SeParser.ParseSeFile (@ "HomePageTest.html"); selenium.Processor.InterpretCommands (commandes); selenium.Processor.AssertNoVerifyErrors();

(Les InterpretCommands et les AssertNoVerifyErrors sont des méthodes d'extension personnalisées.)

+0

Avez-vous un blog tout lieu à ce sujet? Je vois le code, mais je ne suis pas sûr de savoir comment commencer. –

+0

En jouant avec l'analyseur que vous avez créé, j'ai remarqué une différence assez importante entre le nombre de commandes supportées par WebDriverCommandProcessor et Selenium IDE. c'est-à-dire qu'il n'y a pas de ClickAndWait. Avez-vous essayé d'exécuter vos scripts existants contre un processeur de commande alimenté par webdriver? Et si oui - comment avez-vous résolu les divergences? – bushed

+0

(Je n'ai pas non plus de documentation ou de post pour cela, désolé.) En attendant, j'utilise une approche différente: commencé avec le projet OSS SpecFlow (http://www.specflow.org). Jetez un coup d'oeil à ça ... –

0

Je ne pense pas qu'il y avait une façon de faire la dernière fois que je Selenium RC .NET

0

Vous pouvez définir le format lorsque vous travaillez dans Selenium IDE en allant dans Options-> Format, puis réglez-le sur la langue de votre choix. Cela signifie que vous pouvez créer des tests C# sans avoir à les convertir au fur et à mesure. Vous pouvez toujours cliquer avec le bouton droit de la souris et choisir votre commande. Elle sera mise à jour vers C# dans l'EDI.

Je pense que c'est ce que vous recherchez.

0

Probablement vous pouvez analyser le xhtml du test et utiliser la réflexion .NET pour le convertir aux appels de méthode, mais il nécessite un travail de votre côté

Questions connexes