IE8..11 WPT pooling / sharding for same location

Hi,

I am trying to pool multiple servers running each the wptdriver for chrome, firefox and IE8…11, so that i see only 1 location and then choose between the browsers in the WPT webapp.

To achieve that, i made sure that each wptdriver agent uses the same location “paris-wptdriver”. This works well for Chrome and Firefox. Any server with its wptdriver doing nothing will pickup the job.

But that does not work for IE: Each server and wptdriver uses a different version of IE ([IE8], [IE9], [IE10], and [IE11]), and many times, a wptdriver picks the job with the wrong IE version, and replies an error, eg. “Test Error: Invalid Browser Selected: IE8

Aren’t the wptdriver agents detect which browser is requested and pick the job only if its IE version match ?

From the reply http://www.webpagetest.org/forums/showthread.php?tid=12944&pid=23394#pid23394 i would have assumed it should work.

Here are my WPT webapp locations.ini:

[code][locations]
1=paris
default=paris

[paris]
1=paris-wptdriver
label=“Paris”

[paris-wptdriver]
browser=IE11,IE10,IE9,IE8,Chrome,Firefox
latency=0
label=“Paris wptdriver”[/code]

And below is one of my wptdriver configuration. Other wptdriver on other servers use [IE9], [IE10], and [IE11]

[code][WebPagetest]
url=http://my.wpt.server:port/
location=paris-wptdriver
browser=chrome
Time Limit=120

[IE8]
exe=“%PROGRAM_FILES%\Internet Explorer\iexplore.exe”

[chrome]
exe=“%PROGRAM_FILES%\Google\Chrome\Application\chrome.exe”
options=‘–load-extension=“%WPTDIR%\extension” --user-data-dir=“%PROFILE%” --no-proxy-server’
installer=http://www.webpagetest.org/installers/browsers/chrome.dat

[Firefox]
exe=“%PROGRAM_FILES%\Mozilla Firefox\firefox.exe”
options=‘-profile “%PROFILE%” -no-remote’
installer=http://www.webpagetest.org/installers/browsers/firefox.dat
template=firefox[/code]

It’s kind of convoluted but the way to do that is to set up different locations for all of the different IE versions and a shared location for Chrome and Firefox. On the agent side you can put a comma-delimited list of locations to pull from so an agent that has IE 10, Chrome and Firefox would pull from location=paris-wptdriver,paris-IE10

You also need to make sure that the IE version string in wptdriver matches the one defined in locations.ini for each of the different IE versions.

WPT expects that any agent can handle every browser that a location is configured for and the agents don’t do anything special for IE.

locations.ini:

[locations]
1=paris
default=paris

[paris]
1=paris-wptdriver
2=paris-IE11
3=paris-IE10
4=paris-IE9
5=paris-IE8
label="Paris"

[paris-wptdriver]
browser=IE11,IE10,IE9,IE8,Chrome,Firefox
label="Paris wptdriver"

[paris-IE11]
browser=IE 11
label="Paris IE 11"

[paris-IE10]
browser=IE 10
label="Paris IE 10"

[paris-IE9]
browser=IE 9
label="Paris IE 9"

[paris-IE8]
browser=IE 8
label="Paris IE 8"

wptdriver.ini for IE10 machine:

[WebPagetest]
url=http://my.wpt.server:port/
location=paris-wptdriver,paris-IE10
browser=chrome
Time Limit=120

[IE 10]
exe="%PROGRAM_FILES%\Internet Explorer\iexplore.exe"

[chrome]
exe="%PROGRAM_FILES%\Google\Chrome\Application\chrome.exe"
options='--load-extension="%WPTDIR%\extension" --user-data-dir="%PROFILE%" --no-proxy-server'
installer=http://www.webpagetest.org/installers/browsers/chrome.dat

[Firefox]
exe="%PROGRAM_FILES%\Mozilla Firefox\firefox.exe"
options='-profile "%PROFILE%" -no-remote'
installer=http://www.webpagetest.org/installers/browsers/firefox.dat
template=firefox

This works great, thank you

Nota that i think you made a mistake in the locations.ini:

[paris-wptdriver] browser=Chrome,Firefox label="Paris wptdriver"

Oh yeah, left a few extra browsers in there, thanks :slight_smile: