Marc d’Automatització de Testing (MAT)
El Marc d’Automatització de Testing (MAT) és un framework especialitzat en l’automatització de proves, dissenyat per a integrar-se fàcilment amb els fluxos de CI/CD tant del SIC+ com del SIC 3.0. En SIC 3.0 apliquen pràcticament els mateixos principis i elements que en SIC+: també s’utilitzarà un fitxer release.yaml per a definir els test i els components de la release i també s’haurà de disposar d’un repositori en Gitlab per a cada tipus de test. Aquests repositoris en SIC+ s’aprovisionen automàticament però en SIC 3.0 caldrà crear-los manualment dins del grup al qual pertany l’aplicació. Es recomana, per tant, revisar en primer lloc la documentació per a la integració amb MAT relativa a SIC+ disponible en el següent enllaç: MAT Orquestrador
A continuació es descriuen les principals diferències a tenir en compte en aplicacions que es vagin a desplegar en SIC 3.0 i que es resumeixen en els següents punts:
- Creació dels repositoris per emmagatzemar el codi font dels tests en SIC 3.0
- Nova estructura per al fitxer ACA.yml
- Nova pipeline d’execució de tests
- Procés d’execució de tests en MAT
Creació dels repositoris de tests en SIC 3.0
Els automatismes creats per a l’execució automàtica dels test requereixen que cadascun d’ells tingui el seu codi allotjat en un projecte de Gitlab pertanyent al mateix codi d’aplicació. Aquest repositori haurà de ser creat manualment i es pot inicialitzar incorporant la plantilla més adequada de les que s’indiquen en MAT Orquestrador
En el repositori que es vagi a dedicar als test funcionals, caldrà incorporar el fitxer release.yaml que s’indica en el document anterior. Més endavant, aquests repositoris creats seran referenciats en el fitxer release.yaml per tal que desde el MAT es pugui connectar i descarregar el codi dels test a executar.
Nova estructura per al fitxer ACA.yml
En el fitxer ACA.yml de l’aplicació cal incloure una nova secció “release” per a poder informar al SIC 3.0 la ubicació del fitxer release.yml referenciat anteriorment. Exemple:
version: 2.0.0
info:
description: Descripció
version: x.y.z
global-env:
- ...
release:
version: 1.0.0
test-repository: https://git.intranet.gencat.cat/0192/<functional test repo>
release-file: release.yml
[...]
En la secció “release” s’informa quina és la URL del repositori on se situa el fitxer release.yaml abans indicat. Els valors a informar seran:
version: conté la versió que es desplegarà. Identifica la versió de tota la release, és a dir, inclou tots els components dependents. test-repository: indica la URL de Gitlab on s’ubica el fitxer release.yaml release-file: s’indica quin és el nom del fitxer on s’emmagatzema la informació de release dins del repositori anterior. Normalment serà release.yaml
Per a ampliar informació poden dirigir-se a la guia de com construir el fitxer ACA.yml
Nova pipeline d’execució de tests
Dins del conjunt de pipelines disponibles per a cada aplicació, s’ha afegit al subgrup “Advanced” un nou pipeline EXECUTE-TEST.
Aquest nou pipeline permet que es pugui llançar de manera individual, i sota demanda, un test específic sobre un determinat entorn i utilitzant una URL que es proveirà en temps d’execució.
D’igual forma que quan s’executen els test com a part del desplegament, es validarà que els components de la release esten en la versió indicada en el fitxer release.yml.
El job, en ser invocat, mostrarà selectors per a indicar test, entorn i URL sobre la qual provar:

Procés d’execució de tests en MAT
Per a començar a executar els tests al MAT en un pipeline de SIC 3.0, es requereix dur a terme les següents tasques:
- Creació del repositori per a situar el fitxer release.yml. Aquest repositori ha de crear-se en el mateix grup de Gitlab en el qual se situï l’aplicació sobre la qual s’executaran els test. Aquesta tasca la duran a terme els desenvolupadors de l’aplicació i la recomanació seria utilitzar el mateix repositori que es vagi a utilitzar per a emmagatzemar els test funcionals.
- Creació de la resta de repositoris per als altres test aplicables.
- Creació del fitxer release.yml amb la informació dels repositoris dels tests, els components de l’aplicació i altra informació necessària.
- Sol·licitar via tiquet l’activació dels test funcionals. Una vegada s’activin els test, aquests s’executaran després del desplegament a l’entorn de preproducció.
Una vegada es disposi de tot el necessari i s’hagi activat la integració amb MAT en la pipeline, els tests s’executaran com a pas addicional després del desplegament de l’aplicació a l’entorn de preproducció. Les accions que executarà la pipeline són les següents:
- Validació de l’estructura del fitxer release.yml
- Validació que els components de la release estan en la versió indicada en aquest fitxer.
- Si tot l’anterior és correcte, executa, de manera seqüencial, els tests que s’hagin especificat en el fitxer de release.
- Si algun dels passos anteriors és erroni, es marcarà el job com a inestable però continuarà el desplegament.
- Si algun dels test falla, igualment, es marcarà el job com a inestable.