Получение тестов транспортира для запуска на SauceLabs - PullRequest
0 голосов
/ 22 марта 2019

Я пытаюсь запустить некоторые тесты с транспортиром, идущим в SauceLabs. У меня есть SauceConnect и работает. Я считаю, что мой protractor.config.js настроен правильно, но, когда я запускаю тесты на моей машине с ng e2e --suite smoke, он просто работает на моей локальной машине и не проходит через туннель. Какие-либо предложения? Я следовал этому " учебнику ", и он шел довольно хорошо, но я просто не вижу ничего, проходящего через туннель.

Вот мой protractor.config.js файл:

const baseUrl = '<BASEURL>';
const maxNumberOfInstances = process.env.NUMBER_OF_INSTANCES ? process.env.NUMBER_OF_INSTANCES : 1;
const reportPath = 'protractor/report';
const HtmlScreenshotReporter = require('protractor-jasmine2-screenshot-reporter');
const screenShotReporter = new HtmlScreenshotReporter({
    dest: reportPath,
    filename: 'artemis-e2e-report.html'
});
const SAUCELABS_USERNAME = '<SAUCEUSERNAME';
const SAUCELABS_AUTHKEY = '<SAUCEKEY>';

const chromeArgs = process.env.IS_LOCAL ? ['--no-sandbox', '--test-type=browser', '--lang=en', '--window-size=1680,1050'] : ['--disable-gpu', '--no-sandbox', '--test-type=browser', '--lang=en', '--window-size=1680,1050'];
const browserCapabilities = [{
    sauceUser: SAUCELABS_USERNAME,
    sauceKey: SAUCELABS_AUTHKEY,
    browserName: 'chrome',
    tunnelIdentifier: '<SAUCETUNNEL>',
    shardTestFiles: true,
    maxInstances: maxNumberOfInstances,
    platform: 'Windows 10',
    version: '73.0',
    screenResolution: '1280x1024',
    chromeOptions: {
        args: chromeArgs,
        prefs: {
            'credentials_enable_service': false,
            'profile': {
                'password_manager_enabled': false
            },
            download: {
                prompt_for_download: false,
                directory_upgrade: true,
                default_directory: 'C:\\downloads\\'
            },
        },
    },
    loggingPrefs: {
        browser: 'SEVERE'
    },
}, ];

// Protractor config
exports.config = {
    baseUrl: baseUrl,

    directConnect: true,
    allScriptsTimeout: 2 * 60 * 1000,
    jasmineNodeOpts: {
        defaultTimeoutInterval: 3 * 60 * 1000
    },
    getPageTimeout: 2 * 60 * 1000,
    suites: {
        smoke: 'protractor/smokeTests/*.scenario.ts',
    },

    multiCapabilities: browserCapabilities,

    framework: 'jasmine2',
    onPrepare: function () {
        browser.waitForAngularEnabled(true);
        require('ts-node').register({
            project: 'protractor/tsconfig.json',
        });
        const jasmineReporters = require('jasmine-reporters');
        const jUnitXMLReporter = new jasmineReporters.JUnitXmlReporter({
            consolidateAll: false,
            savePath: reportPath,
            filePrefix: 'xmloutput'
        });

        const JasmineConsoleReporter = require('jasmine-console-reporter');
        const consoleReporter = new JasmineConsoleReporter({
            colors: 1,
            cleanStack: 1,
            verbosity: 4,
            listStyle: 'indent',
            activity: true,
            emoji: true,
            beep: true,
            timeThreshold: {
                ok: 10000,
                warn: 15000,
                ouch: 30000,
            }
        });

        jasmine.getEnv().addReporter(jUnitXMLReporter);
        jasmine.getEnv().addReporter(screenShotReporter);
        jasmine.getEnv().addReporter(consoleReporter);

        browser.get(browser.baseUrl);
    },

    beforeLaunch: function () {
        return new Promise(function (resolve) {
            screenShotReporter.beforeLaunch(resolve);
        });
    },

    afterLaunch: function (exitCode) {
        return new Promise(function (resolve) {
            screenShotReporter.afterLaunch(resolve.bind(this, exitCode));
        });
    },
};

Ответы [ 2 ]

1 голос
/ 23 марта 2019

Прежде всего вы упоминаете об этом

он просто работает на моей локальной машине и не проходит через туннель. Любые предложения

Это не относится к туннелю, но относится к:

  1. У вас все еще есть directConnect: true,, удалите его из вашей конфигурации
  2. Вы добавили учетные данные Sauce Labs в свои возможности, но вы должны использовать их в своем конфигурационном файле на корневом уровне. Вот и пример (он написан для TypeScript, но он должен дать вам представление о том, как настроить ваш конфигурационный файл). Идентификатор туннеля верный, вам нужно только убедиться, что вы получаете правильный идентификатор туннеля, как @fijiaaron упомянул

Надеюсь, это поможет

0 голосов
/ 23 марта 2019

Откуда вы получаете ваш tunnelIdentifier?

Вы хотите убедиться:

  1. Туннель работает
  2. Вы можете получить доступ к туннелю, откуда вы тестируете
  3. Если у вас есть именованный туннель (например, sc -i myTunnel), тогда "myTunnel" должен быть tunnelIdentifier, а не идентификатор туннеля, который отображается в консоли outnot (т.е. не Tunnel ID: cdceac0e33db4d5fa44093e191dfdfb0)
  4. Если у вас есть безымянный туннель, вам не нужно указывать tunnelIdentifier для его использования.
  5. Если вы используете туннель, но не можете получить доступ к своей локальной среде, попробуйте провести сеанс ручного тестирования в Sauce Labs и выберите туннель, чтобы проверить, работает ли он там.
...