watir-webdriver Tests Are Pretty Slow at Sauce Labs OnDemand
by Željko Filipin
That Sauce Labs OnDemand thing is pretty nice, but I have noticed something strange. A test suite that takes about 20 minutes to run at my machine, takes 5 hours to run there! Uh-oh. Not what I have expected.
After googling around, and I have found that you can speed up the tests by disabling video, screen shots and advisor. So, I have decided to test how fast are the tests with default settings and with everything disabled.
This simple script visits a few pages. In my test it visits 9 client sites. You can visit top 10 sites, for example, if you want to run the test yourself.
Run the script 10 times (or more, if you have the time) to make the results at least a bit statistically significant. Measure the time it takes to run the script at your machine and at Sauce Labs OnDemand, with various operating system and browser combinations.
I got this results.
location | os | browser | screenshots video advisor | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | average | median | deviation | min | max |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
local | mac 10.7 | firefox 12 | FALSE | 29 | 13 | 12 | 12 | 13 | 14 | 13 | 12 | 12 | 13 | 14 | 13 | 3 | 12 | 29 |
sauce | windows xp | ie 8 | TRUE | 61 | 56 | 56 | 56 | 55 | 59 | 56 | 59 | 56 | 61 | 58 | 56 | 2 | 55 | 61 |
FALSE | 53 | 54 | 53 | 54 | 51 | 53 | 55 | 52 | 52 | 53 | 53 | 53 | 1 | 51 | 55 | |||
firefox 11 | TRUE | 58 | 57 | 59 | 58 | 58 | 72 | 61 | 58 | 54 | 59 | 59 | 58 | 3 | 54 | 72 | ||
FALSE | 54 | 53 | 54 | 52 | 52 | 55 | 51 | 54 | 54 | 51 | 53 | 54 | 1 | 51 | 55 | |||
chrome | TRUE | 53 | 53 | 56 | 52 | 56 | 59 | 55 | 60 | 55 | 54 | 55 | 55 | 2 | 52 | 60 | ||
FALSE | 46 | 49 | 49 | 49 | 49 | 46 | 48 | 46 | 47 | 55 | 48 | 49 | 2 | 46 | 55 | |||
windows 7 | ie 9 | TRUE | 59 | 61 | 83 | 61 | 55 | 60 | 60 | 56 | 61 | 55 | 61 | 60 | 4 | 55 | 83 | |
FALSE | 53 | 81 | 58 | 59 | 53 | 52 | 59 | 59 | 73 | 62 | 61 | 59 | 7 | 52 | 81 | |||
firefox 11 | TRUE | 54 | 73 | 54 | 60 | 58 | 54 | 61 | 55 | 75 | 56 | 60 | 57 | 6 | 54 | 75 | ||
FALSE | 53 | 53 | 51 | 55 | 51 | 51 | 52 | 60 | 69 | 51 | 55 | 53 | 4 | 51 | 69 | |||
chrome | TRUE | 51 | 52 | 88 | 54 | 52 | 68 | 52 | 51 | 97 | 71 | 64 | 53 | 14 | 51 | 97 | ||
FALSE | 50 | 46 | 47 | 47 | 59 | 48 | 51 | 49 | 47 | 53 | 50 | 49 | 3 | 46 | 59 | |||
linux | firefox 11 | TRUE | 77 | 67 | 60 | 67 | 85 | 63 | 66 | 64 | 63 | 61 | 67 | 65 | 5 | 60 | 85 | |
FALSE | 58 | 56 | 60 | 77 | 61 | 60 | 72 | 55 | 62 | 66 | 63 | 61 | 5 | 55 | 77 | |||
chrome | TRUE | 88 | 61 | 60 | 90 | 63 | 59 | 84 | 61 | 60 | 63 | 69 | 62 | 11 | 59 | 90 | ||
FALSE | 67 | 58 | 70 | 58 | 58 | 61 | 65 | 64 | 83 | 57 | 64 | 63 | 6 | 57 | 83 |
The script that just opens the browser, visits 9 pages and closes the browser takes 14 seconds on average at my machine. Exactly the same script at Sauce Labs OnDemand takes on average 55-69 seconds with default settings, and 48-64 seconds with everything disabled. So, the script is a bit faster when everything is disabled, but unfortunately, just a bit.
The entire script is here:
You have to replace username
and api-key
with your username and API key.
The only solution I have found so far is to run the tests in parallel. Report coming soon.
tags: code - ruby