ROBOTMK

ROBOT FRAMEWORK /
checkMK
integration

Integriere die Ergebnisse von Robot Framework Tests in das Monitoring-System checkMK

RobotMK sorgt dafür, dass die Ergebnisse von End2End-Tests mit Robot Framework in das Monitoring-System CheckMK integriert werden können. Robot testet vollautomatisch Webseiten und Applikationen und erlaubt die Verwendung von über 40 Bibliotheken, u.a. für 

  • Selenium
  • SikuliX
  • AutoIT
  • SAP
  • u.v.m.

RobotMK befindet sich aktuell in der Entwicklung wird unter der GPLv3 veröffentlicht.

News über die Entwicklung von RobotMK, neue Features und Tutorials rund um das Thema CheckMK und Robot werden über den Newsletter bekanntgegeben:

Was ist RobotMK?

In RobotMK stecken die Namen der beiden Tools RobotFramework und CheckMK (nähere Details siehe unten).


Mit Robot Framework lassen sich Programme, Webseiten (und noch vieles mehr...) aus der Perspektive des Anwenders automatisiert testen (sog. End2End-Tests, auch "Enduser-Experience" genannt). 

Software-Entwickler schätzen diese Art von Tests, denn so lässt sich eine Applikation bspw. zügig in allen Facetten und Variationen testen, bevor sie in einer neuen Version freigegeben wird.


Einen großen Mehrwert bringt, solche Tests auch im Monitoring-System CheckMK zu haben und kontinuierlich messen zu können...

  • ...ob der Login ins CRM-System funktioniert - und wie lange er dauert
  • ...die Suchfunktion im SAP/Warenwirtschaftssystem nach zufällig ausgewählten Artikelnummern funktioniert 
  • ...wie performant der Bestellprozess im Webshop arbeitet
  • ...usw...

Bislang gab es diese Möglichkeit nicht. RobotMK schlägt nun diese Brücke und erlaubt es, die Ergebnisse von Robot-Tests in das Monitoring-System CheckMK einzubinden.

RobotMK verbindet:

Open-Source Test Framework

Robot Framework

Robot Framework ist ein generisches Framework zur Durchführung automatisierter Softwaretests. Es entstand 2005 bei NSN (der damaligen Nokia Siemens Networks) im Rahmen einer Masterarbeit und wurde 2008 unter der Apache-Lizenz als Open-Source veröffentlicht. Das besondere an Robot ist seine Erweiterbarkeit über Python-Bibliotheken. Wer unter den über 40 bestehenden Libraries für Selenium, SikuliX, AutoIT, SAP, usw. noch nicht das Passende gefunden hat, kann Robot mit eigenem Code beliebig erweitern. 

Open-Source Monitoring Solution

CheckMK

CheckMK startete im Jahr 2008 als einfaches "Add-On" für das Monitoring-System Nagios, ist inzwischen aber zu einer eigenständigen, umfänglichen Monitoring-Lösung herangewachsen. Mit über 1800 Checks an Board deckt CheckMK eine große Bandbreite an zu überwachender Hard- und Software ab. Die hinter CheckMK stehende tribe29 GmbH aus München bietet das Monitoring-System einerseits als Enterprise-Edition (CEE) an, aber auch als frei verwendbare Open-Source-Version (CRE = Raw Edition).

Features von RobotMK

Aufzeichnung von Laufzeit-Messungen in Performance-Graphen

Welche Elemente eines Robot-Tests (Suites, Tests, Keywords) in CheckMK-Graphen aufgezeichnet werden sollen, lässt sich über ein ausgeklügeltes, patternbasiertes Regelwerk festlegen. Schließlich soll das Ganze ja übersichtlich bleiben.  

Hier kommen die Vorteile der Regel-Vererbung in CheckMK's WATO (Web Administration Tool) zum Tragen: globale Regeln sorgen für Metriken, die immer aufgezeichnet werden sollen; Regeln auf Host- oder Suitebasis sind für die detaillierte Konfiguration zuständig.  Don't repeat yourself.

Alarmierung über Laufzeitveränderungen

In RobotMK stehen die Laufzeiten sämtlicher Robot-Test-Elemente zur Verfügung. 

Auch hier sorgen patternbasierte WATO-Regeln dafür, die Laufzeit-Schwellwerte von Suites, Tests und Keywords sowohl global, als auch ganz individuell auf Suite-Basis zu setzen.

Alarmierung funktionaler Applikations-Störungen

Wenn der Kunde merkt, dass im Webshop einzelne Bilder plötzlich nicht angezeigt werden, ist es eigentlich schon zu spät. 

Robot Framework ist der "automatisierte Anwender": SAP, CRM, Intranet, Website etc. werden kontinuierlich auf ihre Bedienbarkeit hin überprüft. 

Robot-Tests lassen sich über die DataDriver-Library mit dynamischen Parametern aus Datenquellen wie CSV, XLS/XLSX, MS PICT etc. starten, um eine optimale Testabdeckung zu erreichen. 


Reporting

Wie war die Verfügbarkeit aller Kernapplikationen im Unternehmen? 

Über das, was RobotMK an CheckMK liefert, lassen sich aussagekräftige Berichte erstellen. 

Auch zur Überprüfung der Güte und Einhaltung von SLAs externer Schnittstellen sind solche Reports eine wertvolle Hilfe.  


Showroom

Live-Demo: Robot-Test "Anmeldung am CheckMK-Userportal mit falschen Userdaten"

Manchmal sollte auch getestet werden, was nicht eintreten darf!

Dieser Robot-Check testet, ob das CheckMK-Forum wirklich nur gültige Daten zur Anmeldung zulässt und erwartet deshalb nach Eingabe falscher Benutzerdaten eine Fehlermeldung.

Zum Einsatz kommt dabei die Selenium-Library (https://www.selenium.dev/), der Test läuft Browser-unabhängig in Firefox, Chrome, Edge, usw... 

Code-Insight "invalid_logins.robot"

Dieser Screenshot zeigt das Robot-File, welches den obigen Test ausführt. 

Besonders hervorzuheben: 

  • der "Template"-Mechanismus von Robot: das Keyword "Login With Invalid Credentials Should Fail" wird für jeden Testcase mit den entsprechenden Parametern (= Kombinationen aus falschen Anmeldedaten) ausgeführt. 
  • Alle generischen Keywords und Variablen (die auch für andere Tests verwendet werden können) sind in Resource-Files ausgelagert. Das können auch Python-Scripte sein, welche die Testdaten generieren (z.B. aus einer Datenbank, Excel-Tabelle uvm.)
  • Die Schachtelung von Keywords erlaubt es, komplexere Anweisungen/Auswertungen zu abstrahieren. Per output_depth-Regel in WATO lassen sich in CheckMK die unnötigen Details ausblenden. 

Live-Demo: Erfassung der Robot-Ergebnisse in CheckMK

Ergebnisse neuer Tests werden ohne Eingriff in den Client an CheckMK übertragen und über den Service "Check_MK Discovery" gemeldet. Die Inventarisierung integriert den Check in das Monitoring. 


Live-Demo: Alarmierung und Performancedaten

WATO-Regeln legen die Thresholds fest, für welche Suites/Keywords/Tests Alarme für Laufzeitüberschreitungen generiert werden sollen. Eine manuelle Definition von "Steps" (wie z.B. im Test-Framework Sakuli) ist nicht erforderlich, denn jedes Keyword ist für sich gesehen ein "Step", dessen Laufzeit die Summe aller wiederum enthaltenen Keywords ist. 

Ebenfalls per Regel wird festgelegt, welche Performancedaten erzeugt werden sollen. 

Historie

Mein ehemaliger Arbeitgeber Consol in München entschied sich 2018, das von mir 2014 mitbegründete E2E-Testframework Sakuli (eine Kombination aus SikuliX und Sahi) einem kompletten Rewrite zu unterziehen und fortan als Freemium-Produkt (Sakuli v2) anzubieten.

Auf der Suche nach einer Alternative zur kommerziellen Version von Sakuli v2 stieß ich im November 2019 auf Robot Framework. Erstaunlicherweise - immerhin waren CheckMK und Robot nicht erst seit gestern auf dem Markt - war keine Schnittstelle zwischen beiden Tools zu finden. Es schien, als wäre Robot bisher hauptsächlich als Tool für QA- bzw. CI/CD-Testing wahrgenommen worden, jedoch nicht für das kontinuierliche Monitoring von Applikationen. Ich begann mit der Programmierung von RobotMK, um diese Lücke zu schließen.

Im Januar 2020 durfte ich meinen Prototypen von RobotMK auf der "Robocon" in Helsinki vor Fachpublikum präsentieren. Die gute Resonanz auf diesen Vortrag (und auch das an CheckMK gezeigte Interesse, btw.) gab mir den nötigen Schub, weiter an dem Projekt zu arbeiten. 

Robocon 1/2020, Helsinki: "Robot Framework meets CheckMK"

Präsentation des Prototypen von RobotMK, Simon Meggle


Die Vorteile von Robot Framework/RobotMK

Zentrale Kontrolle über WATO

RobotMK wird über einen mächtigen Regelsatz  in der Web-Oberfläche von CheckMK (WATO) konfiguriert.

Flexible Auswertung

RobotMK wertet auch komplex verschachtelte Robot-Ergebnisse aus; die pattern-basierte Reduktion des Outputs auf das Wesentliche sorgt für ein optimales Ergebnis.

Robot spricht

Robot-Keywords lassen sich beliebig kapseln, um interne Vorgänge zu modularisieren -  bei freier Namenswahl. Das Ergebnis: nachvollziehbare Ergebnisse und Meldungen im Monitoring. 

100% kompatibel

RobotMK verlangt keinerlei Anpassung an Robot-Tests. Bestehende Tests lassen sich ohne Eingriff in den Robot-Code in CheckMK integrieren.

Performance-Monitoring

RobotMK überwacht die Laufzeiten ganzer Suites, Tests und Keywords. Das patternbasierte Regelwerk hilft dabei. So lassen sich auch schleichende Performanceveränderungen aufdecken.

Sinnvolle Ergänzung zu CheckMK

Robot-Tests sind die perfekte Ergänzung für detailliertes CheckMK-Monitoring. So behält man den Blick für das "große Ganze".

Viele etablierte Tools in einem

Robot Framework ist das Schweizer Taschenmesser für alle erdenklichen Testmethoden (Web, Bildpattern, Protokoll, ...) und erlaubt es, diese miteinander kombiniert im Test zu verwenden. 

Starke Community

Gut, wenn man aufs richtige Pferd gesetzt hat, falls Hilfe notwendig ist: CheckMK und Robot verfügen über eine weltweite englischsprachige Community

Plattformunabhängig

Eins für alle: Robot Framework funktioniert auf den gängigsten Plattformen: Windows, Linux, MacOS, Android, iOS, ... inclusive der jeweils passenden Test-Bibliotheken (z.B. Auto-IT)

100% Open Source

RobotMK wird - wie auch Robot Framework und CheckMK Raw - als OpenSource-Projekt veröffentlicht. Keine versteckten Kosten, kein Vendor-Lock-In.

Als ich Robot Framework entdeckt hatte, war für mich klar, dass eine Integration für CheckMK programmiert werden muss.

Kein anderes Test-Framework lässt sich so flexibel mit Libraries erweitern wie Robot: alle namhaften Testwerkzeuge wie Auto-IT, Selenium, SikuliX etc. sind bereits mit einer Bibliothek vertreten.

Bei Robot 'codet' man nicht, man 'schreibt'. Der Keyword-Driven-Ansatz kommt Entwicklern und Test-Anwendern gleichermaßen entgegen. 

Simon Meggle (Autor)

FAQ

Was brauche ich, um mit RobotMK starten zu können?

Grundsätzlich ist RobotMK mit Checkmk 1.6.pX kompatibel. In der Raw-Edition ist es lediglich erforderlich, die YML-Steuerdatei für das Checkplugin selbst zu schreiben; diesen Job übernimmt in der Checkmk Enterprise-Edition die sog. Bakery

Was muss ich tun, um Feature/Pull Requests oder Bug reports einzureichen?  

Siehe Contribution-Guide im GitHub-Repository. Dort sind alle relevanten Punkte erklärt. 

Für eine Programmiersprache sehen die Keywords in Robot-Framework eher befremdlich aus. Ich will nicht noch eine Sprache lernen. 

Die Abstrahierung des Programmcodes in Keywords ist ein Kern-Feature von Robot Framework, weil sie dadurch Funktionalitäten unterschiedlichster Test-Technologien gemeinsam verwendbar macht.

Die exzellente Dokumentation und der strikt vorgegeben Aufbau von Robot-Tests machen die Einabeitung vergleichsweise einfach. Für die Nerds bleiben alle Möglichkeiten offen, denn die Keywords lassen sich mit Python-Code programmieren/erweitern und auch entsprechend debuggen.
Mit Robot formt sich Programmiercode zu Werkzeugen, die dann auch von nicht-Programmierern (z.B. QA-Teams) verwendet werden können.

Gibt es eine Aufnahme-Funktion für End2End-Tests? 

Recorder-Funktionalitäten, wie sie gerne auch von kommerziellen End2End-Tools angepriesen werden, sind mit Vorsicht zu genießen. Eine Test-Aufzeichnung ist nur so intelligent wie die jeweilige Absicht dahinter. Das bedeutet: wer click-click-click aufzeichnet, bekommt click-click-click

Ein Login beispielsweise sollte immer auch verifiziert, Webseitenelemente so lokalisiert werden, dass sie auch Änderungen am UX-Design standhalten usw.  End2End-Tests zu implementieren, bedeutet, sich mit dem Verhalten des SUT (System under test) auch auseinandergesetzt zu haben. 

Was wurde aus Sakuli v1? 

Das von Consol 2014 gegründete Open-Source-Testtool "Sakuli" ist offiziell abgekündigt, weil insbesondere das zugrunde liegende Web-Testtool "Sahi" nicht mehr modernen Anforderungen genügte. 

Der Nachfolger von Sakuli ist als kompletter Rewrite in Version 2 erschienen (erst die kostenpflichtige Version erlaubt die Monitoring-Integration). 

Kann ich RobotMK auch in anderen Monitoring-Systemen (Nagios, Naemon, Icinga, Zabbix, Groundworks, Centreon, ...) einsetzen?

RobotMK wurde speziell für CheckMK entwickelt; die vielfältigen Möglichkeiten der Parametrierung, wie sie die WATO-Oberfläche von RobotMK bietet, sind über ein herkömmliches, Nagios-kompatibles Check-Plugin nicht abbildbar. (Eventuell ein Grund mehr, sich mit Checkmk zu beschäftigen...).

Ich habe bisher meine Selenium-Tests in Python geschrieben. Welchen Grund sollte ich haben, damit auf Robot Framework zu wechseln?

Wenn die Tests genau so bleiben und auch nicht in ein Monitoring integriert werden sollen, entsteht durch Robot tatsächlich kein Mehrwert.

Der Aufwand, reine Python-Tests aber in ein Monitoringsystem zu integrieren, sollte nicht unterschätzt werden; vor allem, wenn die Anforderungen im Lauf der Zeit komplexer werden. Man wird sich früher oder später wünschen, das ganze "Framework" für die Integration verschiedener Testmethoden (Web, GUI), Fehlerbehandlung etc. nicht selbst programmieren und warten zu müssen.

Genau hier hat Robot Framework seine Stärke. Und deshalb gibt es RobotMK.

Meine Webapplikation erfordert Interaktion mit dem Desktop. Kann ich Selenium z.B. zusammen mit Sikuli einsetzen? 

Robot-Tests erlauben es, die Libraries im Mischbetrieb zu verwenden. Wenn die Anmeldung an einem Portal z.B. per Smartcard/PIN erfolgt, kann der nicht-Web-Part mit Sikuli überbrückt, der restliche Test mit Selenium fortgeführt werden. 

Muss der Testclient entsperrt bleiben, um End2End-Tests ausführen zu können?

Robot kann die gängigsten Browser im "headless"-Modus starten. Reine Webtests sind damit ohne angemeldeten Benutzer möglich. 

Ist RobotMK auch für kleinere Firmen bzw. IT-Landschaften geeignet? 

Definitiv ja bzw. wird sogar dafür empfohlen.
Die Notwendigkeit für End2End-Tests ist kein Folge allein der Unternehmensgröße. Viel entscheidender ist, wie bedeutend die über IT bereitgestellten Dienste und Applikationen für das Unternehmen sind.  

Download RobotMK

RobotMK steht unter der GPLv3 und ist seit 1.7.2020 verfügbar.  

Paket

RobotMK - checkmk Exchange

RobotMK kann per MKP (checkmk package) bequem über checkmk->WATO->Extension Packages in bestehende checkmk-Instanzen (v1.6, CEE/CRE) installiert werden. 

Quellcode

RobotMK - GitHub

Link zum Repository, Issue Tracker und Project Board.

Die Projektseite gibt zudem Aufschluss über geplante Meilensteine.

Kostenlose Beratung

  • Du möchtest Dein Monitoring mit Robot Framework End2End-Tests abrunden?
  • Du hast Fragen zu RobotMK oder anderen Monitoring-Themen
  • Du möchtest eine erste Einschätzung "aus der Vogelperspektive" über die für Deinen Fall sinnvollen nächsten Schritte?  


Fragen lassen sich auf der "Tonspur" oft schneller und besser klären. Deshalb hast Du die Möglichkeit, hier und jetzt online einen Beratungstermin zu buchen:

SIMON MEGGLE

Simon Meggle

Sponsoring

RobotMK ist Open-Source und nicht-kommerziell. Ein Großteil der bisherigen Entwicklung geschah jedoch in Vorleistung. Ein Sponsoring erleichtert und beschleunigt die Implementierung neuer Features.

Vorteile eines Sponsorings:

Gezielte Umsetzung von Features

Listing als Sponsoring-Partner

Wegbereiter für ein cooles Projekt zu sein

CheckMK GOLD-Partner

Add Content Block
>