Validacions

Josep María Guiu Baiget
Attachments
ComponentsValidacio.png (42428 bytes)
There is a newer version of this page. You can find it here.

Validacions de la Plataforma

.. _Robot Framework: https://docs.robotframework.org/

.. _Robot Users Guide: https://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html

La plataforma del Gestor de Processos realitza una validació pel correcte funcionament de tots els elements que la componen.

Inicialment, per realitzar les validacions s'utilitzava el programari pySimulaGestorProcessos.py, gran part de les validacions es poden realitzar amb aquesta eina.

Per donar més complexitat a les proves a realitzar, es va focalitzar els esforços en utilitzar una eina més dinàmica, eficient i flexible. Finalment l'eina escollida va estar Robot Framework_.

Per obtindre més informació de com utilitzar Robot Framework consultar Robot Users Guide_.

Per la plataforma del Gestor de Processos s'han definit proves per les següents seccions:

  • Manteniments. Proves relatives als comandaments de manteniment de la plataforma.
  • Seguretat. Proves relatives a la seguretat aplicada a cada element que forma part de la plataforma i específiques pels casos especials.
  • Comandaments. Proves relatives a l'execució de comandaments de sistema operatius en diferents Agents de la plataforma revisant la seguretat.
  • Processos. Execució de diferents processos en diferents Agents comprovant els permisos, les dependències i la seguretat.
  • Procediments. Execució de procediments segons els permisos i les dependències establerts.
  • Programació. Comprovació de l'execució programada segons els paràmetres definits.
  • Projectes. Desplegaments de projectes amb les diferents opcions existents.
  • Scripts. Execució de diferents scripts des de processos, procediments i programacions, tenint en consideració els permisos i la seguretat.
  • Arxius. Execució de comandaments d'arxius entre diferents servidors com copiar, moure, canvi de permisos i propietaris, així com la sincronització de directoris entre diferents servidors.
  • Encriptació. Activació de l'encriptació de les comunicacions, canvi de claus i desactivació de les claus, tant en l'àmbit del servei, de l'agent d'execució, dels administradors i els executors de comandaments.
  • Especials. Execució de processos, procediments i programacions en agents alternatius.
  • Reinici. Execució de reinici del servei com a agents d'execució en comandaments directes, o executant processos, procediments i programacions. En aquestes proves les finalitzacions són amb reinici d'agents i del mateix servei.

Per realitzar aquestes validacions, es pot utilitzar el programari valida.sh, qui posar en marxa una plataforma de Gestor de Processos, duu a terme les proves de totes les seccions i finalitza l'execució de la plataforma.

El procés valida.sh realitza les següents accions automàticament:

  • Defineix les variables d'entorn requerides pel funcionament.

    • GP_DIRECTORI_PROGRAMARI = Directori on es troba el programari de la plataforma del Gestor de Processos. Per defecte ./programari/
    • GP_DIRECTORI_VALIDACIO = Directori on s'han de crear els arxius de logs, processos, proves, etc. Per defecte ~/tmp/gestorProcessos
    • GP_DIRECTORI_DADES = Directori on es troben les fonts de dades de prova per realitzar les validacions. Per defecte ${GP_DIRECTORI_VALIDACIO}/arxius
  • Executa el procés Robot per posar en marxa la plataforma de Gestor de Processos.

    • Procés del Servei del Gestor de Processos, pyProcessosServer.py.
    • Tres agents d'execució per executar els comandaments, processos, procediments i programari definit, pyProcessos.py.
    • Un procés de simulació del servei de correu electrònic, pySimulaCorreu.py.
    • Diferents connexions d'administrador per enviar els comandaments de configuració, amb diferents rols d'administrador, pyAdministra.py.
    • Diverses connexions per enviar els comandaments, processos, procediments a executar, amb diferents rols d'execució, pyExecuta.py.
    • Diferents usuaris amb diferents rols per combinar amb connexions d'administrador o amb connexions d'execució.
    • Diferents grups per agrupar usuaris.
    • Realitza les provés de totes les sessions.
  • Finalitza la plataforma de Gestor de Processos.

El procés valida.sh configura Robot per generar diferents arxius de resultats per les accions executades, aquests arxius són:

  • Procés d'instal·lació: log_instal·lar.html i output_instal·lar.xml.
  • Procés de validació: log.html i output.xml.
  • Procés de finalització de la plataforma: log_finalitzar.html i output_finalitzar.xml.

Totes les validacions es poden realitzar tant a un servidor independent com a un servidor on estigui en execució la plataforma de Gestor de Processos donat que s'utilitzen ports de serveis independents dels establerts per defecte.

Execució Manual de les Validacions

Totes les validacions es poden executar de forma individual utilitzant Robot Framework.

Per fer les proves, primerament s'han de definir les següents variables d'entorn són:

- **GP_DIRECTORI_PROGRAMARI** = Directori on es troba el programari de la plataforma del Gestor de Processos. Per defecte ./programari/
- **GP_DIRECTORI_VALIDACIO** = Directori on s'han de crear els arxius de logs, processos, proves, etc. Per defecte ~/tmp/gestorProcessos
- **GP_DIRECTORI_DADES** = Directori on es troben les fonts de dades de prova per realitzar les validacions. Per defecte ${GP_DIRECTORI_VALIDACIO}/arxius

És necessari que la variable de sistema per Python **PYTHONPATH**, tingui inclòs el contingut de la variable **GP_DIRECTORI_PROGRAMARI**; és requerit en una execució manual, es pot executar el comandament **export PYTHONPATH=${PYTHONPATH}:${GP_DIRECTORI_PROGRAMARI}**

Visió funcional dels components del procés de validació.

Els arxius que componen les proves de validacions en Robot Framework per les seccions definides, són els següents:

  • constants.resource. Correspon a les variables necessàries per a tots els mòduls executables de Robot Framework.
  • keywords.resource. Conjunt de crides que utilitzen els mòduls executables de Robot Framework i realitza l'enllaç amb la llibreriaRobot.py per executar processos.
  • gestorProcessos.robot. Mòdul que realitza les següents funcions a través de paràmetres:

  • Arrancar el programari de la plataforma del Gestor de Processos, el servei, tres agents d'execució i el simulador de correu electrònic.

  • Parada de la plataforma del Gestor de Processos.
  • Instal·lació i registre de la configuració de la plataforma del Gestor de Processos. Els elements a configurar són:

    • Registre del procés del servei pyProcessosServer.py.
    • Registre dels agents d'execució pyProcessos.py.
    • Registre de l'administrador per generar la configuració pyAdministra.py.
    • Configurar els elements bàsics per la realització de proves:

      • Configuració de diferents administradors, connexions d'execució, àlies i destinataris de notificacions.
      • Configuració d'usuaris amb diferents rols, a més de grups.
      • Configuració del calendari amb els dies festius, perfils de sincronització entre agents.
      • Configuració de processos, procediments, programació, scripts.
    • Desplegar els arxius necessaris per ser utilitzats pel mòdul d'arxius.robot.

    • Una opció en arrancar el procés per activar l'opció de depuració (--debug).
  • arxius.resource. Definició de totes les variables requerides per executar el mòdul d'arxius.robot amb les proves relatius als arxius.

  • seguretat.robot. Validacions de la seguretat de connexió des del servidor a un agent, d'un administrador al servei, d'una connexió al servei, comprovació del funcionament de les direccions dinàmiques, connexions que requereixen un usuari o grup.
  • encriptacio.robot. Validació de la generació i distribució de claus d'encriptació per cadascun dels elements.

  • Generació i distribució de claus per la part de servei. Es duen a terme proves de petició d'execució i execució.

  • Generació i distribució de claus a un agent d'execució. S'executen proves a tots els agents d'execució.
  • Generació i distribució de claus a un administrador. S'executen proves de comunicació amb tasques administratives.
  • Generació i distribució de claus a una connexió d'execució. S'executen proves de comunicació des de la connexió d'execució.

  • comandaments.robot. Valida execucions d'instruccions en agents d'execució en diferents estats.

  • especials.robot. Canvis de configuració d'un port d'un agent d'execució.
  • manteniments.robot.
  • processos.robot. Comprovació de l'execució de processos amb diferents opcions de configuració.
  • procediments.robot. Comprovació de l'execució de procediments amb diferents opcions de configuració.
  • programacio.robot. Comprovació de l'execució de programacions amb diferents opcions de configuració.
  • scripts.robot. Execució de diferents scripts des de processos, procediments i programacions.
  • arxius.robot. Diferents proves per llistar arxius, directoris, estat directori, estat arxiu, copia i mou arxius, esborra arxius i sincronitza directoris entre servidors.
  • projectes.robot. Validació de les opcions per gestionar projectes, inicialitzar, desplegar, actualitzar, llistar i veure l'estat.
  • reinici.robot. Comprovació de la finalització de processos, agents d'execució amb l'opció de reinici, reinici de tota la plataforma.

Per realitzar la instal·lació de la plataforma del Gestor de Processos i configurar el joc de proves, executar:

    *robot --variable accio:instal·lar gestorProcessos.robot*

Per finalitzar la plataforma del Gestor de Processos, executar:

    *robot --variable accio:finalitzar gestorProcessos.robot*

Per iniciar lal plataforma del Gestor de Processos per continuar les proves, executar:

    *robot --variable accio:iniciar gestorProcessos.robot*

Per realitzar una validació d'una secció, executarem el seu arxiu identificatiu; per exemple, la secció de seguretat:

    *robot seguretat.robot*

Per validar diferents seccions a la vegada, executarem tots els arxius identificatius:

    *robot seguretat.robot comandaments.robot processos.robot*

Els resultat de les validacions són guardades en: log.html i output.xml.

La comunicació entre Robot Frameword i la plataforma del Gestor de Processos es realitza amb la llibreria llibreriaRobot.py.

Següent: Programari Executable
Anterior: Configuració