Запустите код WDIO в определенном месте с пользовательскими возможностями - PullRequest
0 голосов
/ 24 декабря 2018

У меня есть локальная лаборатория мобильных устройств (точно так же, как Sauce).Я использую их клиент для резервирования устройства и хочу запустить базу кода на URL-адресе Appium, который создан в этой лаборатории

Я устал использовать функцию onPrepare для резервирования и создания новых возможностей и передачи их объекту возможностейв файл конфигурации WDIO.когда я запускаю скрипт npm, он запускает только функцию onPrepare, но не создает в сеансе Appium est (хотя он прекрасно работает, когда я размещаю Appium локально)

/**
 * WebdriverIO config file to run tests on native mobile apps.
 * Config file helps us configure all the settings and setup environments
 * to run our tests.
 */
var deviceConf = require('./configRegistry').device;
var BASE_URL = 'HOST URL';
var ReservationCapabilities = require('**/lib/reservation_capabilities').ReservationCapabilities;
var PlexusCredentials = require('**/lib/plexus_credentials').PlexusCredentials;
var PlexusClient = require('**/plexus_client').PlexusClient;
var Reservation = require('**/lib/reservation').Reservation;
var login = require('../../resources/login_credentials');
var reservation, combinedCaps,deviceId;
var webdriverio = require('webdriverio');

const host = '127.0.0.1';   // default appium host
const port = 8080;          // default appium port


const waitforTimeout = 60000;
const commandTimeout = 60000;

exports.config = {
    debug: false,
    specs: [
        'resources/features/*.feature'
    ],
    host: BASE_URL,
    port: port,
    path: '/wd/hub',
    maxInstances: 1,


    /**
     * test configurations
     */
    logLevel: 'silent',
    coloredLogs: true,
    framework: 'cucumber',          // cucumber framework specified
    cucumberOpts: {
        compiler: [],
        backtrace: true,
        failFast: false,
        timeout: 5 * 60 * 60000,
        require: ['test/resources/features/*.feature']      // importing/requiring step definition files
    },

    /**
     * hooks help us execute the repeatitive and common utilities
     * of the project.
     */
    onPrepare: async function () {
        console.log('<<< Setting up code for Appium test >>>');
        console.log('Trying to make session - - ' + login.userName);
        reservation = new Reservation();
        var credentials = new PlexusCredentials(login.userName, login.labKey);
        var plexusClient = new PlexusClient(credentials);
        var reservationCapabilities = new ReservationCapabilities(login.userName + ' reserved device using WDIO', 10);
        reservationCapabilities.plexusDeviceType = login.deviceType;
        reservation = await plexusClient.reserveDevice(reservationCapabilities);
        deviceId = reservation.device.udid.id;
        capabilities = [{
            'app': deviceConf[0].appPackage,
            'appPackage': deviceConf[0].appPackage,
            'noReset': true,
            'deviceId': deviceId,
            'deviceName': deviceId,
            'platform': reservation.device.udid.os,
            'appActivity': deviceConf[0].appActivity,
            'deviceLabAuth': login.userName + ':' + login.labKey + ':' + reservation.device.reservationId,
            'newCommandTimeout': deviceConf[0].newCommandTimeout,
            'androidPackage': deviceConf[0].appPackage,
            'unicodeKeyboard': true,
            'udid': deviceId,
            'resetKeyboard': false
        }];

    },

    capabilities: combinedCaps,

    beforeSession : function(capabilities){
        console.log(capabilities +"Before function");
    },
    afterScenario: function (scenario) {
        console.log("afterScenario");
        // browser.screenshot();
    },

    onComplete: async function () {
        console.log('<<< TESTING FINISHED >>>');
        await reservation.cancel();
    }

};

Console log:

<<< NATIVE APP TESTS STARTED >>>
Trying to make session - - receivingtest
reservation created
<<< TESTING FINISHED >>>

Я хочу отправить правильный URL / порт / путьс желаемой возможностью драйвера WDIO

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...