【问题标题】:Getting Protractor Tests to Run on SauceLabs在 SauceLabs 上运行量角器测试
【发布时间】:2019-03-23 14:00:26
【问题描述】:

我正在尝试使用量角器去 SauceLabs 进行一些测试。 我的 SauceConnect 已启动并正在运行。我相信我的 protractor.config.js 设置正确,但是当我使用 ng e2e --suite smoke 在我的机器上运行测试时,它只是在我的本地机器上运行,而不是通过隧道。有什么建议么?我一直在关注这个“tutorial”并且进展顺利,但我只是没有看到任何东西通过隧道。

这是我的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));
        });
    },
};

【问题讨论】:

    标签: protractor saucelabs


    【解决方案1】:

    首先你要提到这个

    它只是在我的本地机器上运行,而不是通过隧道。任何建议

    这与隧道无关,但与:

    1. 你还有directConnect: true,,从你的配置中删除它
    2. 您已将 Sauce Labs 凭据添加到您的功能中,但您应该在根级别的配置文件中使用它们。这是和example(它是为 TypeScript 编写的,但它应该让您了解如何设置配置文件)。隧道标识符是正确的,你只需要确保你得到了@fijiaaron提到的正确的隧道ID

    希望对你有帮助

    【讨论】:

    • 非常感谢,原来是directConnect
    【解决方案2】:

    你从哪里得到你的隧道标识符?

    您要确定:

    1. 隧道正在运行
    2. 您可以从您正在测试的地方访问隧道
    3. 如果您有一个命名隧道(例如 sc -i myTunnel),那么“myTunnel”应该是隧道标识符,而不是控制台中显示的隧道 ID(即不是 Tunnel ID: cdceac0e33db4d5fa44093e191dfdfb0
    4. 如果您有未命名的隧道,则无需指定隧道标识符即可使用。
    5. 如果您似乎正在使用隧道,但无法访问本地环境,请尝试在 Sauce Labs 中进行手动测试会话并选择隧道以查看它是否在那里工作。

    【讨论】:

      猜你喜欢
      • 2016-03-11
      • 2014-07-22
      • 2015-11-10
      • 2013-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-18
      相关资源
      最近更新 更多