Bonne façon de tester les temps de chargement de page en sélénium?
Je suis en train d'en programmant tester le temps de chargement d'une liste de sites web. Le but est de simuler à peu près le temps de chargement de page d'un utilisateur de percevoir.
Ma première approche est d'appeler la commande suivante à l'intérieur d'une boucle:
startTime = System.currentTimeMillis();
driver.get("http://" + url);
diff = System.currentTimeMillis() - startTime;
System.out.println("Load time was " + diff);
Le problème est que parfois j'ai le temps, avant que la page est vraiment chargé (j'.e-je obtenir 50ms fois) donc je suppose que le contrôle est remis à l'instruction suivante avant le driver.get()
est terminé.
Que dois-je faire pour améliorer ce test?
EDIT:
Comme user1258245 a suggéré que je pourrais attendre un élément à charge, mais le problème est que je ne sais pas quelles sont les pages les mauvais chargement à l'avance.
OriginalL'auteur cookM | 2012-07-06
Vous devez vous connecter pour publier un commentaire.
Il y a 2 façon de faire qui va vous donner des données significatives.
Utilisation Browsermob Proxy avec le Sélénium. Ceci est un exemple en python, mais à peu près la même chose en Java
Le fichier HAR est retourné à partir de
proxy.har
, qui est juste un JSON blob, vous donnera les informations dont vous avez besoin. Je blogué un peu plus tôt cette annéeL'autre approche consiste à utiliser la navigation timings spécifications disponibles dans les navigateurs modernes. Tout ce que vous devez faire est d'exécuter du javaScript et vous obtiendrez les détails de chargement de la page, etc.
OriginalL'auteur AutomatedTester