web-dev-qa-db-fra.com

Comment faire en sorte que Jenkins exécute automatiquement les tests Selenium WebDriver / TestNG / Java automatiquement lors du déploiement et qu'est-ce que Maven a à voir avec tout cela?

Je fais des recherches sur cela depuis quelques bonnes heures maintenant, mais je n'ai trouvé que des éléments de la vue d'ensemble. Partout, ils supposent que le lecteur a déjà une partie du système mis en place.

Je pense qu'il sera utile d'avoir une description globale des pièces nécessaires pour assembler le tout.

Ils disent tous "utilisez vos tests de sélénium maven" et ainsi de suite.

EDIT: Après quelques recherches, j'ai découvert que je dois installer Maven dans Jenkins et sur mon ordinateur, installer un plugin maven pour Eclipse et créer/convertir mes projets en tant que projets Maven. Comment transférer mes projets Maven dans Jenkins? Dois-je exporter vers .jar ou déplacer le dossier entier sur le serveur? Comment puis-je connecter le tout avec xvfb?

Voici donc ce que je sais jusqu'à présent

  1. Installez Jenkins (nous l'avons déjà sur notre serveur)
  2. Installer des plugins pour Jenkins (lesquels?)
  3. Installez xvfb pour que les tests soient exécutés dans un navigateur sans tête (comment spécifier cela dans le test écrit Java?)
  4. Installez Maven sur ordinateur, jenkins et Eclipse, utilisez des projets maven.
  5. Quelle partie de mon dossier de projet depuis le lieu de travail Eclipse dois-je télécharger sur le serveur et où? J'ai un fichier testng.xml et quelques classes (qui sont les tests acutaux)
  6. Comment dire à Jenkins d'exécuter automatiquement les tests Selenium Webdriver après le déploiement, et vers quel fichier dois-je pointer?
  7. Comment obtenir des rapports - via TestNg ou via une fonctionnalité Jenkins?
34
J. K.

Réponses, suivant votre liste:
Q1. Installez Jenkins (nous l'avons déjà sur notre serveur)
A1. Aucun besoin.

Q2. Installer des plugins pour Jenkins (lesquels?)
A2. Pour autant que je me souvienne, aucun plugin spécifique n'est nécessaire uniquement à cette fin. Jenkins devrait être capable d'exécuter un travail de maven ou de fourmi, c'est hors de la boîte.

Q3. Installez xvfb pour que les tests soient exécutés dans un navigateur sans tête (comment spécifier cela dans le test écrit Java?)
A3. Dans vos tests Java Java, vous spécifiez l'hôte sur lequel le navigateur doit être lancé (plus techniquement, l'hôte qui exécute le serveur Selenium). C'est normalement "localhost", mais dans ce cas, ce sera différent (ce n'est généralement pas une bonne idée d'exécuter jenkins et Selenium sur la même boîte). Donc, dans votre Java vous indiquez que l'hôte avec xvfb ET avec la grille Selenium (qui écoute le port) 4444 par défaut) .Il est également considéré comme une bonne pratique de factoriser ces informations hors du code (fichiers de propriétés et, en outre, variables dans le fichier pom, ou fournies par jenkins).

Q4. Installez Maven sur ordinateur, jenkins et Eclipse, utilisez des projets maven.
A4. Maven doit être installé sur l'hôte jenkins (et votre machine locale, celle que vous utilisez pour développer des tests).

Q5. Quelle partie de mon dossier de projet depuis le lieu de travail Eclipse dois-je télécharger sur le serveur et où? J'ai un fichier testng.xml et quelques classes (qui sont les tests acutaux)
A5. Votre code est placé sous contrôle de version (non?), Vous pointez donc jenkins pour récupérer votre projet (puis compilez du code, compilez des tests, exécutez des tests ...). La réponse est "au moins tout le code nécessaire pour compiler vos tests et les exécuter". Jenkins builds votre projet à partir de la source et de l'exécution des tests n'est qu'une phase de ce processus.

Q6. Comment dire à Jenkins d'exécuter automatiquement les tests Selenium Webdriver après le déploiement, et vers quel fichier dois-je pointer?
A6. utiliser la phase de "test d'intégration" servie par le plugin surefire.

Q7. Comment obtenir des rapports - via TestNg ou via une fonctionnalité Jenkins?
A7. Jenkins affichera (et distribuera, s'il est configuré de cette façon) les rapports générés par testng.

12
patrungel

Même moi, je comprends le même problème, lorsque j'ai commencé à configurer mon projet WebDriver dans Maven projetez et essayez de configurer cela sur jenkins J'ai dû passer par de nombreux tutoriels et poster sur Internet. Donc j'ai pensé écrire mon propre. Faites-moi savoir si cela aide
http://qtp-help.blogspot.in/2013/09/webdriver-with-maven.html

5
Gaurang Shah

Si vous voulez dire à Jenkins d'exécuter votre build à chaque fois que vous déployez, définissez les paramètres suivants dans le projet Jenkins

Jenkins Build Settings

De cette façon, vous dites à Jenkins de vérifier le référentiel pour les mises à jour toutes les 15 minutes, et si une mise à jour a été trouvée, Jenkins exécute la construction automatiquement. Vous pouvez modifier l'heure de manière flexible selon vos besoins.

0
Postavshik