使量角器测试在SauceLabs上运行

时间:2019-03-22 20:37:31

标签: protractor saucelabs

我正在尝试与量角器一起去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));
        });
    },
};

2 个答案:

答案 0 :(得分:1)

首先您要提到此

  

它只是在我的本地计算机上运行,​​并且没有通过隧道。有什么建议

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

  1. 您仍然有public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("Enter a word: "); String word = sc.next(); String[] array = word.split(""); int length = array.length; String[] auxArray = new String[length]; String aux = ""; for (int i = 0; i < length; i++) { aux += array[i]; auxArray[i] = aux; System.out.println(aux); } for (int i = length - 1; i >= 0; i--) { System.out.println(auxArray[i]); } } ,将其从您的配置中删除
  2. 您已将Sauce Labs凭据添加到功能中,但应在根级别的配置文件中使用它们。和example(这是为TypeScript编写的,但它应该使您了解如何设置配置文件)。隧道标识符正确,您只需要确保获得正确的隧道ID(如@fijiaaron所述即可)

希望这会有所帮助

答案 1 :(得分:0)

您从哪里获得tunnelIdentifier?

您要确保:

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