使用gulp运行量角器和selenium时出现问题

使用gulp运行量角器和selenium时出现问题,selenium,gulp,protractor,Selenium,Gulp,Protractor,我不熟悉量角器,也不熟悉gulp任务。我的gulp文件如下所示: 'use strict'; var global = { app_files: { spec: './e2e/**/*_spec.js' }, folders: { specs: './specs' } }; var gulp = require('gulp'); var jshint = require('gulp-jshint'); var stylish

我不熟悉量角器,也不熟悉gulp任务。我的gulp文件如下所示:

    'use strict';
var global = {
    app_files: {
        spec: './e2e/**/*_spec.js'
    },
    folders: {
        specs: './specs'
    }
};
var gulp = require('gulp');
var jshint = require('gulp-jshint');
var stylish = require('jshint-stylish');
var beautify = require('gulp-jsbeautifier');
var protractor = require('gulp-protractor').protractor;
// Download and update the selenium driver
var webdriver_update = require('gulp-protractor').webdriver_update;
var webdriver_standalone = require('gulp-protractor').webdriver_standalone;
// Downloads the selenium webdriver
gulp.task('webdriver_update', webdriver_update);
// Runs the selenium webdriver
gulp.task('webdriver_standalone', webdriver_standalone);
// Lint spec files
gulp.task('lint', function() {
    return gulp.src(global.app_files.specs).pipe(jshint()).pipe(jshint.reporter(stylish)).pipe(jshint.reporter('fail'));
});
// Beautify spec files
gulp.task('beautify', function() {
    return gulp.src(global.app_files.specs).pipe(beautify({
        config: '.jsbeautifyrc'
    })).pipe(gulp.dest(global.folders.specs));
});
gulp.task('e2e:local', ['lint', 'webdriver_update'], function() {
    gulp.src([global.app_files.specs], {
        read: false
    }).pipe(protractor({
        configFile: 'protractor.conf.js'
    })).on('error', function(e) {
        throw e;
    });
});
gulp.task('e2e', ['e2e:local']);
但当我使用-gulpe2e:local在量角器中运行时,我得到了以下错误:

MacBook-Pro:spec sab$ protractor protractor.conf.js -gulpe2e:local
Using the selenium server at http://127.0.0.1:4444/wd/hub
[launcher] Running 1 instances of WebDriver

/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/http/index.js:174
      callback(new Error(message));
               ^
Error: ECONNREFUSED connect ECONNREFUSED 127.0.0.1:4444
    at ClientRequest.<anonymous> (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/http/index.js:174:16)
    at emitOne (events.js:77:13)
    at ClientRequest.emit (events.js:169:7)
    at Socket.socketErrorListener (_http_client.js:265:9)
    at emitOne (events.js:77:13)
    at Socket.emit (events.js:169:7)
    at emitErrorNT (net.js:1256:8)
    at nextTickCallbackWith2Args (node.js:455:9)
    at process._tickCallback (node.js:369:17)
From: Task: WebDriver.createSession()
    at Function.webdriver.WebDriver.acquireSession_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/webdriver.js:157:22)
    at Function.webdriver.WebDriver.createSession (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/webdriver.js:131:30)
    at [object Object].Builder.build (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/builder.js:445:22)
    at [object Object].DriverProvider.getNewDriver (/usr/local/lib/node_modules/protractor/lib/driverProviders/driverProvider.js:38:7)
    at [object Object].Runner.createBrowser (/usr/local/lib/node_modules/protractor/lib/runner.js:186:37)
    at /usr/local/lib/node_modules/protractor/lib/runner.js:276:21
    at _fulfilled (/usr/local/lib/node_modules/protractor/node_modules/q/q.js:797:54)
    at self.promiseDispatch.done (/usr/local/lib/node_modules/protractor/node_modules/q/q.js:826:30)
    at Promise.promise.promiseDispatch (/usr/local/lib/node_modules/protractor/node_modules/q/q.js:759:13)
    at /usr/local/lib/node_modules/protractor/node_modules/q/q.js:525:49
[launcher] Process exited with error code 1
MacBookPro:spec sab$dragor-gragor-gragor.conf.js-gulpe2e:local
使用位于的selenium服务器http://127.0.0.1:4444/wd/hub
[launcher]正在运行1个WebDriver实例
/usr/local/lib/node_modules/dragrator/node_modules/selenium webdriver/http/index.js:174
回调(新错误(消息));
^
错误:ECONREFUNCE connect ECONREFUNCE 127.0.0.1:4444
在ClientRequest。(/usr/local/lib/node_modules/dragrator/node_modules/selenium webdriver/http/index.js:174:16)
在emitOne(events.js:77:13)
在ClientRequest.emit(events.js:169:7)
在Socket.socketErrorListener(_http_client.js:265:9)
在emitOne(events.js:77:13)
位于Socket.emit(events.js:169:7)
在emitErrorNT(net.js:1256:8)
在下一次使用2args进行回调时(node.js:455:9)
在进程中调用(node.js:369:17)
发件人:任务:WebDriver.createSession()
位于Function.webdriver.webdriver.acquireSession(/usr/local/lib/node_modules/dragrator/node_modules/selenium webdriver/lib/webdriver/webdriver.js:157:22)
位于Function.webdriver.webdriver.createSession(/usr/local/lib/node_modules/gragrator/node_modules/selenium webdriver/lib/webdriver/webdriver.js:131:30)
位于[object object].Builder.build(/usr/local/lib/node_modules/dragrator/node_modules/selenium webdriver/Builder.js:445:22)
位于[object object].DriverProvider.getNewDriver(/usr/local/lib/node_modules/dragrator/lib/driverProviders/DriverProvider.js:38:7)
在[object object].Runner.createBrowser(/usr/local/lib/node_modules/dragrator/lib/Runner.js:186:37)
at/usr/local/lib/node_modules/dragrator/lib/runner.js:276:21
完成时(/usr/local/lib/node\u modules/granter/node\u modules/q/q.js:797:54)
在self.promiseDispatch.done(/usr/local/lib/node\u modules/gragrator/node\u modules/q/q.js:826:30)
在Promise.Promise.dispatch(/usr/local/lib/node_modules/progrator/node_modules/q/q.js:759:13)
at/usr/local/lib/node_modules/progrator/node_modules/q/q.js:525:49
[launcher]进程已退出,错误代码为1
任何帮助都将不胜感激

谢谢


Sabbu

该错误表示量角器正试图连接到webdriver,TCP连接被拒绝。这可能是因为webdriver没有运行

gulp文件定义了启动webdriver的任务:

// Runs the selenium webdriver
gulp.task('webdriver_standalone', webdriver_standalone);
要运行它,请执行以下操作:

gulp webdriver_standalone
让它保持运行,然后运行gulp任务来启动测试

或者,您可以让量角器为您启动和停止webdriver。从:

您有两个选项来启动selenium服务器

第一个是让量角器自动处理它,包括在测试完成后停止它。为此,只需指向量角器配置文件中的selenium jar(您需要相应地更新版本号),而不是地址:


这并不能解决我的问题。我喜欢用一个命令同时运行selenium和量角器测试。@Sabbu好吧,有一种方法可以做到这一点。我会更新答案。谢谢你的答案。当我在我的dragrator.conf.js文件中添加seleniumserver jar并在不使用gulfile的情况下运行时,selenium和dragrator start都可以正常工作。但我正在尝试通过使用gulp在单个命令中自动化测试和做其他事情。
// The file path to the selenium server jar ()
seleniumServerJar: './node_modules/protractor/selenium/selenium-server-standalone-2.45.0.jar',
// seleniumAddress: 'http://localhost:4444/wd/hub',