как запустить несколько удаленных устройств с разными возможностями на sauceLabs, но в течение одного запуска тестов запускаются два устройства, мобильное и браузер, я помещаю их возможности в переменные webClient и клиента, например, мне нужно запустить три параллельных запустить каждый из них запускает два. Устройство представляет собой браузер и мобильный телефон, и их возможности описаны в двух переменных webClient и client.
Первое, что произошло, - это набор возможностей, который запускает все устройства на «тарелках», но когда начинается тест, переменные client и webClient не определены.
exports.config = {
suites: {
specs: [
'./dist/e2e/Specs/1_sauceLabs_test.js'
]
},
capabilities:
[
{
browserName: 'chrome',
platformName: 'OS X',
pageLoadStrategy: 'normal'
},
{
appiumVersion: '1.13.0',
platformVersion: "8.1",
deviceName: "Samsung Galaxy S9 Plus WQHD GoogleAPI Emulator",
browserName: "",
platformName: "Android",
app: 'http://appium.s3.amazonaws.com/ContactManager.apk',
deviceOrientation: 'portrait'
},
{
appiumVersion: '1.13.0',
platformVersion: "8.1",
deviceName: "Samsung Galaxy S9 Plus WQHD GoogleAPI Emulator",
browserName: "",
platformName: "Android",
app: 'http://appium.s3.amazonaws.com/ContactManager.apk',
deviceOrientation: 'portrait'
}
],
maxInstances: 4,
deprecationWarnings: false,
sync: true,
logLevel: 'error',
coloredLogs: true,
bail: 0,
screenshotPath: './errorShots/',
baseUrl: 'https://google.com',
waitforTimeout: 20000,
connectionRetryTimeout: 90000,
connectionRetryCount: 3,
user: '**************',
key: '*********************************',
sauceConnectOpts: {
logger: function (message) {
console.log(`[SauceLabs]: ${message}`);
}
},
services: ['sauce'],
sauceConnect: true,
framework: 'jasmine',
jasmineNodeOpts: {
random: false,
showColors: true,
includeStackTrace: true,
defaultTimeoutInterval: 12 * 60 * 1000,
},
onPrepare: (config, capabilities) => {
},
beforeSession: (config, capabilities, specs) => {
require('babel-register');
},
before: (capabilities, specs) => {
let SpecReporter = require('jasmine-spec-reporter/built/main').SpecReporter;
jasmine.getEnv().addReporter(new SpecReporter({displayStacktrace: true, displayErrorMessages: true}));
isTablet = client.desiredCapabilities.isTablet;
}
};
с таким массивом я получаю переменные, но только для одного прогона и с двумя устройствами, а не с несколькими устройствами
capabilities: {
webClient: {
desiredCapabilities: {
browserName: 'chrome',
platformName: 'OS X',
pageLoadStrategy: 'normal'
}
},
client: {
desiredCapabilities: {
appiumVersion: '1.13.0',
platformVersion: "8.1",
deviceName: "Samsung Galaxy S9 Plus WQHD GoogleAPI Emulator",
browserName: "",
platformName: "Android",
app: 'http://appium.s3.amazonaws.com/ContactManager.apk',
deviceOrientation: 'portrait'
}
}
}
Я попробовал это снова? но та же ошибка 'ReferenceError: клиент не определен'
capabilities: [{
webClient: {
desiredCapabilities: {
browserName: 'chrome',
platformName: 'OS X',
pageLoadStrategy: 'normal'
}
},
client: {
desiredCapabilities: {
appiumVersion: '1.13.0',
platformVersion: "8.1",
deviceName: "Samsung Galaxy S9 Plus WQHD GoogleAPI Emulator",
browserName: "",
platformName: "Android",
app: 'http://appium.s3.amazonaws.com/ContactManager.apk',
deviceOrientation: 'portrait'
}
}
}, {
webClient: {
desiredCapabilities: {
browserName: 'chrome',
platformName: 'OS X',
pageLoadStrategy: 'normal'
}
},
client: {
desiredCapabilities: {
appiumVersion: '1.13.0',
platformVersion: "8.1",
deviceName: "Samsung Galaxy S9 Plus WQHD GoogleAPI Emulator",
browserName: "",
platformName: "Android",
app: 'http://appium.s3.amazonaws.com/ContactManager.apk',
deviceOrientation: 'portrait'
}
}
}]