web-dev-qa-db-fra.com

Automatisez les tests Selenium sur le serveur TeamCity Continuous Integration

J'ai une solution Visual Studio qui comprend un projet de test ayant des tests de sélénium.

(J'ai déjà une compilation compilée déclenchée par l'archivage du contrôle de version (Mercurial))

Mais je veux avoir une configuration de construction distincte (tous les soirs) qui exécute les tests Selenium, idéalement sous MSTest.

Je suppose que j'ai besoin de Selenium Server pour cela? Dans l'affirmative, quelle est la meilleure façon de le déclencher avant d'exécuter les tests? Dois-je le faire à partir du script MSBuild ou utiliser un Build Step de Team City lui-même? Dois-je d'abord lancer Cassini\WebDev.WebServer pour que les éléments suivants puissent s'exécuter:

Selenium = new DefaultSelenium("localhost", 4444, "*firefox", "http://localhost:49192/");

?

J'ai un Build Server avec TeamCity 6.5.1 installé. J'ai installé un VS2010.

Certes, quelqu'un a fait ça! Désespéré pour de l'aide ici les gars. Si quelqu'un pouvait offrir des exemples, ce serait apprécié.

30
Wrongun

Je suis sur le point de mettre en place des tests Selenium sur notre serveur TeamCity et je suis toujours sur Google. Ce sont les pages que j'ai trouvées intéressantes (à part votre question StackOverflow):

Test de régression pour toute application Web avec TeamCity, Selenium et JUnit

Navigateur Selenium UnitTesting de TeamCity

Il existe donc une solution qui convertit les fichiers html enregistrés avec Selenium IDE to Java à exécuter avec JUnit dans TeamCity et l'autre approche consiste à créer vos scripts de test en C #.

Et cette rubrique, "L'exécution de tests de sélénium via Teamcity, cela peut-il être fait?" décrit un problème lors de l'exécution de l'agent de génération en tant que service ... J'espère que je pourrai continuer à exécuter l'agent en tant que service .

16
Örjan Jämte

Nous utilisons Selenium pour des tests nocturnes du site Web externe de notre entreprise. Pour cela, nous utilisons Selenium RC et des suites de tests créées dynamiquement.

Notre processus, qui semble plus compliqué que celui de Ross, est le suivant:

  1. Installer Selenium RC sur le serveur TeamCity
  2. Utilisez le Firefox IDE pour créer des tests
  3. Créez une page Web qui génère un fichier html de suite de tests avec des liens vers tous les tests dans un certain dossier accessible sur le Web (par exemple http://www.mysite.com/Selenium/generateTests.aspx)
  4. Créez une étape de génération Powershell dans TeamCity, en exécutant un script qui télécharge la suite et les tests correspondants sur le serveur de génération
  5. Ajoutez une fonction de construction "Traitement des rapports XML" pour rechercher les résultats des tests. Cela permet à TeamCity de vous informer des résultats des tests.

Dans le script PowerShell:

  1. Exécutez le runtime Selenium RC avec des entrées qui ciblent la suite de tests téléchargée et quelle URL doit être l'URL de base. [*1]
  2. Utilisez XSLT pour transformer la sortie au format NUnit [* 2]

[*1] Java -jar C:\Selenium\selenium-remote-control-1.0.3\Selenium-server-1.0.3\Selenium-server.jar -log C:\Selenium\www.mysite.com\Selenium-log.log -userExtensions 'user-extensions.js' -firefoxProfileTemplate 'Selenium FireFox Profile' -htmlSuite *firefox http://www.mysite.com C:\Selenium\www.mysite.com\generated\GeneratedSuite.htm C:\Selenium\www.mysite.com\TestResults.html

[* 2] nxslt3 $seleniumXmlTestReportPath nunit.xslt -o $nunitReportPath baseUrl=$testBaseUrl

7
Niklas Wulff

Nous utilisons TeamCity pour créer et tester notre application Web basée sur C #. Nous exécutons le serveur Selenium tout le temps, en utilisant lanceur de service Java pour le démarrer. Les tests se connectent à localhost, comme vous le montrez dans votre question.

Nous utilisons le "NAnt Runner" de TeamCity pour démarrer les travaux de test et utilisons le <nunit2> tâche pour exécuter les tests sous le contrôle de NUnit. Parce que nous le faisons, NUnit recherche et exécute toute méthode publique annotée avec un [Test] attribute - c'est un outil très simple et très puissant.

Cette configuration fonctionne très bien pour nous.

6
Ross Patterson

Intégrez-le avec NUnit ou un autre lanceur de test.

1
Aleš Roubíček