运行 Nightwatch (selenium) 测试(通过 Jenkinsfile)在 Jenkins 构建中不起作用

时间:2021-04-28 14:05:45

标签: selenium jenkins-pipeline jenkins-groovy nightwatch.js

我想要做的是通过 Jenkins 构建运行我的守夜人测试。

但是,我在运行测试时遇到了一些问题(在 Jenkins 构建中)。

首先,使用以下 Jenkinsfile(我认为这种情况下的代理是有效的);

#!/usr/bin/env groovy
switch (env.ENVIRONMENT_NAME) {
    case 'dev':
        break
    case 'staging':
        break
    case 'production':
        break
    default:
        // Unknown environment so - for now - stop the build
        echo "Failing build, invalid ENVIRONMENT_NAME: ${env.ENVIRONMENT_NAME}"
        currentBuild.result = 'FAILURE'
        return
}

pipeline {
    agent {
        label 'browserstack'
    }
    stages {
        stage('Install npm packages') {
            steps {
                script {
                    dir('Tests/Functional/') {
                        sh 'npm install'
                    }
                }
            }
        }
        stage('Running the tests...') {
            steps {
                script {
                    dir('Tests/Functional/') {
                        sh "npm run test:staging -- --tag carReviews"
                    }
                }
            }
        }
    }
}

我在 Jenkins 构建中遇到以下错误;

<块引用>

[0;36m[汽车评论/PAR 4538] 测试套件[0m [0;35m========================================[0m

运行:[0;32m导航到哪个车段[0m

[1;31mError 从 selenium 服务器检索新会话[0m

[0;31m连接被拒绝!硒服务器启动了吗? [0米[0;90米{ 错误:连接 ECONNREFUSED 127.0.0.1:4444 在 TCPConnectWrap.afterConnect [as oncomplete] (net.js:1107:14) errno: 'ECONNREFUSED', code: 'ECONNREFUSED', syscall: 'connect',
地址:'127.0.0.1',端口:4444 }[0m

然后如果我将 Jenkinsfile 编辑为以下内容;

stage('Running the tests...') {
            steps {
                script {
                    dir('Tests/Functional/node_modules/selenium-server-standalone-jar/jar') {
                        sh "java -jar selenium-server-standalone-3.141.59.jar"
                    }
                    dir('Tests/Functional')
                        sh "npm run test:staging -- --tag carReviews"
                    }
                }
            }
        }

在运行测试之前启动 Selenium 服务器后,构建似乎“挂起”

<块引用>

运行 /home/jenkins/workspace/Specialist/Parkers/Tests/temporary.stg.selenium-acceptance-testing/Tests/Functional/node_modules/selenium-server-standalone-jar/jar [管道] { [管道] sh

  • java -jar selenium-server-standalone-3.141.59.jar 13:20:21.038 INFO [GridLauncherV3.parse] - Selenium 服务器版本:3.141.59,修订版: e82be7d358 13:20:21.254 信息 [GridLauncherV3.lambda$buildLaunchers$3]
  • 在端口 4444 上启动一个独立的 Selenium 服务器 2021-04-28 13:20:21.412:INFO::main: Logging initialized @1129ms to org.seleniumhq.jetty9.util.log.StdErrLog 13:20:22.018 信息 [WebDriverServlet.] - 初始化 WebDriverServlet 13:20:22.241 信息 [SeleniumServer.boot] - Selenium Server 已启动并在端口上运行 第4444章

首先,我认为我需要 2 个命令 shell 来运行这些测试是否正确,一个用于启动 selenium-standalone-server-jar,另一个用于然后运行测试?

如果是这样,我还尝试在第一个 shell 的末尾添加一个 &,但这并没有打开第二个 shell。

其次,我是否甚至需要“手动”启动 selenium-server-standalone-jar 模块,因为我认为这会在我在本地运行测试时在夜间设置中自动启动(并且工作正常)。

任何帮助将不胜感激。谢谢。

0 个答案:

没有答案
相关问题