Performance Test

  • Hallo zusammen,

    mein erstes Thema in diesem Forum :)

    Ich bin zur Zeit am Programmieren von einem kleinen Tool mit AutoIt.

    Ich benutze dazu bis jetzt die befehle "MouseMove" usw. und mache das
    alles über Koordinaten, damit man, sobald man das Programm ausführt
    sieht, was gemacht wird.


    Zum eigentlichen Problem:


    Das Tool soll Messen, wie lang Visual Studio 2010 U für eine dummy-Datei
    braucht, um sie in ein TeamProjekt/Dokumente hochzuladen.


    Der Code sieht bis jetzt folgendermaßen aus:


    Run("C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe")

    WinWaitActive("Startseite - Microsoft Visual Studio (Administrator)")

    Sleep(5500)


    MouseClick("left", 39, 229,1)

    Sleep(1000)

    MouseClick("left", 57, 301, 1)

    Sleep(1000)

    MouseClick("right", 192, 301, 1)

    Sleep(1000)

    MouseClick("left", 292, 312, 1)

    Sleep(2000)


    Send("{TAB 10}")

    Sleep(500)

    Send("{d}")

    Sleep(200)

    Send("{u}")

    Sleep(200)

    Send("{m}")

    Sleep(200)

    Send("{m}")

    Sleep(200)

    Send("{y}")

    Sleep(200)

    Send("{Enter}") (hier wird die Datei zum hochladen ausgewählt)

    ______________________________


    Ab hier soll die Messung dann beginnen und anschließend in eine .txt datei gespeichert werden.


    Jetzt die Frage: Wie funktioniert das? ?( ?( ?(


    Schonmal vielen Dank für eure Hilfe.


    Gruß Meggl

  • 1) Willkommen im Forum.
    2) Damit dein Post übersichtlicher wird, solltest du dein Skript so posten:

    Code
    [autoit]dein Skript hier[/autoit]


    Zu deinem Problem: Mit Timern kannst du die Zeit messen (wer hätte es gedacht).
    Ich würde das so machen:

    [autoit]

    $Timer = TimerInit() ; Timer starten
    Do
    Sleep(100)
    Until (...) ; warten, bis der Upload fertig ist
    $Time = TimerDiff($Timer) ; Timer stoppen
    $File = FileOpen("timer.txt", 1)
    FileWrite($File, $Time & @CRLF) ; Zeit an "timer.txt" anhängen
    FileClose($File)

    [/autoit]


    Das (...) musst du durch irgendwas ersetzen, woran du erkennst, dass das Hochladen fertig ist (z.B. überprüfen des Fenstertitels, ...). Da ich kein Visual Studio habe, kann ich dir in diesem Punkt nicht helfen.

    MfG, James

  • Hi,

    vielen Dank für die Antwort.
    Das einzige woran man es erkennen kann ist, dass der Mauszeiger mit dem "kreiselnden Kreis" (Win7) erscheint und wieder normal wird, sobald der Upload fertig ist. Anders kann man es nicht erkennen. :wacko:
    Gibt es dafür einen Befehl?

    Gruß Maggo

  • Ja, man glaubt es kaum, aber dafür gibt es einen Befehl. ;)

    [autoit]

    MouseGetCursor()

    [/autoit]


    Das könntest du so in James Code einbauen (ich vermute du sprichst vom Cursor mit der ID 1):

    Spoiler anzeigen
    [autoit]

    $Timer = TimerInit() ; Timer starten
    Do
    Sleep(100)
    Until MouseGetCursor() = 1 ; warten bis der upload startet (cursor ändert sich)
    Do
    Sleep(100)
    Until MouseGetCursor() <> 1 ; warten, bis der Upload fertig ist (cursor wird wieder normal)
    $Time = TimerDiff($Timer) ; Timer stoppen
    $File = FileOpen("timer.txt", 1)
    FileWrite($File, $Time & @CRLF) ; Zeit an "timer.txt" anhängen
    FileClose($File)

    [/autoit]

    Eigentlich ist das keine besonders schöne Lösung, aber solange es funktioniert...

  • Danke :)

    Du hast recht, das ist keine elegante Lösung, aber für ein Programmier Newbie allemal ausreichend :)

    Gruß Marco