Connexion avec GitLab CI

ampasq
Messages : 2
Inscription : ven. avr. 30, 2021 5:17 pm

Connexion avec GitLab CI

Message par ampasq »

Bonjour,

Nous étudions votre solution pour nos projets et nous avons quelques questions sur votre future connexion avec GitLab CI.

Sera-t-il nécessaire d'installer un plug-in dans GitLab pour communiquer avec le serveur Squash ?
Vous parlez d'un service dans une image docker pour GitLab mais je veux être sûr.

Pourrais-je sélectionner une branche ou un tag du projet Gitlab pour exécuter les tests ?

Nos tests sont développés dans un environnement Linux et nous utilisons des images Docker dans la CI pour les exécuter.
Actuellement, les tests sont exécutés dans le même job, quand ils utilisent le même conteneur Docker.
Pourrais-je exécuter plusieurs tests Squash dans un même job GitLab pour éviter de lancer plusieurs fois le même conteneur Docker ?

Merci.
aguilhem
Messages : 11
Inscription : lun. mai 25, 2020 11:56 am

Re: Connexion avec GitLab CI

Message par aguilhem »

Bonjour,

Avec Squash DEVOPS, il est possible depuis un pipeline d'intégration continu de faire appel à Squash Orchestrator dans le but d'exécuter un plan d'exécution Squash TM. Le process est alors le suivant :
  • un job d'outil d'intégration continue est déclenché (de façon manuelle ou automatique)
  • le job comporte une étape qui transmet à Squash Orchestrator un descriptif du plan d'exécution Squash TM (une itération par exemple) à exécuter
  • Squash Orchestrator contacte Squash TM pour obtenir les informations sur les tests automatisés du plan d'exécution à exécuter
  • Squash TM envoie en retour à Squash Orchestrator les informations sur chaque cas de test à exécuter (dont des paramètres exploitables à l'exécution)
  • Squash Orchestrator échange directement (via SSH ou via HTTP par le biais d'un agent) avec des environnements d'exécution préalablement configurés au sein de celui-ci pour lancer l'exécution des automates concernés sur ces derniers
  • En fin d'exécution, les rapports et un statut d'exécution extrait de ces derniers est transmis à Squash TM pour chaque test
La transmission d'un descriptif à Squash Orchestrator d'un plan d'exécution à exécuter se faisant par un appel REST, le process décrit ci-dessus peut s'exécuter depuis n'importe quel outil d'intégration continue.
Actuellement, Squashtest propose pour Jenkins un plugin afin de faciliter l'appel à Squash Orchestrator depuis un job Jenkins.
Pour Gitlab, Squashtest ne propose pas encore de moyen pour faciliter l'exploitation de Squash Orchestrator au sein d'un job Gitlab CI mais travaille dessus. Probablement sous la forme de scripts qui seront déclenchable depuis un job Gitlab CI.

Il est par contre déjà possible de lié un cas de test Squash TM à un test automatisé versionné sur un repository hébergé sur Gitlab. Au moment de déclarer un repository dans Squash TM, il est possible de spécifier la branche du repository à viser.
armour
Messages : 5
Inscription : jeu. janv. 27, 2022 10:42 am

Re: Connexion avec GitLab CI

Message par armour »

Bonjour,

Pouvez-vous me dire si vous continuez de développer l’intégration GitLab ? Sera-t-il possible de lancer des tests sur GitLab-CI au travers de Squash TM.

En lisant votre documentation, l'application Python opentf-agent permet d'interroger Squash Orchestrator pour récupérer les tests à exécuter.
Avez vous un exemple concret, projet sur github ou vidéo YouTube.

Merci.
lmazure
Messages : 3
Inscription : ven. janv. 14, 2022 2:09 pm

Re: Connexion avec GitLab CI

Message par lmazure »

Bonjour,

Comme indiqué par Aubin, l'intégration avec Squash DevOps ne marche pas dans le sens Squash TM → GitLab. Il ne s'agit pas de lancer un pipeline GitLab depuis Squash TM.
Squash DevOps permet d'intégrer dans un pipeline (GitLab ou n'importe quel autre) l'exécution d'un plan de test défini dans Squash TM et d'y remonter les résultats des tests. Libre à vous de définir quand vous voulez déclencher ce pipeline : après chaque commit, lorsque vous taggez une release, tous les jours à minuit…
Pourriez-vous décrire votre besoin fonctionnel ? S'il s'agit de lancer des tests depuis Squash TM, il faut utiliser Squash AUTOM. Ce dernier n'a pas besoin de pipeline de CI/CD.

Contrairement à Jenkins, nous ne ferons de plugin pour GitLab, car ceci ne correspond pas à la philosophie de ce dernier.
Vous pouvez avoir des informations sur l'intégration avec GitLab sur le site de l'OpenTestFactory : https://opentestfactory.org/guides/gitlab-ci.html.

opentf-agent se lance une fois : vous vous placez dans l'environnement de test (par exemple un environnement disposant de Robot Framework et de Cucmber-JVM), vous lancez l'agent en indiquant l'os et les technologies de l'envrionnement (opentf-agent --tags windows,cucumber5,robotframework --host http://127.0.0.1 --token "ey..."), celui-ci se connectera toutes les 5 secondes auprès de l'orchestrateur, ce dernier pourra lui donner à exécuter des tests Robot ou Cucumber.

Cordialement
armour
Messages : 5
Inscription : jeu. janv. 27, 2022 10:42 am

Re: Connexion avec GitLab CI

Message par armour »

Nous sommes actuellement en cours d'intégration dans notre CI mais nous rencontrons un problème avec la version de Python que nécessite opentf. J'ai fait un poste à ce sujet -> https://forum.squashtest.com/viewtopic. ... 038#p14038

J'ai par contre une interrogation, comment est fait le lien entre le workflow (robotframework dans notre cas) lancé à partir du job GitLab et les tests référencé dans les exigences (champ "Référence du test automatisé") ? Si c'est automatique c'est parfait :)
lmazure
Messages : 3
Inscription : ven. janv. 14, 2022 2:09 pm

Re: Connexion avec GitLab CI

Message par lmazure »

Bonjour Arnaud,

1) La liste des tests à exécuter est définie dans le PEaC en y indiquant le plan de test (défini dans Squash TM) que l'on veut exécuter : https://autom-devops-fr.doc.squashtest. ... ns-un-peac

2) Dans Squash TM, chaque test automatisé doit référencer son implémentation : https://autom-devops-fr.doc.squashtest. ... -squash-tm

3) Lorsque le pipeline GitLab est déclenché, l'orchestrateur récupère la liste des tests du plan défini en 1), puis, pour chaque test, demande à l'environnement d'exécution de faire un git clone du repo (si pas déjà fait par un test précédent) et de lancer le script Robot Framework défini en 2).

Cordialement
armour
Messages : 5
Inscription : jeu. janv. 27, 2022 10:42 am

Re: Connexion avec GitLab CI

Message par armour »

Je me permets de revenir sur ce sujet car j'apporte d'autres éléments à mon besoin.

Actuellement j'ai un test dans SquashTM comme ceci:
SquashTM.png
SquashTM.png (98.24 Kio) Consulté 303 fois
et une campagne:
SquashTM-campagne.png
SquashTM-campagne.png (80.42 Kio) Consulté 303 fois
Mon fichier de workflow est le suivant:

Code : Tout sélectionner

metadata:
  name: Robot Framework Example
jobs:
  # Set the job key.  The key is displayed as the job name when
  # a job name is not provided
  non-regression:
    generator: tm.squashtest.org/tm.generator@v1
    with:
      testPlanType: Iteration
      testPlanUuid: 0d4c446d-f0d7-4656-97a2-e2d813ffcaa1
      squashTMUrl: http://squashtest.phedre.fr
      squashTMAutomatedServerLogin: toto
      squashTMAutomatedServerPassword: 12345
Mon objectif est toujours que le job de ma CI GitLab lance le workflow pour valider un test dans SquashTM, la commande exécutée dans le job est la suivante:

Code : Tout sélectionner

opentf-ctl run workflow tests/fiches/squash/workflow.yaml --wait
Actuellement j'ai l'erreur suivante:

Code : Tout sélectionner

$ opentf-ctl run workflow tests/fiches/squash/workflow.yaml --wait
Workflow 192461fe-e8a5-49eb-9a4a-ea9cb5096224 is running.
Workflow Robot Framework Example
[2022-05-04T06:54:44] [job 27d5c2e6-b233-4d27-a5b1-3d8f917be835] Running action non-regression
[] [job ID not available] ERROR: An ExecutionError occurred:
failure.details: Unexpected redirection.
generator.error: Invalid Squash TM test plan query.
Workflow failed.
Avez-vous une idée ou un lien pour m'indiquer la bonne procédure car on s'y perd facilement entre la documentation de Squash et d'OpenTestFactory.
Répondre

Revenir à « GitLab CI »