如何同时运行两个不同的规格?

时间:2018-06-27 20:32:01

标签: gulp protractor

我只是想知道是否可以使用量角器同时运行两个不同的规格。

我的protractor.config.js如下:

var browserCapabilities = [
    {
        browserName: 'chrome',
        maxInstances: 2,
        seleniumAddress: seleniumServer,
        platform: 'ANY',
        version: 'ANY',
        chromeOptions: {
            args: ['--no-sandbox', '--test-type=browser', '--lang=en', '--window-size=1680,1050'],
            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: false,
    allScriptsTimeout: 25 * 1000,
    jasmineNodeOpts: {
        defaultTimeoutInterval: 90 * 1000
    },
    getPageTimeout: 120 * 1000,
    suites: {
        adminRoles: 'compiled/artemis/settings/adminAppRoles.scenario.js',
        adminUsers: 'compiled/artemis/settings/adminUsers.scenario.js',
        benchmarks: 'compiled/artemis/benchmarks/benchmark.scenario.js',
        claims: 'compiled/artemis/claims/claims.scenario.js',
        cohorts: 'compiled/artemis/cohorts/cohort.scenario.js',
        customBD: 'compiled/artemis/dimensions/*.scenario.js',
        exploreCreate: 'compiled/artemis/explorations/create.scenario.js',
        exploreInMeasureFilters: 'compiled/artemis/explorations/inMeasureFilters.scenario.js',
        exploreRead: 'compiled/artemis/explorations/read.scenario.js',
        exploreRegFilters: 'compiled/artemis/explorations/regularFilters.scenario.js',
        exploreUpdate: 'compiled/artemis/explorations/update.scenario.js',
        home: 'compiled/artemis/home/home.scenario.js',
        login: 'compiled/artemis/login/*.scenario.js',
        mgmtConsole: 'compiled/artemis/settings/mgmtConsoleSysDef.scenario.js',
        navigation: 'compiled/artemis/navigation/navigation.scenario.js',
        sharing: 'compiled/artemis/sharing/sharingTests.scenario.js',
        smoke: 'compiled/artemis/smokeTests/smokeTests.scenario.js',
        stories: 'compiled/artemis/story/story.scenario.js',
        visualizeCreate: 'compiled/artemis/visualize/visualizeCreate.scenario.js',
        visualizeRead: 'compiled/artemis/visualize/visualizeRead.scenario.js',
        visualizeUpdate: 'compiled/artemis/visualize/visualizeUpdate.scenario.js',
        vizInMeasureFilters: 'compiled/artemis/visualize/vizInMeasureFilters.scenario.js',
        vizRegFilters: 'compiled/artemis/visualize/vizRegularFilters.scenario.js',
        tritonLogin: 'compiled/triton/login/*.scenario.js',
        tritonCustomers: 'compiled/triton/customers/*.scenario.js',
        tritonDashboard: 'compiled/triton/dashboard/*.scenario.js'

    },

    multiCapabilities: browserCapabilities,

    framework: 'jasmine2',
    onPrepare: function() {
        //Set Up a JUnit XML Reporter - Makes a nice test results area and trend graph in Jenkins
        var jasmineReporters = require('jasmine-reporters');
        jasmine.getEnv().addReporter(new jasmineReporters.JUnitXmlReporter({
            consolidateAll: true,
            savePath: 'report',
            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
        });

        //Setup screenshots
        jasmine.getEnv().addReporter(screenShotReporter);
        jasmine.getEnv().addReporter(consoleReporter);

        browser.get(browser.baseUrl);
    },

    // Setup the report before any tests start
    beforeLaunch: function() {
        return new Promise(function(resolve) {
            screenShotReporter.beforeLaunch(resolve);
        });
    },

    // Close the report after all tests finish
    afterLaunch: function(exitCode) {
        return new Promise(function(resolve) {
            screenShotReporter.afterLaunch(resolve.bind(this, exitCode));
        });
    },

};
我使用以下命令启动测试:

gulp e2e --suite suiteName --baseUrl http://myurl.com/

例如,我希望能够同时启动我的登录套件和导航套件。

我已经尝试了maxInstances: 2变量中的browserCapabilities,但这仅启动了登录套件。

我尝试做两个chrome对象实例,然后做maxSessions: 2,但这只启动了两次登录测试。

我正在构想这样的命令:gulp e2e --suite login --suite navigation --baseUrl http://myurl.com,并让它同时启动两个套件。

1 个答案:

答案 0 :(得分:1)

您可以使用shardTestFiles: true

// ...
capabilities: {
    shardTestFiles: true, 
     maxInstances: 2,
    // ...
相关问题