2016-04-11 11 views
0

als Teil unserer Qualitätsmetriken müssen wir berechnen, die Zeit die Anwendung im Test (ein Windows-Client - Server-Desktop-Anwendung) dauert einige allgemeine Aufgaben wie die Zeit zu öffnen ein Fenster, Zeit zum Speichern eines Dokuments usw.So erhalten Sie genaue Leistungsmessungen auf Desktop-Client-Server-Anwendung

Die häufigsten Anwendungsfälle sind die maximale Zeit, die für die Ausführung des Anwendungsfalls in einer bestimmten Maschine zur Verfügung steht, und diese Zeiten müssen bei jedem Sprint überprüft werden.

Wir verwenden UFT (HP Unified Functional Testing (UFT)) als unser Testwerkzeug, aber die Zeiten, die wir bei einer Beispielanwendung bekommen, haben große Unterschiede. Wir haben alles auf dem Computer deaktiviert, die CPU ist in der Nähe von 0% und wir haben Variationen von 15% bei den Maßnahmen, die wir machen.

Haben Sie Erfahrung mit dem Sammeln dieser Art von Metriken in Projekten? Welches Werkzeug hast du benutzt oder wie hast du die Information bekommen? Es manuell zu tun ist keine Option.

Antwort

1

QTP bietet einen Timing-Mechanismus in seinem MercuryTimers-Objekt ... Es ist eine Sammlung von benannten Timern, die Sie starten, stoppen, fortsetzen, zurücksetzen und die verstrichene Zeit lesen können. Da es sich um eine Sammlung handelt, können Sie mehrere gleichzeitige Timer einstellen und unabhängig voneinander lesen.

Sie müssen sie überhaupt nicht deklarieren oder dimensionieren, sie entstehen, sobald Sie eine Methode für sie aufrufen. Sie bleiben auch über Aktionen hinweg erhalten, und da sie Literalfolgen für Namen verwenden, können Sie die Namen in beliebiger Weise parametrisieren.

Hier ist ein Beispiel:

MercuryTimers("App Life Time").Start 
MercuryTimers("Load Time").Start 

systemUtil.Run TestURL 

if not Browser("IE").Exist(60) then 
    FailTestBecause "Browser load timeout" 
End If 

MercuryTimers("Load Time").Stop 

TimeTakenToLoad = MercuryTimers("Load Time").ElapsedTime 

RunAction "Do Other Stuff" 

RunAction "Exit and Close Browser" 

MercuryTimers("App Life Time").Stop 

TotalTimeAppExisted = MercuryTimers("App Life Time").ElapsedTime 

SomeOutputFunction "Load Time:" & TimeTakenToLoad & " - Exist Time:" & TotalTimeAppExisted & " - in milliseconds" 

Soweit alle unnötigen Prozesse auf der Testmaschine zu beseitigen, Es klingt wie Sie bereits das tat. Ich überprüfe immer blackviper.com für Windows-Dienste Informationen.

+0

Wir haben das getan und wir erhalten Variationen über den gleichen Code von 15% auf eine Beispiel-App, die nur eine Taste mit einem Schlaf im Inneren hat ...: S –

+0

Jede Möglichkeit, das Laufwerk der Testmaschine tut etwas Arbeit während der Timer läuft? Der Laufwerkzugriff kann zufällige Schwankungen der Gesamtleistung einer gegebenen Testmaschine verursachen. Sie könnten die Festplatte mit Tools wie SpinRite überprüfen (oder wenn Sie wirklich technisch sind, suchen Sie nach "MHDD" von Dmitry Postrigan) ... Wenn Sie dies noch nicht getan haben, schauen Sie in BlackViper.Com nach Beispielen für die Servicekonfiguration das könnte die Plattform weiter stabilisieren. –

Verwandte Themen