AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Geschwindigkeitsmessung eines Seitenaufrufs
Thema durchsuchen
Ansicht
Themen-Optionen

Geschwindigkeitsmessung eines Seitenaufrufs

Ein Thema von Ajintaro · begonnen am 14. Mär 2014 · letzter Beitrag vom 16. Mär 2014
Antwort Antwort
Benutzerbild von Ajintaro
Ajintaro

Registriert seit: 20. Okt 2004
Ort: Sankt Augustin
138 Beiträge
 
Delphi XE6 Starter
 
#1

Geschwindigkeitsmessung eines Seitenaufrufs

  Alt 14. Mär 2014, 14:32
Hey DP,

ich möchte gerne protokollieren wie lange es dauert, von einer Start-Webseite einen Seitenaufruf durchzuführen. Spontan würde ich das mit einer TTimer Komponente messen.
Startzeitpunkt: TWebBrowser --> OnBeforeNavigate2 Timer aktivieren
Endzeitpunkt: TWebBrowser: --> OnDocumentComplete Timer anhalten und auswerten

Und das alle 5 Minuten mit einer weiteren Timer-Komponente

Gibt es da andere Mechanismen/Hilfsmittel um einen Seitenaufruf zu monitoren oder ist mein Vorgehen durchaus nutzbar ?
Jaimy
DAoC 2.0 -> Camelot Unchained !
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#2

AW: Geschwindigkeitsmessung eines Seitenaufrufs

  Alt 14. Mär 2014, 14:44
noch einfacher...

GetTickCount (Unit Windows) beim Betreten holen und merken und bei HabeFertig holen und die Differenz berechnen...

Geändert von haentschman (14. Mär 2014 um 14:46 Uhr)
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#3

AW: Geschwindigkeitsmessung eines Seitenaufrufs

  Alt 14. Mär 2014, 17:55
Gibt es da andere Mechanismen/Hilfsmittel um einen Seitenaufruf zu monitoren oder ist mein Vorgehen durchaus nutzbar ?
Der einfachste Weg - falls kein JavaScript im Spiel ist - wäre eine nichtvisuelle HTTP Komponente wie TIdHTTP zu verweden, und einen HTTP GET Request auf die Zielseite durchzuführen und seine Ausführungszeit zu messen.
Michael Justin
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.159 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Geschwindigkeitsmessung eines Seitenaufrufs

  Alt 14. Mär 2014, 18:08
Ich möchte jetzt kein Schlauscheißer sein, aber was ist denn ein "Seitenaufruf"? Das XML/HTML-Dokument übertragen? Das Dokument und alle direkt referenzierten Dateien (Grafiken, Stylesheets, ...) laden? Das Dokument komplett aufbauen und grafisch auf den Bildschirm bringen?
Was ist mit dem ganzen JavaScript das erst im Nachinein anfängt, weitere Skripte und Medien von externen Quellen nachzuladen?
  Mit Zitat antworten Zitat
Benutzerbild von Ajintaro
Ajintaro

Registriert seit: 20. Okt 2004
Ort: Sankt Augustin
138 Beiträge
 
Delphi XE6 Starter
 
#5

AW: Geschwindigkeitsmessung eines Seitenaufrufs

  Alt 14. Mär 2014, 20:20
Hmm das sind durchaus berechtigte Fragen. Im Prinzip möchte ich hier nur nach einem Flug suchen und schauen, wie lange es dauert bis das Suchergebnis erscheint.
Leider stoße ich da auf 2 blöde Probleme:

(1)
Mit einem Button wollte ich die Minimalangaben des Formulars ausfüllen:
Delphi-Quellcode:
//Abflug von
WebBrowser1.OleObject.Document.getElementById('f-originName0').value := 'Frankfurt, Frankfurt/Main International (FRA), Deutschland';
//Ankunft in
WebBrowser1.OleObject.Document.getElementById('f-destinationName0').value := 'Baltimore, Baltimore - Washington International, DC (BWI), USA';
//Datum
WebBrowser1.OleObject.Document.getElementById('fdepdateDisplay').value := 'Mi, 02.08.2014';
WebBrowser1.OleObject.Document.getElementById('fretdateDisplay').value := 'Mi, 20.08.2014';
Alle Formulare werden ausgefüllt, nur wird das Datum nicht akzeptiert. Man muss mit der Maus auf diesen blöden Datepicker klicken, ich bekomme das nicht ohne manuellen Eingriff hin.

(2)
Sobald ich den "Flüge Suchen" button betätige, wirft die TWebbrowser Komponent den berühmten "Skriptfehler". Es gibt einige Suchtreffer hier im Forum, allerdings sind die etwas älter und schlagen den silent-mode oder einen Registry-Eingriff vor. Hat beides nichts gebracht.

Und wie der Thread-Titel schon hergibt, will ich nur messen wie lange es dauert, bis man sein Suchergebnis angezeigt bekommt:

Delphi-Quellcode:
procedure TForm4.WebBrowser1BeforeNavigate2(ASender: TObject;
  const pDisp: IDispatch; const URL, Flags, TargetFrameName, PostData,
  Headers: OleVariant; var Cancel: WordBool);
begin
 tick_Start:=GetTickCount;
end;

procedure TForm4.WebBrowser1DocumentComplete(ASender: TObject;
  const pDisp: IDispatch; const URL: OleVariant);
begin
 tick_end:=GetTickCount;
//wie viele ms hat es nun gedauert ?
l_1.Caption := inttostr(tick_end-tick_start);
end;
Jaimy
DAoC 2.0 -> Camelot Unchained !
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#6

AW: Geschwindigkeitsmessung eines Seitenaufrufs

  Alt 16. Mär 2014, 01:02
Wenn du es nicht mit Delphi machen musst, solltest du dir mal die entsprechenden Tools im Browser angucken (insb. Chrome und Firefox). In diesem Artikel von Troy Hunt findest du ein schönes Beispiel, was man damit so machen kann.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.196 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Geschwindigkeitsmessung eines Seitenaufrufs

  Alt 16. Mär 2014, 08:23
Und was bringt es diese Zeit zu haben?
Webseiten zu testen ist nicht gerade eine Triviale Angelegenheit und das "nur mal so zu machen" kann sehr leicht in eine größeres Projekt ausarten.
Nicht umsonst gibt es hier (teilweise sehr teure) Spezialanwendungen. Und wie du merkst werden die Oberflächen so stark auf reale Anwender optimiert so das ein "einfacher" Test mit TWebbrowser schon fast zwangsweise scheitern muss.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Ajintaro
Ajintaro

Registriert seit: 20. Okt 2004
Ort: Sankt Augustin
138 Beiträge
 
Delphi XE6 Starter
 
#8

AW: Geschwindigkeitsmessung eines Seitenaufrufs

  Alt 16. Mär 2014, 09:32
Hi schönen Sonntag euch allen,

ich bin nicht zwingend auf Delphi angewiesen, aber Delphi bietet mir die Möglichkeit gewissen Dinge zu automatisieren. Ich bin z.B. über das Chrome Plugin Speed Tracer gestolpert. Das ist ganz nett, ich kann sogar ein logfile speichern für eine nachfolgende Auswertung. Also benötige ich Delphi nicht zwingend zur reinen Messung, aber zumindest als Automatisierung um eine Messung alle 5 Minuten vorzunehmen.

Bernhard hat völlig recht - gerade diese fiesen Datepicker-Felder können nicht per copy/paste ausgefüllt und ausgewertet werden. Man muss zwingend mit der Maus auf die entsprechende Schaltfläche klicken um ein gütiges Datum zu produzieren. Ich sehe derzeit keine andere Möglichkeit als mit SetCurserPos o.ä. einen Mausklick zu simulieren.
Jaimy
DAoC 2.0 -> Camelot Unchained !
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:09 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz