如何在jenkins中设置和运行角度js量角器测试?

时间:2016-02-12 02:24:47

标签: javascript angularjs jenkins protractor

我有以下配置但收到错误

ERROR

registration capabilities Capabilities [{platform=WINDOWS, ensureCleanSession=true, browserName=internet explorer, version=}] does not match the current platform LINUX
18:17:05.892 INFO - Driver provider org.openqa.selenium.edge.EdgeDriver registration is skipped:
registration capabilities Capabilities [{platform=WINDOWS, browserName=MicrosoftEdge, version=}] does not match the current platform LINUX
18:17:05.896 INFO - Driver class not found: com.opera.core.systems.OperaDriver
18:17:05.896 INFO - Driver provider com.opera.core.systems.OperaDriver is not registered
18:17:06.187 WARN - Failed to start: SocketListener0@0.0.0.0:4444
Exception in thread "main" java.net.BindException: Selenium is already running on port 4444. Or some other service is.
    at org.openqa.selenium.server.SeleniumServer.start(SeleniumServer.java:492)
    at org.openqa.selenium.server.SeleniumServer.boot(SeleniumServer.java:305)
    at org.openqa.selenium.server.SeleniumServer.main(SeleniumServer.java:245)
    at org.openqa.grid.selenium.GridLauncher.main(GridLauncher.java:64)
Selenium Standalone has exited with code 1
Selenium standalone server started at http://10.33.24.128:43448/wd/hub

Jenkins命令

## run testing
node_modules/protractor/bin/webdriver-manager update --standalone
node_modules/protractor/bin/webdriver-manager start > /dev/null 2>&1 &

while ! curl http://localhost:4444/wd/hub/status &>/dev/null; do :; done

node_modules/protractor/bin/protractor protractor.conf.js

我的配置文件位于

之下
exports.config = {
  directConnect: false,

  capabilities: {
    'browserName': 'chrome'
  },
    chromeDriver: './node_modules/protractor/selenium/chromedriver',
  seleniumAddress: 'http://localhost:4444/wd/hub',
  framework: 'jasmine',
  specs: ['tests/specs/*-spec.js'],
  jasmineNodeOpts: {
    showColors: true,
    defaultTimeoutInterval: 30000
  }
};

2 个答案:

答案 0 :(得分:0)

您收到错误消息:

  

Selenium已在端口4444上运行。或者其他一些服务是。

所以你的测试失败了,因为无法设置Selenium,因为它所需的端口已经在使用。

这可能是因为另一个构建在同一台机器上并行运行,或者因为Selenium没有被先前的构建停止,或者其他一些服务器正在使用端口4444。

在开始构建之前,您需要确保此端口是免费的。

您可以在要使用Port Allocator pluginThrottle Concurrent Builds plugin的同一端口号的同一台计算机上限制并行运行的多个版本。

答案 1 :(得分:0)

避免直接处理并将其委托给像gulp-angular-protractor这样的gulp插件:

1)。启动/停止硒服务器

2)。并运行量角器测试

完整示例

<强> Gulpfile.js

/*jshint node: true, camelcase: false*/
/*global require: true*/

'use strict';

var gulp = require('gulp'),
gulpProtractorAngular = require('gulp-angular-protractor');

// Setting up the test task
gulp.task('regression-suite', function(callback) {
    gulp
        .src(['./tests/specs/*spec.js'])
        .pipe(gulpProtractorAngular({
            'configFile': 'protractor.conf.js',
            'debug': false,
            'autoStartStopServer': true
        }))
        .on('error', function(e) {
            console.log(e);
        })
        .on('end', callback);
});

<强> conf.js

与之前相同

命令提示

C:>gulp regression-suite

<强>詹金斯

添加一个步骤作为执行Windows命令

gulp regression-suite