2016-06-15 22 views
0

Problem:Laden von Daten in die Anwendung von GUI mit Ruby

Hallo an alle, ich bin derzeit den Aufbau eines Automatisierungssuite Rubin-Selen WebDriver-Gurke unter Verwendung von Daten in die Anwendung zu laden, es ist GUI. Ich habe Eingaben von Mainframe .txt Dateien. Die Szenarien sehen so aus, als würden Sie einen Kunden erstellen und dann mehrere Konten gemäß den in den Eingaben bereitgestellten Daten laden.

Aktuelle Ansatz

Führen Sie das Szenario der Rake Aufgabe mit nach Zeilennummer als Parameter übergeben und das Skript für nur einen Satz von Daten ausgeführt.

Um die Daten für eine bestimmte Zeile zu lesen, ich bin mit folgendem Code:

File.readlines("#{file_path}")[line_number.to_i - 1] 

Mein Ziel für Zeile Laden der Verwendung Linie ist die Ausführung Laufen zu halten, selbst wenn eine Zeile nicht geladen werden kann.

Mängel

Vermeintliche Ich habe an einen einzigen Kunden 10 Konten zu laden. Mein aktuelles Skript wird also 10 Mal ausgeführt, um jedes Konto zu laden. Ich möchte etwas, das die Konten in einem einzigen Schritt laden kann.

Was ich suche

die obige Unzulänglichkeit zu überwinden, ich will die gesamten Daten für einen einzelnen Kunden aus der Datei wie Konten usw. erfassen und in die Anwendung in einer einzigen Ausführung geladen werden.

Außerdem muss ich auch die Ausführungszeit und Speicherzuweisung verfolgen.

Bitte geben Sie Ihre Gedanken zu diesem Ansatz und Anregungen oder Verbesserungen sind willkommen. (Sorry für die lange Post)

+0

'" # {file_path} "' ist genau dasselbe wie 'file_path', vorausgesetzt es handelt sich um einen String. So könnte man auch die einfachere Form verwenden. –

+1

Ich verstehe Ihren Workflow nicht, aber wenn Sie mehrere Zeilen aus dieser Datei laden, warum nicht einmal in ein Array einlesen und dieses Array dann im Speicher verwenden?Wenn Sie nur eine Zeile pro Datei lesen möchten, können Sie auch einfach eine Methode schreiben, die zeilenweise liest und stoppt, wenn Sie die gewünschte Zeile gefunden haben - das spart im Durchschnitt eine halbe gelesene Datei. –

+0

@KeithBennett -> Ich habe bereits das Arbeitsskript mit Zeile für Zeile ausgeführt. Ich versuche, etwas aufzubauen, das die Daten für einen Kunden sofort erfassen und in die Anwendung laden kann. Ich kann das leicht, aber ich würde es in der schnellstmöglichen Zeit tun müssen, da die Dateigröße sehr groß sein kann. – yudi2312

Antwort

0

Das erste, was ich tun würde, ist diese bricht in Stufen nach unten - wie Sie in Ihrem Kommentar gesagt, aber mehr formell hier:

  1. die Daten holen zu bewerben alle Datensätze. Legen Sie eine Seite mit der notwendigen Informationen (oder Support-Kommandozeilen-Spezifikation, wenn nicht zu viel?).
  2. Führen Sie für jede Zeile in der Datei die folgenden Schritte aus (automatisiert): Rufen Sie die Webseite zum Eingeben der Daten ab. Füllen Sie die Felder aus; das Formular diese

gegeben, würde ich ‚für jede Zeile‘ die sagen Anweisung sollte auf jeden Fall eine Zeile zu einem Zeitpunkt aus der Datei mit File.foreach oder ähnlich lesen.

Gibt es darüber hinaus noch etwas, das berücksichtigt werden muss?

+0

nein keith .. und das sieht viel sauberer .. danke – yudi2312

+0

Gut. Nachdem Sie diese Schritte als Code implementiert haben, denken Sie darüber nach, wie Sie diskrete Methoden mit jeweils einem einzigen Zweck codieren können. Dies wird das Problem vereinfachen. –

+0

Wusste das schon ... wollte nur mal wissen wie andere Leute mit ähnlichen Problemen umgehen und ob meine Annäherung genau genug ist. – yudi2312