Connexion avec GitLab CI
Connexion avec GitLab CI
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.
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.
Re: Connexion avec GitLab CI
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 :
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.
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
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.
Re: Connexion avec GitLab CI
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.
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.
Re: Connexion avec GitLab CI
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
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
Re: Connexion avec GitLab CI
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
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

Re: Connexion avec GitLab CI
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
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
Re: Connexion avec GitLab CI
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: et une campagne: Mon fichier de workflow est le suivant:
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:
Actuellement j'ai l'erreur suivante:
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.
Actuellement j'ai un test dans SquashTM comme ceci: et une campagne: 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
Code : Tout sélectionner
opentf-ctl run workflow tests/fiches/squash/workflow.yaml --wait
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.
Re: Connexion avec GitLab CI
Bonjour à tous,
Je suis dans le même cas qu'armour mais pas la même erreur.
J'ai créé un cas de test robotframework avec un "hello world!" :
Aucun soucis d'exécution côté Web UI Squash TM :
Côté client en ligne de commande on le vois bien OK :
Par contre dès que j'essaye de lancer via la ligne de commande, impossible d'avoir quelque chose qui fonctionne :
Tous les identifiants et token sont correcte car j'arrive à curl des infos ou mêmes get des infos via la ligne de commande.
Également l'erreur n'est pas parlante et je ne trouve aucun moyen de passer la ligne de commande en mode debug ou verbose pour en savoir plus.
Voici le fichier de config utilisé :
Le fichier de workflow.yml, qui provient de votre répo gitlab :
Au niveau des plugins installés :
Version de Squash TM : 4.0.2.RELEASE
L'idée étant d'utiliser via Gitlab-ci l’exécution des tests côtés Squash.
Je monte un PoC pour un client afin de savoir si on est fonctionnel avant, bien sûr, d'acheter une licence.
D'avance merci de votre aide, ou de nous apporter une doc fonctionnelle pour Gitlab (ou même juste en ligne de commande ou curl).
Bonne journée.
Cordialement,
---
DR
Je suis dans le même cas qu'armour mais pas la même erreur.
J'ai créé un cas de test robotframework avec un "hello world!" :
Code : Tout sélectionner
*** Test Cases ***
My First Robot Test
Log To Console Hello Robot World!
Code : Tout sélectionner
root@squashtm-pod:/# opentf-ctl get workflows --opentfconfig=config --token=${TOKEN}
WORKFLOW_ID,STATUS,NAME
9ea8fdc0-195a-48cc-a21c-bbbd9a9438a3,DONE,Workflow for Squash TM Suite with id 8ad8808283ebaa430183fab275af0007
Code : Tout sélectionner
$ opentf-ctl run workflow wf.yml --opentfconfig=config --token=${TOKEN} --wait
Workflow 22033099-2d42-4cce-ad9d-4a3e100616f7 is running.
Workflow Robot Framework Example
(running in namespace 'default')
[2022-10-24T13:10:00] [job 5fe7736b-40e8-4585-b95b-6cbc9c6122e6] Running action non-regression
[] [job ID not available] ERROR: An ExecutionError occurred:
failure.details: HTTP 403 Forbidden
generator.error: Invalid Squash TM test plan query.
Workflow failed.
$ opentf-ctl get workflows --opentfconfig=config --token=${TOKEN}
WORKFLOW_ID,STATUS,NAME
22033099-2d42-4cce-ad9d-4a3e100616f7,FAILED,Robot Framework Example
Également l'erreur n'est pas parlante et je ne trouve aucun moyen de passer la ligne de commande en mode debug ou verbose pour en savoir plus.
Voici le fichier de config utilisé :
Code : Tout sélectionner
apiVersion: opentestfactory.org/v1alpha1
contexts:
- context:
orchestrator: my_orchestrator
user: admin
name: my_orchestrator
current-context: my_orchestrator
kind: CtlConfig
orchestrators:
- name: my_orchestrator
orchestrator:
insecure-skip-tls-verify: true
ports:
agentchannel: 24368
eventbus: 38368
killswitch: 7776
observer: 7775
receptionist: 7774
server: http://10.242.4.11:8080/
users:
- name: admin
user:
token: xxxx
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: 589cd719-5387-4809-8a44-d97985124503
#testPlanUuid: ebda1ce1-a91a-47ff-abfd-2b891d4c2ccf
#testPlanUuid: 7ef1ba15-428d-4231-96d4-2dea2e7a4760
testPlanUuid: 286aea7a-2ff1-45fa-8faa-c6d38e00e677
squashTMUrl: http://10.242.4.11:8080/squash
squashTMAutomatedServerLogin: admin
squashTMAutomatedServerPassword: admin
Au niveau des plugins installés :
Code : Tout sélectionner
org.eclipse.jgit-5.1.2.201810061102-r.jar
plugin.api.rest.core-4.0.0.RELEASE.jar
plugin.api.rest.services-4.0.0.RELEASE.jar
plugin.bugtracker.mantisrest-4.0.1.RELEASE.jar
plugin.requirement.xsquash4gitlab-4.0.1.RELEASE.jar
plugin.requirement.xsquash4jira-4.0.0.RELEASE.jar
plugin.scm.git-4.0.0.RELEASE.jar
plugin.testautomation.squashautom.community-4.0.1.RELEASE.jar
report.books.requirements.editable-4.0.0.RELEASE.jar
report.books.testcases.editable-4.0.0.RELEASE.jar
report.qualitativecoverage-4.0.0.RELEASE.jar
squash-tm-gitlab-bt-connector-4.0.1.RELEASE.jar
squash.tm.rest.result.publisher.community-4.0.0.RELEASE.jar
squash.tm.rest.test.plan.retriever.community-4.0.0.RELEASE.jar
L'idée étant d'utiliser via Gitlab-ci l’exécution des tests côtés Squash.
Je monte un PoC pour un client afin de savoir si on est fonctionnel avant, bien sûr, d'acheter une licence.
D'avance merci de votre aide, ou de nous apporter une doc fonctionnelle pour Gitlab (ou même juste en ligne de commande ou curl).
Bonne journée.
Cordialement,
---
DR
Re: Connexion avec GitLab CI
Bonjour,
J'observe dans votre Peac les données suivantes:
S'agit-il bien ici des identifiants de l'utilisateur technique (utilisateur spécifique appartenant au groupe "Serveur d'automatisation des tests" dans Squash TM) ?
Pour exécuter les tests automatisés depuis un pipeline, vous devez impérativement créer cet utilisateur dans Squash TM et ce sont ses identifiants qui doivent être renseignés dans le PEAC. L'erreur que vous obtenez semble nous indiquer que ce n'est pas le cas.
Vous trouverez ici la documentation relative à la création de cet utilisateur technique: https://tm-fr.doc.squashtest.com/latest ... utomatisee
Lucie
J'observe dans votre Peac les données suivantes:
Code : Tout sélectionner
squashTMAutomatedServerLogin: admin
squashTMAutomatedServerPassword: admin
Pour exécuter les tests automatisés depuis un pipeline, vous devez impérativement créer cet utilisateur dans Squash TM et ce sont ses identifiants qui doivent être renseignés dans le PEAC. L'erreur que vous obtenez semble nous indiquer que ce n'est pas le cas.
Vous trouverez ici la documentation relative à la création de cet utilisateur technique: https://tm-fr.doc.squashtest.com/latest ... utomatisee
Lucie
Re: Connexion avec GitLab CI
Bonjour Lucie,
Merci énormément pour la réponse et pour le lien de la doc, c'est parfait :
Merci beaucoup.
Excellente journée.
---
DR
Merci énormément pour la réponse et pour le lien de la doc, c'est parfait :
Code : Tout sélectionner
root@squashtm-pod:/# opentf-ctl run workflow wf.yml --opentfconfig=config --token=${TOKEN} --wait
Workflow a1f231db-c785-4ccd-8ecb-306b283f1796 is running.
Workflow Robot Framework Example
(running in namespace 'default')
[2022-10-25T07:22:24] [job 6bc84520-830a-49f6-a98a-d34f0d933d2a] Running action non-regression
[2022-10-25T07:22:24] [job e6117075-994e-478b-aa9f-526854ed549b] Requesting execution environment providing ['robotframework'] in namespace 'default' for job 'squashTMJob-0'
[2022-10-25T07:22:43] [job e6117075-994e-478b-aa9f-526854ed549b] Cloning into 'intranet'...
[2022-10-25T07:22:43] [job e6117075-994e-478b-aa9f-526854ed549b] warning: redirecting to https://gitlab.com/ramsaysante/intranet.git/
[2022-10-25T07:22:46] [job e6117075-994e-478b-aa9f-526854ed549b] ==============================================================================
[2022-10-25T07:22:46] [job e6117075-994e-478b-aa9f-526854ed549b] 7 Testdr
[2022-10-25T07:22:46] [job e6117075-994e-478b-aa9f-526854ed549b] ==============================================================================
[2022-10-25T07:22:46] [job e6117075-994e-478b-aa9f-526854ed549b] My First Robot Test Hello Robot World!
[2022-10-25T07:22:46] [job e6117075-994e-478b-aa9f-526854ed549b] | PASS |
[2022-10-25T07:22:46] [job e6117075-994e-478b-aa9f-526854ed549b] ------------------------------------------------------------------------------
[2022-10-25T07:22:46] [job e6117075-994e-478b-aa9f-526854ed549b] 7 Testdr | PASS |
[2022-10-25T07:22:46] [job e6117075-994e-478b-aa9f-526854ed549b] 1 test, 1 passed, 0 failed
[2022-10-25T07:22:46] [job e6117075-994e-478b-aa9f-526854ed549b] ==============================================================================
[2022-10-25T07:22:46] [job e6117075-994e-478b-aa9f-526854ed549b] Output: /home/agent/e6117075-994e-478b-aa9f-526854ed549b/output.xml
[2022-10-25T07:22:46] [job e6117075-994e-478b-aa9f-526854ed549b] Log: /home/agent/e6117075-994e-478b-aa9f-526854ed549b/log.html
[2022-10-25T07:22:46] [job e6117075-994e-478b-aa9f-526854ed549b] Report: /home/agent/e6117075-994e-478b-aa9f-526854ed549b/report.html
[2022-10-25T07:22:47] [job e6117075-994e-478b-aa9f-526854ed549b] find: ‘browser/screenshot’: No such file or directory
[2022-10-25T07:22:47] [job e6117075-994e-478b-aa9f-526854ed549b] find: ‘browser/screenshot’: No such file or directory
[2022-10-25T07:22:48] [job e6117075-994e-478b-aa9f-526854ed549b] find: ‘browser/screenshot’: No such file or directory
[2022-10-25T07:22:49] [job e6117075-994e-478b-aa9f-526854ed549b] Releasing execution environment for job 'squashTMJob-0'
[2022-10-25T07:22:49] [job e6117075-994e-478b-aa9f-526854ed549b] WARNING,No attachment with Robot reports for Allure or no allure-robotframework in execution host
Workflow completed successfully.
Excellente journée.
---
DR