Messen Sie die Antwortzeit für eine HTTP-Anfrage mit Ruby

7

Ich baue eine kleine Website für den persönlichen Gebrauch, um eine API zu testen, die meine Firma herstellt. Mein Chef möchte eine Website, auf der wir eine Website eingeben, ein Formular mit GET oder POST anfordern können und die Anzahl der Anfragen angeben können. Er möchte, dass die Anfrage protokolliert wird, die Zeit pro Anfrage und die durchschnittliche Zeit für alle Anfragen.

Gibt es eine Möglichkeit, die Antwortzeit für eine GET- oder POST-Anfrage mit Ruby zu messen?

Ich habe die Net :: HTTP-Bibliothek durchgesehen, aber nichts gesehen, was die Zeit zurückgenommen hat.

Gibt es Websites, die das schon tun? Sie müssten eine GUI haben, damit Nicht-Techies sie benutzen können. Wenn nicht, plane ich ein einfaches Formular, das ein Skript ausführt, die Ausgabe dieses Skripts in eine Textdatei oder eine Tabelle schreibt und dann an den Benutzer sendet.

Irgendwelche anderen Vorschläge? (Eine nette AJAX-Schnittstelle könnte gut funktionieren, würde aber wahrscheinlich Datenbankspeicher benötigen. Bei 10000 Anfragen pro Lauf könnte das sehr schwer werden.

    
Squadrons 27.03.2013, 20:10
quelle

2 Antworten

17

Wie in den Kommentaren erwähnt, hat Ruby ein Benchmark-Modul

%Vor%     
ireddick 28.03.2013, 07:23
quelle
4

Warum sollte Net :: HTTP die Antwortzeit berücksichtigen? Das ist nicht seine Aufgabe.

Verwenden Sie vor und nach Ihrer Anfrage Time.now , um Start- und Endzeiten festzulegen:

%Vor%

Wenn Sie das mitteln möchten, fügen Sie die elapsed_time -Werte zusammen und dividieren Sie sie durch die Anzahl der Tests:

%Vor%

Die Zeit wird auf die Mikrosekunde genau gemessen, was für Ihre Bedürfnisse viel genauer sein sollte.

Sie sind allein für die Schnittstelle, da dies ein ganz anderes Thema ist und ein Buch darstellen würde.

Und übrigens, du schuldest mir eine Stunde deines Lohns dafür, dass du einen Teil deiner Arbeit für dich erledigt hast.

    
the Tin Man 28.03.2013 00:09
quelle

Tags und Links