tw-saucelabs-connector
v1.0.1
Published
Helps connect the local machine to SauceLabs and start a remote browser.
Downloads
1
Readme
saucelabs-connector
Helps connect the local machine to SauceLabs and start a remote browser. The reason that this repo is exist is to acommodate saucelabs and testcafe integration behind proxy, the previous implementation doesn't contain proxy setting for connecting to saucelabs REST API and for tunnel connection.
Install
$ npm install @otr/saucelabs-connector
Publishing the package
$ npm run publish
will build the library and publish it to @otr nexus registry
Development note
Please make sure to use node version 10.x to develop this plugin
Usage
var SauceLabsConnector = require('saucelabs-connector');
// Use this online tool to generate a valid platform configuration:
// https://wiki.saucelabs.com/display/DOCS/Platform+Configurator#/
var browserInfo = {
platform: 'Windows 10',
browserName: 'chrome',
version: '45.0'
};
var pageUrl = 'www.example.com';
var jobTimeout = 60; // in seconds
var jobOptions = {
jobName: 'Sample tests',
build: 'build-1234',
tags: ['tag1', 'tag2', 'tag3']
};
var saucelabsConnector = new SauceLabsConnector('SAUCELABS_USERNAME', 'SAUCELABS_ACCESS_KEY');
var saucelabsBrowser = null;
// Connects the local machine to SauceLabs
saucelabsConnector
.connect()
.then(function () {
// Use the waitForFreeMachines method to ensure that the required number of machines is available.
var machineCount = 3; // the required number of machines.
var requestInterval = 30000; // the request delay in milliseconds.
var maxAttemptCount = 5; // the maximum number of attempts.
return saucelabsConnector.waitForFreeMachines(machineCount, requestInterval, maxAttemptCount);
})
.then(function () {
// Starts a remote browser on SauceLabs with the specified url.
// jobOptions and jobTimeout are optional arguments.
return saucelabsConnector.startBrowser(browserInfo, pageUrl, jobOptions, jobTimeout);
})
.then(function (browser) {
saucelabsBrowser = browser;
// Do some work with the browser
})
.then(function () {
// Closes the browser
return saucelabsConnector.stopBrowser(saucelabsBrowser);
})
.then(function () {
return saucelabsConnector.disconnect();
});
Additional Configuration
You can select the data center you want to connect to, by setting the environment variable SAUCE_API_HOST
to the respective data center's host:
export SAUCE_API_HOST=saucelabs.com # for us-west-1, default
export SAUCE_API_HOST=eu-central-1.saucelabs.com # for eu-central-1