2010-12-16 19 views
0

Angenommen, ich habe einen VUGen C-Test, der Ergebnisse in eine Datenprotokolldatei schreibt, dh er listet verarbeitete IDs oder Ähnliches in einer Datei auf, die bei init erstellt (oder angehängt), in die Hauptaktion geschrieben und geschlossen wird Herunterfahren.LR benutzerdefinierte Protokolldateien: Wie kann ich sie von den Generatormaschinen bekommen?

Dann frage ich mich, ob es eine LR-Funktionalität gibt, mit der ich eine konsolidierte Verzeichnisstruktur auf dem Controller finden kann, die alle Kopien dieser Datei enthält.

Soweit ich sehen kann, verwenden alle vuser-Instanzen eine gemeinsame Kopie der Testverzeichnisstruktur, irgendwo in temp. Also a) Ich muss die VUser ID in den Namen meiner benutzerdefinierten Protokolldatei aufnehmen, und b) Ich muss die Ergebnisdateien manuell von meinem Lastgenerator nach einer Szenarioausführung sammeln, was ein schwerfälliger Prozess ist.

Die einzige bequeme Alternative wäre, alle verarbeiteten IDs (oder was auch immer) in VTS (HP virtueller Tabellenserver, scheint Freeware) zu melden und sie von dort abholen, oder? Dann muss ich eine zusätzliche Codierung machen. Kann es sein, dass in VUgen/LR noch nie eine solche Funktionalität verpasst wurde?

Ich hoffe, dies ist nicht zu offtopic, da diese Frage nicht unbedingt Code-bezogen ist.

Antwort

0

Die Art, wie wir dies tun, unabhängig von Performance Center oder Standalone, ist ein UNC-Pfad, der von den Skripten zugeordnet werden kann. Wir erstellen/schreiben/lesen von Dateien dort.

Dies ermöglicht das Ausführen der Skripts von mehreren Ladegeneratoren, ohne dass Dateien nach dem Test kopiert werden müssen, und gibt uns auch einen allgemeinen Speicher, wo wir DLLs und andere Dateien laden können, die von allen Skripten benötigt werden.

Bitte beachten Sie, dass das Erstellen/Schreiben von zwei verschiedenen vusers in die SAME-Datei nicht funktioniert. Sie sollten entweder vuser_id-spezifische Namen erstellen oder eine Datenbank zum Speichern der Daten verwenden. Die DB-Option erfordert, dass Sie eine 3rd-Party-DB-Bibliothek (DLL) zur Hand haben.

+0

Ich würde das nicht lieben, da ich eigentlich in meinem VUgen-Skript in das Netzwerk schreiben würde. Dies kann zu den gemessenen Transaktionszeiten Nebenwirkungen haben. Ich müsste alle offenen Transaktionen pausieren, bevor das Netzwerk schreibt, und sie danach wieder aufnehmen. Aber, da das Schreiben in eine Datei möglicherweise asynchron gehandhabt wird (oder nicht?), Ich fürchte, ich würde die Transaktionszeiten immer noch ungenau machen. – TheBlastOne

+0

In unserer Organisation mit über 50 Performance-Testern habe ich nie (jemals) gesehen, dass irgendjemand während einer "skriptspezifischen" Arbeit eine missionskritische Transaktion geöffnet hat, aber die Zeiten können etwas variieren (ich vermute, dass die Unterschiede geringer wären) dann 0,1% am Ende). –

+0

Ich sehe, aber hängt das nicht direkt von der Operation ab, die Sie in Ihren LR-Transaktionen durchführen, und von der Zeit, die Sie für diese Operation benötigen? Stellen Sie sich beispielsweise vor, wie viel Zeit für das Vorbereiten und Senden von Daten an Subsysteme auf einem PC benötigt wird, der eine Sortiermaschine steuert, die nur ein Zeitfenster von 250 ms zwischen dem Scannen (OCRing) einer Adresse und dem Aktivieren des richtigen Sortierers bietet. Hier kann das Schreiben einer Protokolldatei länger dauern, wenn es über das Netzwerk läuft. Bei längeren Transaktionen könnte es einen Unterschied von 0,1% geben, bei sehr kurzen 30%. – TheBlastOne

1

Einfach, verwenden Sie lr_output_message(), um Ihre benutzerdefinierte Protokollmeldung an den Controller während des Tests auszugeben. Am Ende des Tests geben Sie einfach die benötigten Protokollelemente aus einem Export des Ausgabefensters aus.

Sie sollten sich während des Tests vor starker Protokollierung schützen. Sie können ganz einfach Ihr gesamtes Plattensubsystem in einen Engpass für den Test verwandeln, dies ist doppelt so, wenn Sie Benutzer auf einem bereits ausgelasteten Host wie dem Controller und nicht auf einer bestimmten Hardware ausführen. Mithilfe von lr_output_message() wird Ihr Protokoll vom virtuellen Benutzerhost entfernt und zum Protokollieren auf den Controller verschoben.

Stellen Sie sicher, dass ein Referenz- oder Steuergenerator mit nur einem virtuellen Benutzer jedes Typs (Hardware, die auf die übrigen Generatoren abgestimmt ist) enthält, um zu überprüfen, ob das Plattensubsystem zu einem Engpass wird.

Wenn Sie die Daten am Ende des Tests wiederherstellen und einen entkoppelten Host insgesamt betrachten möchten, können Sie K Sandells Vorschlag eines UNC-Pfads zu einem gemeinsamen Host/Standort mit der zusätzlichen Komplikation von Sie müssen Sperren mit anderen virtuellen Benutzern verwalten, wenn Sie zu einer gemeinsamen Datei wechseln, oder einfach ein anderes Ziel in Ihren Test einbeziehen, wie VTS, eine der vielen Java-basierten Messaweg-Warteschlangenlösungen oder sogar MySQL mit einem einfachen Frontend, um einfach Daten hineinzuschieben eine Tabelle mit einem Formular.

+0

Danke - das ist genau das, was ich heute mache (und weiß). Ich habe mich gefragt, ob es einen Mechanismus gibt, den LoadRunner verwendet, um seine Event-Dateien mit dem Controller zu kollationieren (sicher gibt es das!), Und ob es eine billige Möglichkeit gibt, diese aus LR für meine eigenen Datendateien zu scrogen. (Ich verwende derzeit VTS Virtual Table Server, um die Ergebnisse meiner Lastgeneratoren zu konsolidieren.) – TheBlastOne