Skip to content

Instantly share code, notes, and snippets.

@jfsiii
Created May 14, 2013 16:33
Show Gist options
  • Save jfsiii/5577362 to your computer and use it in GitHub Desktop.
Save jfsiii/5577362 to your computer and use it in GitHub Desktop.
Testing the BrowserStack API. Workers set to get created but remain stuck in 'queued' state.
var BrowserStack = require( "browserstack" );
var client = BrowserStack.createClient({
username: process.env.BROWSERSTACK_USERNAME,
password: process.env.BROWSERSTACK_PASSWORD
});
client.getBrowsers(function( error, browsers ) {
console.log( "The following browsers are available for testing" );
console.log( browsers );
});
var settings = {
browser: "chrome",
version: "latest",
os: "mac",
url: "http://jfsiii.github.io/XCSSMatrix/test/"
};
client.createWorker(settings, function (error, worker) {
if (error) console.log("ERROR:", error)
console.log("created worker", worker, "from", settings);
var start = Date.now();
var delay = 1000;
client.getWorker(worker.id, function onGetWorker(error, w1) {
console.log("got worker", w1);
if (w1.status === "queue") {
console.log("Still queued after %s seconds. Retry in %s seconds", (Date.now() - start)/1000, delay/1000);
setTimeout(function (client, w2, callback) {
client.getWorker(w2.id, callback);
}, delay, client, w1, onGetWorker);
delay *= 2;
} else {
console.log('FINALLY', worker);
}
});
});
‣ node test/browserstack.js
The following browsers are available for testing
[ { version: '3.0', browser: 'firefox', os: 'win' },
{ version: '3.6', browser: 'firefox', os: 'win' },
{ version: '4.0', browser: 'firefox', os: 'win' },
{ version: '5.0', browser: 'firefox', os: 'win' },
{ version: '6.0', browser: 'firefox', os: 'win' },
{ version: '7.0', browser: 'firefox', os: 'win' },
{ version: '8.0', browser: 'firefox', os: 'win' },
{ version: '9.0', browser: 'firefox', os: 'win' },
{ version: '10.0', browser: 'firefox', os: 'win' },
{ version: '11.0', browser: 'firefox', os: 'win' },
{ version: '12.0', browser: 'firefox', os: 'win' },
{ version: '13.0', browser: 'firefox', os: 'win' },
{ version: '14.0', browser: 'firefox', os: 'win' },
{ version: '15.0', browser: 'firefox', os: 'win' },
{ version: '16.0', browser: 'firefox', os: 'win' },
{ version: '17.0', browser: 'firefox', os: 'win' },
{ version: '18.0', browser: 'firefox', os: 'win' },
{ version: '19.0', browser: 'firefox', os: 'win' },
{ version: '20.0', browser: 'firefox', os: 'win' },
{ version: '14.0', browser: 'chrome', os: 'win' },
{ version: '15.0', browser: 'chrome', os: 'win' },
{ version: '16.0', browser: 'chrome', os: 'win' },
{ version: '17.0', browser: 'chrome', os: 'win' },
{ version: '18.0', browser: 'chrome', os: 'win' },
{ version: '19.0', browser: 'chrome', os: 'win' },
{ version: '20.0', browser: 'chrome', os: 'win' },
{ version: '21.0', browser: 'chrome', os: 'win' },
{ version: '22.0', browser: 'chrome', os: 'win' },
{ version: '23.0', browser: 'chrome', os: 'win' },
{ version: '24.0', browser: 'chrome', os: 'win' },
{ version: '25.0', browser: 'chrome', os: 'win' },
{ version: '26.0', browser: 'chrome', os: 'win' },
{ version: '27.0', browser: 'chrome', os: 'win' },
{ version: '6.0', browser: 'ie', os: 'win' },
{ version: '7.0', browser: 'ie', os: 'win' },
{ version: '8.0', browser: 'ie', os: 'win' },
{ version: '10.0', browser: 'opera', os: 'win' },
{ version: '11.1', browser: 'opera', os: 'win' },
{ version: '11.5', browser: 'opera', os: 'win' },
{ version: '11.6', browser: 'opera', os: 'win' },
{ version: '12.10', browser: 'opera', os: 'win' },
{ version: '12.14', browser: 'opera', os: 'win' },
{ version: '4.0', browser: 'safari', os: 'win' },
{ version: '5.0', browser: 'safari', os: 'win' },
{ version: '5.1', browser: 'safari', os: 'win' },
{ version: '8.0', browser: 'ie', os: 'win' },
{ version: '9.0', browser: 'ie', os: 'win' },
{ version: '10.0', browser: 'ie', os: 'win' },
{ version: '4.0', browser: 'firefox', os: 'mac' },
{ version: '5.0', browser: 'firefox', os: 'mac' },
{ version: '6.0', browser: 'firefox', os: 'mac' },
{ version: '7.0', browser: 'firefox', os: 'mac' },
{ version: '8.0', browser: 'firefox', os: 'mac' },
{ version: '9.0', browser: 'firefox', os: 'mac' },
{ version: '10.0', browser: 'firefox', os: 'mac' },
{ version: '11.0', browser: 'firefox', os: 'mac' },
{ version: '12.0', browser: 'firefox', os: 'mac' },
{ version: '13.0', browser: 'firefox', os: 'mac' },
{ version: '14.0', browser: 'firefox', os: 'mac' },
{ version: '15.0', browser: 'firefox', os: 'mac' },
{ version: '16.0', browser: 'firefox', os: 'mac' },
{ version: '17.0', browser: 'firefox', os: 'mac' },
{ version: '18.0', browser: 'firefox', os: 'mac' },
{ version: '19.0', browser: 'firefox', os: 'mac' },
{ version: '20.0', browser: 'firefox', os: 'mac' },
{ version: '14.0', browser: 'chrome', os: 'mac' },
{ version: '16.0', browser: 'chrome', os: 'mac' },
{ version: '17.0', browser: 'chrome', os: 'mac' },
{ version: '18.0', browser: 'chrome', os: 'mac' },
{ version: '19.0', browser: 'chrome', os: 'mac' },
{ version: '20.0', browser: 'chrome', os: 'mac' },
{ version: '21.0', browser: 'chrome', os: 'mac' },
{ version: '22.0', browser: 'chrome', os: 'mac' },
{ version: '23.0', browser: 'chrome', os: 'mac' },
{ version: '24.0', browser: 'chrome', os: 'mac' },
{ version: '25.0', browser: 'chrome', os: 'mac' },
{ version: '26.0', browser: 'chrome', os: 'mac' },
{ version: '27.0', browser: 'chrome', os: 'mac' },
{ version: '11.1', browser: 'opera', os: 'mac' },
{ version: '11.6', browser: 'opera', os: 'mac' },
{ version: '12.0', browser: 'opera', os: 'mac' },
{ version: '12.12', browser: 'opera', os: 'mac' },
{ version: '12.13', browser: 'opera', os: 'mac' },
{ version: '4.0', browser: 'safari', os: 'mac' },
{ version: '5.0', browser: 'safari', os: 'mac' },
{ version: '5.1', browser: 'safari', os: 'mac' },
{ version: '6.0', browser: 'safari', os: 'mac' },
{ version: '3.2', device: 'iPad', os: 'ios' },
{ version: '4.3.2', device: 'iPad 2', os: 'ios' },
{ version: '5.0', device: 'iPad 2 (5.0)', os: 'ios' },
{ version: '5.1', device: 'iPad 3rd', os: 'ios' },
{ version: '6.0', device: 'iPad 3rd (6.0)', os: 'ios' },
{ version: '3.0', device: 'iPhone 3GS', os: 'ios' },
{ version: '4.0', device: 'iPhone 4', os: 'ios' },
{ version: '5.1', device: 'iPhone 4S', os: 'ios' },
{ version: '6.0', device: 'iPhone 4S (6.0)', os: 'ios' },
{ version: '6.0', device: 'iPhone 5', os: 'ios' },
{ version: '4.0', device: 'Amazon Kindle Fire 2', os: 'android' },
{ version: '4.0',
device: 'Amazon Kindle Fire HD 8.9',
os: 'android' },
{ version: '4.1', device: 'Google Nexus 7', os: 'android' },
{ version: '4.0',
device: 'Samsung Galaxy Note 10.1',
os: 'android' },
{ version: '4.0',
device: 'Samsung Galaxy Tab 2 10.1',
os: 'android' },
{ version: '2.2', device: 'Samsung Galaxy S', os: 'android' },
{ version: '2.3', device: 'Samsung Galaxy S II', os: 'android' },
{ version: '4.1', device: 'Samsung Galaxy S III', os: 'android' },
{ version: '2.3', device: 'Samsung Galaxy Note', os: 'android' },
{ version: '4.1',
device: 'Samsung Galaxy Note II',
os: 'android' },
{ version: '4.0', device: 'Samsung Galaxy Nexus', os: 'android' },
{ version: '2.3', device: 'Motorola Droid Razr', os: 'android' },
{ version: '2.3', device: 'Motorola Droid 4', os: 'android' },
{ version: '2.3', device: 'Motorola Photon 4G', os: 'android' },
{ version: '4.0', device: 'Motorola Atrix HD', os: 'android' },
{ version: '4.0', device: 'Motorola Razr', os: 'android' },
{ version: '4.1',
device: 'Motorola Razr Maxx HD',
os: 'android' },
{ version: '1.5', device: 'HTC Hero', os: 'android' },
{ version: '2.2', device: 'HTC Wildfire', os: 'android' },
{ version: '4.0', device: 'HTC Evo 3D', os: 'android' },
{ version: '4.0', device: 'HTC One X', os: 'android' },
{ version: '1.6', device: 'Sony Xperia X10', os: 'android' },
{ version: '4.0', device: 'Sony Xperia Tipo', os: 'android' },
{ version: '2.2', device: 'LG Optimus 3D', os: 'android' },
{ version: '4.2', device: 'LG Nexus 4', os: 'android' },
{ version: '1024x600',
device: 'Samsung Galaxy Tab',
os: 'opera' },
{ version: '1280x800',
device: 'Samsung Galaxy Tab 10.1',
os: 'opera' },
{ version: '240x320', device: 'HTC Wildfire', os: 'opera' },
{ version: '320x480', device: 'LG Optimus One', os: 'opera' },
{ version: '360x640',
device: 'Nokia 5800 XpressMusic',
os: 'opera' },
{ version: '480x800',
device: 'Samsung Galaxy S II',
os: 'opera' },
{ version: '480x854', device: 'Motorola Droid X', os: 'opera' },
{ version: '540x960', device: 'Motorola Atrix 4G', os: 'opera' } ]
created worker { id: 1040585 } from { browser: 'chrome',
version: 'latest',
os: 'mac',
url: 'http://jfsiii.github.io/XCSSMatrix/test/' }
got worker { version: '27.0',
id: 1040585,
browser: 'chrome',
os: 'mac',
status: 'queue' }
Still queued after 0.394 seconds. Retry in 1 seconds
got worker { version: '27.0',
id: 1040585,
browser: 'chrome',
os: 'mac',
status: 'queue' }
Still queued after 1.913 seconds. Retry in 2 seconds
got worker { version: '27.0',
id: 1040585,
browser: 'chrome',
os: 'mac',
status: 'queue' }
Still queued after 4.23 seconds. Retry in 4 seconds
got worker { version: '27.0',
id: 1040585,
browser: 'chrome',
os: 'mac',
status: 'queue' }
Still queued after 8.581 seconds. Retry in 8 seconds
got worker { version: '27.0',
id: 1040585,
browser: 'chrome',
os: 'mac',
status: 'queue' }
Still queued after 16.924 seconds. Retry in 16 seconds
got worker { version: '27.0',
id: 1040585,
browser: 'chrome',
os: 'mac',
status: 'queue' }
Still queued after 33.244 seconds. Retry in 32 seconds
got worker { version: '27.0',
id: 1040585,
browser: 'chrome',
os: 'mac',
status: 'queue' }
Still queued after 65.633 seconds. Retry in 64 seconds
got worker { version: '27.0',
id: 1040585,
browser: 'chrome',
os: 'mac',
status: 'queue' }
Still queued after 130.352 seconds. Retry in 128 seconds
got worker { version: '27.0',
id: 1040585,
browser: 'chrome',
os: 'mac',
status: 'queue' }
Still queued after 259.1 seconds. Retry in 256 seconds
got worker { version: '27.0',
status: 'queue',
os: 'mac',
browser: 'chrome',
id: 1040585 }
Still queued after 515.434 seconds. Retry in 512 seconds
got worker { status: 'queue',
id: 1040585,
browser: 'chrome',
version: '27.0',
os: 'mac' }
Still queued after 1039.532 seconds. Retry in 1024 seconds
^C
@jfsiii
Copy link
Author

jfsiii commented May 14, 2013

Commenting in case anyone else runs into this.

The free accounts are limited to Windows browsers. See the pricing plan. Note that you get 0 Mac & Mobile sessions.

ISTM there are a few API issues here:

  1. /browsers exists to list available browsers. Why respond with browsers I can't use?
  2. If I can't create a "mac" worker, return [Error: Validation Failed] or some other failure. The current MO is extra work for BrowserStack and misleading to me

I'll research more and create a ticket in https://github.com/browserstack/api if need be.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment