Robotmk v2 Schnellstart

Step by Step den ersten RobotFramework-Test mit Robotmk v2 in Checkmk integrieren.

Inhaltsverzeichnis

Mit dieser Schritt-fĂŒr-Schritt-Anleitung gelingt Dir der Einstieg in Synthetic Monitoring mit der neuen, in Checkmk 2.3 enthaltenen Version von Robotmk.

Voraussetzungen

  • Windows-VM
    • Internet-Zugriff (zum Download der Installations-Pakete durch rcc)
    • 8 GB RAM
    • 4, besser 8 CPUs (2 CPUs funktionieren nicht - besser gar nicht erst versuchen)
    • Basis-Monitoring durch Checkmk eingerichtet (“Vanilla”-Agent)
  • Checkmk 2.3 auf einem Linux-Server

Das Tool “RCC” wird spĂ€ter vom Checkmk-Agenten zwar automatisch mit installiert (ProgramData/checkmk/agent/bin). Ich finde es aber trotzdem praktisch, eine “eigene” Kopie des Binaries fĂŒr lokale Tests zur Hand zu haben.

Windows-Testclient

Download von RCC

Der Checkmk-Agent, den wir gleich zusammen mit dem Scheduler installieren, wird das rcc.exe-Binary mitbringen. Du kannst diesen Schritt hier also ĂŒberspringen, wenn Du den Robot sofort (d.h. ohne vorherigen Test) in Checkmk integrieren willst.
Ich habe mir angewöhnt, dafĂŒr ein bin-Verzeichnis im User-Profil anzulegen und das Binary dort abzulegen (z.B. c:\Users\simonmeggle\bin\rcc.exe).

FĂŒr einen vorherigen Test oder aber die Einrichtung eines Entwicklungs-Hosts musst Du Dir das RCC-Binary selbst besorgen. Lade es hier herunter (aktuell v17.18) und speichere es an einem Ort Deiner Wahl. Ich habe mir angewöhnt, ein Verzeichnis bin im User-Profil anzulegen: c:\Users\simonmeggle\bin\rcc.exe

FĂŒge diesen Ordner nun der User-Umgebungsvariable %PATH% hinzu:

HinzufĂŒgen des RCC-Pfades zur User-Variable `%PATH%`

Öffne eine neue CMD und teste, ob Du rcc nun von einem beliebigen Ort ausfĂŒhren kannst:

Erster Aufruf von RCC

Download des Minimal-Tests

Nun ist es an der Zeit, das Repo mit der Robot-Suite herunterzuladen, die wir in Checkmk integrieren wollen.

Das Repository https://github.com/elabit/robotmk-examples habe ich extra fĂŒr Beispiel-Suites angelegt. Speichere es am Besten in Deinen Bookmarks.

Die Erstellung des Environments fĂŒr den Web-Test web/cmk_synthetic_web benötigt einige Minuten (Python-Packages, NodeJS, …).
Falls Du ein absolutes Minimal-Beispiel starten möchtest, kannst Du aus dem Demo-Repo alternativ den Robot minimal verwenden.
In diesem Fall wird außer Robot Framework nichts weiter installiert.

Entzippe die Datei master.zip und speichere den Unterordner web/cmk_synthetic_web im Ordner C:\robots\ ab. Dieser Ordner dient als sog. Basisverzeichnis fĂŒr alle Robot-Suites.

Speicherort des neuen Robots

AusfĂŒhren des Robots mit RCC

Hier noch der Hinweis, dass wir bisher keinerlei Software installiert haben. Gleich schlÀgt die Stunde von RCC!

Öffne eine CMD und wechsle in den eben kopierten Ordner C:\robots\cmk_synthetic_web. Nun folgen ein paar Kommandos, die ich genauer erklĂ€re, denn sie sind wichtig zum VerstĂ€ndnis:

  • where python: Haben wir Python zur VerfĂŒgung?
    Das Kommando where ist das Äquivalent zum Linux-Befehl which und versucht, das als Argument ĂŒbergebene Befehl ĂŒber die %PATH%-Variable zu finden.
    Die %PATH-Variable% besteht in der Regel aus einer ganzen Reihe von Suchpfaden, die mit Semikolon voneinander getrennt sind. In genau dieser Reihenfolge der Pfade sucht Windows nach dem angegebenen Programm. Mit diesem Test möchte ich herausfinden, ob auf dem System zufÀllig schon Python installiert ist - und wenn ja, wo.
    Auf Deinem System wird vermutlich ĂŒberhaupt keine Ausgabe kommen. Auf dem im Video gezeigten Windows wird lediglich “pyenv” angezeigt. (Das mĂŒssen wir nicht weiter vertiefen - es ist kein Python-Interpreter vorhanden, basta.)
  • rcc task shell: Der schnellste Weg in ein RCC-Environment.
    Dieser Befehl startet rcc mit der Anweisung, im aktuellen Verzeichnis nach der Datei robot.yaml zu suchen. Hiervon interessiert rcc nur eine einzige Zeile: nÀmlich die, welche auf die Datei conda.yaml (gewöhnlich im gleichen Verzeichnis) verweist.
    Wenn rcc sie findet, beginnt das Tool nun, ein komplett isoliertes Environment aufzubauen; darin ist alles, was unser Web-Test benötigt: Python (+Packages), NodeJS (+Packages), sowie dreierlei Webbrowser (Firefox, Chromium, Webkit).
  • where python: Diesmal erhalten wir von dem Kommando den Pfad zum Python-Interpreter im neu erstellten Environment zurĂŒck.
  • where robot: Auch NodeJS ist installiert und wird ĂŒber %PATH% gefunden. (Ist das nicht cool…? 😎)
  • robot tests.robot: Auch Robot Framework bringt ein Kommandozeilentool namens robot mit, und auch dieses wird im Suchpfad gefunden. Um den Webtest von diesem Environment aus zu starten, reicht es, dem Befehl den Namen der .robot-Datei anzugeben. Damit startet der Webbrowser im Vordergrund und Robot Framework fĂŒhrt eine kurze Google-Suche aus.
Start des Robots mit RCC

Die AusfĂŒhrung dieses Tests incl. des Browser erfolgt komplett auf Basis eines RCC-Environments! Wir haben keinerlei Software vorher installiert!

Dieser Abschnitt hat den Beweis erbracht: der Robot kann ĂŒber RCC gestartet werden. ✓

Im nÀchsten Abschnitt wenden wir uns nun der Integration in Checkmk zu.


Checkmk-Server

Auf dem Checkmk-Server (v2.3) ist bisher nicht viel passiert: der Windows-Host wird aktuell nur mit einem Vanilla-CMK-Agent ĂŒberwacht:

Windows-Host in Checkmk

Konfigurieren der Bakery

Der Robotmk-Scheduler, der auf dem Windows-Client spĂ€ter die Robot-Tests ausfĂŒhren wird, kann komplett ĂŒber die Bakery-Regel “Robotmk Scheduler (Windows)” konfiguriert werden:

Alle Robotmk-Regeln werden am leichtesten ĂŒber das Suchwort 'robot' gefunden.
Die Bakery-Rule fĂŒr den Robotmk Scheduler.

ErklÀrungen / Werte der einzelnen Felder:

NoBeschreibungWert
1.Das Basisverzeichnis, in dem wir die Beispielsuite abgelegt hatten.C:\robots
2.Die erste (und einzige) parallele AusfĂŒhrungsgruppe.
3.Je AusfĂŒhrungsgruppe sind sequenzielle AusfĂŒhrungen von Robot Framework-Suites möglich.
4.AusfĂŒhrungsintervall der Gruppe3
5.Name der zu testenden ApplikationGoogleSearch
6.Der Pfad zur Robot Framework-Suite wird relativ zum Basisverzeichnis angegeben.cmk_synthetic_web\tests.robot
7.Dieser Timeout bestimmt, wie viel Zeit die Suite vom Scheduler zur AusfĂŒhrung bekommt. Danach wird sie terminiert.1
8.Relative Pfadangabe (wie 6.) zur robot.yaml (zentrale Config-Datei fĂŒr RCC, enthĂ€lt Verweis zur `conda.yaml`)
9.Timeout zum Bauen des Environments.10

Ganz unten wird die Regel auf den Host windows beschrÀnkt:

Die Condition schrÀnkt die Regel auf nur einen Host ein.

Danach die Regel speichern.

Agenten backen

Nun in die Agent Bakery wechseln…

Das 'related'-MenĂŒ bietet eine praktische AbkĂŒrzung zur Bakery.

…und einen neuen Installationsagenten backen:

Backen eines neuen Agenten.

Sobald die Erzeugung des Agenten-Installers fertig ist, siehst Du eine neue Zeile, in welcher ganz rechts der Host steht, auf den Du die Regel beschrÀnkt hast (windows). Lade von hier das MSI-Paket herunter.

Download MSI-Installer

Discovery der Services

Der erste Service, der unmittelbar nach dem Deployment discovert werden kann ist der “Scheduler Status” service:

Scheduler Status Service

Er ĂŒberwacht den Robotmk Scheduler, der als Agent “Extension” dauerhaft neben dem Agenten herlĂ€uft.

Der Scheduler durchlÀuft nach dem Start des Agenten zwei Phasen:

  • Phase 1: Sequenzielles Bauen aller RCC Environments
  • Phase 2: Scheduling der Plans (=Konfigurierte Robot Framework-Suites) im konfigurierten Intervall.

Bis das Environment im Hintergrund vom Scheduler gebaut wurde, können ein paar Minuten vergehen.
Wann es beendet ist, siehst Du daran, dass sich der Output des Scheduler Services Àndert:

Der Scheduler hat das Environment gebaut.

Nachdem die erste AusfĂŒhrung der Suite im Hintergrund (=“headless”) erfolgt ist, lassen sich zwei weitere Services discovern:

Plan- u. TestService
  • Plan Service: Genau wieder Scheduler Status ein an Administratoren gerichteter Service, der z.B. anschlĂ€gt, wenn Ergebnisse zu alt sind (=die Suite nicht mehr ausgefĂŒhrt wird)
  • Test Service: Gerichtet an Applikationsverantwortliche. ReprĂ€sentiert den Zustand (PASS/FAIL) des Tests aus Sicht von Robot Framework.

Checkliste

Diese Checkliste fasst noch einmal alle Schritte in KĂŒrze zusammen:

  • ✓ Herunterladen und Entpacken des Beispiel-Repos
  • ✓ Speichern der Robot-Suite im Basisverzeichnis C:\robots\
  • ✓ Die Bakery-Regel in Checkmk benötigt mindestens diese Einstellungen:
    • ✓ Basisverzeichnis (z.B. C:\robots\)
    • ✓ AusfĂŒhrungsintervall der Gruppe
    • ✓ Application Name
    • ✓ (relativer) Pfad zum Suite-File/Verzeichnis
    • ✓ (relativer) Pfad zur robot.yaml
  • ✓ Backen / Deployen / Installieren des Agenten
  • ✓ Discovery

(Wenn alles geklappt hat, wĂ€re das doch ein toller Zeitpunkt, das Projekt auf Github mit einem Stern ⭐ zu versehen, oder? 😄 )
Star


Zusammenfassung

Mit diesen paar Schritten hast Du Deinen ersten Robot Framework-basierten Web-Test in Checkmk integriert.
Hier ein paar Tips fĂŒr Deine nĂ€chsten Schritte:

  • Erkunde die Monitoring-Regel “Robotmk tests”, mit der Du den discoverten Test und auch die im Test enthaltenen Keywords auf ihre Laufzeit ĂŒberwachen kannst.
  • Installiere und öffne Visual Studio Code. Starte eine RCC-Shell im Suite-Verzeichnis und fĂŒhre code . aus. Das bringt öffnet die IDE direkt im RCC-Environment. Hier kannst Du die Robot-Suite ansehen und ein bisschen experimentieren.