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/Stand der Entwicklung

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)

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 möchtest eine erste Einschätzung "aus der Vogelperspektive" über die für Deinen Fall sinnvollen nächsten Schritte?  

Dann buche über dieses Formular eine kostenlose Erstberatung

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

>