-
Notifications
You must be signed in to change notification settings - Fork 0
Description
RobotFramework Table Library - Development
Idee
Wir wollen eine neue generelle "table" Library für RobotFramework schreiben, die mit verschiedenen Dateitypen und deren Inhalten arbeiten kann.
Dazu zählen zum Beispiel "csv" und "excel" Dateien. Je nach Datei können unterschiedliche Formatierungen, Trennzeichen, bei Excel zusätzliche Sheets, etc. genutzt werden, die der Library bekannt sein müssen.
Grundsätzlich sollte diese Library die beiden alten Libraries (robotframework-csvlibrary & robotframework-excellib) abbilden und features die notwendig & sinnvoll sind übernehmen.
Spezial Keyword
Durch mein Kundenprojet habe ich ein Keyword gebraucht, welches mehrere CSV Files merged je nach ihrem Zeitstemptel.
Beispiel: Im AWS Bucket liegt pro Minute ein eigenes CSV File. In jedem dieser CSV Files hat man pro Sekunde einen Datenwert. Das bedeutet man hat 60 Datenwerte pro CSV File und über alle CSV Files hinweg gesehen, sind diese zeitlich fortlaufen durch einen timestamp markiert. Nun musste ich über alle CSV Files drüber iterieren & alle Datenwerte innerhalb einen bestimmten Time Ranges in ein neues CSV File mergen.
-> Kann man so ein Keyword verallgemeinern, damit es mit in die Library kommt ?
Library Entwurf
Die Library sollte globale Konfigurationsmöglichkeiten haben, womit man Dateityp, Formatierungen, Trennzeichen, etc. definieren kann (zB über ein / mehrere Enum(s)).
Man sollte jedoch relativ schnell zwischen den Typen, etc. wechseln können, für den Fall, dass man in einem Keyword Call CSV braucht und direkt im nächsten Keyword Call Excel - zB. wenn man Daten in beiden Dateien vergleichen muss.
Technische Library Details
Unterstützte Dateitypen
- CSV
- Excel (.xlsx, .xls)
- Parquet
- weitere ?
Globale Einstellungen
- Trennzeichen
- Encoding (utf-8, utf-16, weitere ?)
- Dezimaltrennzeichen
- Datumsformate
- Excel: Sheet Name(s)
- Handling für Header Reihen (Lese / Ignoriere Header)
Keyword Ideen
- Lade Tabelle aus Datei in unterschiedliche Datentypen (List, String, Table-Object)
- Lade Tabelle aus String in unterschiedliche Datentypen (List, String, Table-Object)
- Schreibe Tabelle Objekt in Datei
- Schreibe Tabellen Objekt in String Objekt
- Ergänze Daten in existierender Datei oder existierendem String Objekt
- Überprüfe Anzahl Reihen
- Überprüfe Anzahl Spalten
- Überprüfe Tabellen Header
- Lese Zelle XY
- Lese Spalte XY
- Lese gesamte Reihe XY
- Schreibe Zelle XY
- Schreibe Spalte XY
- Schreibe Reihe XY
- Excel: Lese alle existierenden Sheets
- Excel: Lade Sheet
- Wechsle intern zwischen mehreren geladenen Tabellen
- Schließe / Verwerfe interne Tabellen Objekte
- Spezial Keyword: Merge mehrere Tabellen in eine gemeinsame inkl. Filterung
- Spezial Keyword: Überprüfe Abstände von Zeitstempel in Tabellen -> Prüfe: alle Zeitstempel pro Datenwert müssen 2 Sekunden auseinander liegen
(Mögliche) Python Module zur Umsetzung
- numpy
- pandas
- assertion-engine für Überprüfungen nutzen
- weitere ?
Hilfreiche Links
Derzeit gibt es die beiden folgenden Library, eine für CSV & eine für Excel.
robotframework-csvlibrary: https://github.com/s4int/robotframework-CSVLibrary
robotframework-excellib: https://github.com/peterservice-rnd/robotframework-excellib
ToDo
- Welche Dateitypen wollen wir unterstützen ?
- Welche Formatierungen müssen wir berücksichtigen ?
- Sollen Trennzeichen vom Library Benutzer komplett frei vergeben werden oder geben wir bestimmte (default) Trennzeichen vor ?
- Spezial Keywords - Meinung ?
- Definieren von notwendigen Keywords
- Welche Library Architektur ? Dynamic Library ?
- Kickoff Meeting