【问题标题】:How to run protractor e2e test without opening the browser via Jenkins server?如何在不通过 Jenkins 服务器打开浏览器的情况下运行量角器 e2e 测试?
【发布时间】:2014-12-10 20:58:33
【问题描述】:
  1. 我们将 mercurial 存储库与 Jenkins 服务器集成在一起。
  2. 每当更新存储库时,Jenkins 服务器都会触发自动构建并自动运行 E2E 测试用例。它启动浏览器来运行测试用例。
  3. 所以,在我的情况下,在服务器机器上运行的 Jenkins 没有安装浏览器。因此我们需要在不打开浏览器的情况下运行量角器 E2E 测试。

提前致谢。 非常感谢任何帮助。

【问题讨论】:

    标签: browser jenkins protractor angularjs-e2e


    【解决方案1】:

    您需要一个 selenium 服务器 - 要么是您自己的(在这种情况下,您需要启动 selenium 节点),要么是第三方服务,如 browserstack 或 saucelabs。

    就个人而言,我有配置Bamboo 以每天在 browserstack 上运行 e2e 测试的经验。这是我们使用的量角器配置:

    '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',
    
                specs: [
                    '*.spec.js'
                ],
                exclude: [
                    'footer.disabledCookies.spec.js',
                    'footer.disabledFlash.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',
                    'footer.disabledFlash.spec.js'
                ]
            }
        ],
    
        maxSessions: 2,
    
        // 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
        }
    };
    

    注意JUnitXmlReporter 来自jasmine-reporters 的使用,它将测试结果报告到JUnit XML 格式的文件中。您可以对其进行后处理以在 jenkins 中显示测试结果。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-05
      • 2015-07-08
      • 1970-01-01
      • 2015-01-30
      相关资源
      最近更新 更多