web-dev-qa-db-fra.com

Chromedriver est extrêmement lent sur une machine spécifique utilisant Selenium Grid et .net

Aperçu: Chromedriver fonctionne normalement sur une machine, mais extrêmement lentement sur deux autres machines identiques.

Installer:

  • Selenium Webdriver utilisant .Net pour le codage et Selenium Grid pour la distribution des tests. MSTest est utilisé à partir de Visual Studio 2010 afin d'exécuter les tests.
  • Une machine locale Windows 7 64 bits faisant office de concentrateur
  • Trois ordinateurs distants Win 7 32 bits (deux d’entre eux sont virtuels) sur mon réseau local, tous configurés en tant que nœuds. Voici la commande utilisée pour démarrer les nœuds sur les machines distantes:

    Java -jar c:\seleniumWebDriver\seleniumGrid\Selenium-server-standalone-2.31.0.jar -rôle node -hub http://XXX.XXX.XXX.XXX:4444/grid/register -browser " Nom du navigateur = chrome ", maxInstances = 4 -Dwebdriver.chrome.driver =" C:\seleniumWebDriver\chromedriver.exe "

  • Le pilote est lancé comme ceci depuis le code:

    DesiredCapabilities feature = new DesiredCapabilities (); Facility.SetCapability (CapabilityType.BrowserName, browser); Driver = new RemoteWebDriver (nouvel Uri (hubUrl), facility);

  • Les variables "browser" et "hubUrl" ci-dessus sont transmises via un fichier app.config créé à l'exécution. Dans ce cas, navigateur = chrome.

Problème: 

  • Lorsque j'installe la machine 212 (qui est une machine virtuelle) en tant que nœud chromé à l'aide de la commande ci-dessus, puis que je lance les scripts à partir du concentrateur, je vois que chrome démarre sur la machine distante appropriée et s'exécute normalement. Il champs entre 5-10 commandes par seconde.

  • Lorsque je configure de la même manière la machine 78 (machine virtuelle) ou la machine 103 (machine réelle) en tant que nœud, puis que je lance les scripts à partir du concentrateur, le nœud démarre correctement. Cependant, il fonctionne extrêmement lentement, comme 1 commande par seconde ou moins.

Autres infos: Comme je l'ai dit, sur une machine, le chrome fonctionne normalement, mais sur les autres, il fonctionne extrêmement lentement. Firefox et IE, lorsqu'ils sont configurés en tant que nœuds, fonctionnent normalement.

J'ai comparé la machine 212 (qui fonctionne correctement) avec les autres machines et je ne trouve pas la différence. Toutes les machines utilisent 'Selenium-server-standalone-2.31.0.jar' et la même version de ChromeDriver.

Il ne semble pas que les machines de nœud soient surchargées. En outre, il existe une différence de performance très constante qui ne semble pas liée à une charge fluctuante sur le réseau ou les machines.

Mon technicien réseau a vérifié que toutes ces machines sont configurées de manière identique sur le réseau.

Quelqu'un a-t-il déjà vu quelque chose comme ça?

EDIT 1: Je me suis connecté aujourd'hui et les trois machines distantes utilisent lentement le chrome. Avant l'un d'eux était normal, mais maintenant ils sont tous lents.

22
Sky

J'ai rencontré un problème similaire où chromedriver était lent sur certaines machines et il s'est avéré que c'était un problème de proxy. La désactivation de "Détecter automatiquement les paramètres" sous Chrome: // paramètres> Modifier les paramètres de proxy> Paramètres réseau> WebDriver permet d'exécuter les commandes plus rapidement avec Chrome.

31
auto

Mes paramètres de proxy n'utilisaient pas la détection automatique, mais les éléments suivants ont beaucoup aidé. Le temps de démarrage du pilote est passé de 43 secondes à 1 seconde

driver = new ChromeDriver(new ChromeOptions{Proxy = null}); 
7
Lamaan Ball

Lien de bogue dans les problèmes de chromedriver Il s’agit d’un problème de longue durée qui a reçu la priorité la plus basse. Mais comme plus d'utilisateurs voteront pour, peut-être que quelqu'un le réparera. Il pourrait également être associé à L'analyse de la configuration du proxy n'est pas conforme à la norme qui sera corrigée prochainement.

0
SkorpEN