Skip to content

Concept / Ideas #1

@MarvKler

Description

@MarvKler

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

  1. numpy
  2. pandas
  3. assertion-engine für Überprüfungen nutzen
  4. 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    core-developmentDevelopment of core features covering use cases of this library.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions