让量角器测试在SauceLabs上运行

问题描述 投票:0回答:2

我正试图用量角器去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
2个回答
1
投票

首先,你提到这一点

它只是在我的本地机器上运行而不是通过隧道。有什么建议

这与隧道无关,但与以下内容有关:

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

希望这可以帮助


0
投票

你从哪里获得tunnelIdentifier?

你想确定:

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