Internet Explorer Selenium Protractor E2E测试

5
我希望在我们的CI构建过程中添加一些端到端测试。我已经针对Chrome和Firefox添加了它们(作为最简单的测试)。但我真的想为几个IE版本做这件事。如何在Linux / Mac上注入它到构建过程中呢?
我找到了这样的文章:http://elgalu.github.io/2014/run-protractor-against-internet-explorer-vm/,但看起来并不完全符合我的需求。有人能提供一个简单的配置示例吗?
1个回答

3
您需要一个selenium服务器,可以是自己的,也可以使用browserstack/SauceLabs。如果您计划自己完成,简单来说,您需要设置一个selenium网格并注册节点,其中一个节点应该是运行IE测试的Windows机器。

就我个人而言,我已经成功地在多个浏览器上运行了protractor e2e测试,包括不同的ChromeFirefoxIE版本在browserstack上。这是我使用的配置(它还包括jasmine junit reporter,CI需要它):

'use strict';

var browserstackUser = 'user';
var browserstackKey = 'key';

exports.config = {
    multiCapabilities: [
        {
            'browserstack.user': browserstackUser,
            'browserstack.key': browserstackKey,
            'browserstack.local': 'true',
            'browserstack.debug': 'true',

            'browserName': 'Chrome',
            'os': 'Windows',
            'os_version': '8',
            'resolution': '1024x768',

            specs: [
                '*.spec.js'
            ],
            exclude: [
                'footer.disabledCookies.spec.js'
            ]
        },

        {
            'browserstack.user': browserstackUser,
            'browserstack.key': browserstackKey,
            'browserstack.local': 'true',
            'browserstack.debug': 'true',

            'browser': 'Internet Explorer',
            'browser_version': '8.0',
            'os': 'Windows',
            'os_version': '7',
            'resolution': '1024x768',

            specs: [
                '*.spec.js'
            ]
        },

        {
            'browserstack.user': browserstackUser,
            'browserstack.key': browserstackKey,
            'browserstack.local': 'true',
            'browserstack.debug': 'true',

            'browserName': 'Internet Explorer',
            'browser_version': '9.0',
            'os': 'Windows',
            'os_version': '7',
            'resolution': '1024x768',

            specs: [
                '*.spec.js'
            ],
            exclude: [
                'footer.disabledCookies.spec.js'
            ]
        }
    ],

    // Browserstack's selenium server address
    seleniumAddress: 'http://hub.browserstack.com/wd/hub',

    framework: 'jasmine',

    allScriptsTimeout: 300000,

    baseUrl: 'http://localhost:9001',

    onPrepare: function () {
        require('jasmine-reporters');
        var capsPromise = browser.getCapabilities();
        capsPromise.then(function (caps) {
            var browserName = caps.caps_.browserName.toUpperCase();
            var browserVersion = caps.caps_.version;
            var prePendStr = browserName + "-" + browserVersion + "-";
            jasmine.getEnv().addReporter(new
                jasmine.JUnitXmlReporter("test-results", true, true, prePendStr));
        });
    },

    jasmineNodeOpts: {
        showColors: true,
        isVerbose: true,
        includeStackTrace: true,
        defaultTimeoutInterval: 3600000
    }
};

不错啊,我真的没有想过BrowserStack...我们已经在这里有一个账户了,但是为了一些手动测试目的,它确实可以很好地工作。我希望基础自动化订阅足以支持5个浏览器版本...它说可以进行2个并行测试。 - Sergey Teplyakov
@user2174981 是的,我认为我们正在使用最便宜的计划,其中包括2个并行测试。对我们来说已经足够了,但我们只在一个内部项目中运行自动化测试。我们将更广泛地使用bs - 看看是否足够。很高兴能帮到你,祝你测试愉快。 - alecxe

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接