【问题标题】:Selenium testing with Jenkins使用 Jenkins 进行硒测试
【发布时间】:2016-11-07 00:05:40
【问题描述】:

我一直在尝试用浏览器开始selenium 测试,而不是无头的。我在SVN 中有我的代码,这应该由Jenkins 构建。 JenkinsLinux 上。

有没有人尝试过,或者你知道我应该采取什么步骤吗?我正在浏览互联网上提供的教程,但它们都不适合我。

我目前的错误是:

java.io.IOException:无法运行程序“cmd”(在目录中 “/var/lib/jenkins/jobs/Tests/workspace”):错误=2,没有这样的文件或 java.lang.ProcessBuilder.start(ProcessBuilder.java:1047) 的目录 在 hudson.Proc$LocalProc.(Proc.java:240) 在 hudson.Proc$LocalProc.(Proc.java:212) 在 hudson.Launcher$LocalLauncher.launch(Launcher.java:815) 在 hudson.Launcher$ProcStarter.start(Launcher.java:381) 在 hudson.tasks.CommandInterpreter.perform(CommandInterpreter.java:95) 在 hudson.tasks.CommandInterpreter.perform(CommandInterpreter.java:64) 在 hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20) 在 hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:779) 在 hudson.model.Build$BuildExecution.build(Build.java:205) 在 hudson.model.Build$BuildExecution.doRun(Build.java:162) 在 hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:534) 在 hudson.model.Run.execute(Run.java:1720) 在 hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) 在 hudson.model.ResourceController.execute(ResourceController.java:98) 在 hudson.model.Executor.run(Executor.java:410) 引起: java.io.IOException: error=2, No such file or directory at java.lang.UNIXProcess.forkAndExec(本机方法)在 java.lang.UNIXProcess.(UNIXProcess.java:187) 在 java.lang.ProcessImpl.start(ProcessImpl.java:130) 在 java.lang.ProcessBuilder.start(ProcessBuilder.java:1028) ... 15 更多 构建步骤“执行 Windows 批处理命令”将构建标记为失败 完成:失败

当构建没有错误时,工作区只更新了:

Building in workspace /var/lib/jenkins/jobs/Tests/workspace
Updating http://XX.XX.XXX.XX/resp/extend/Tests/EO at revision '2016-07-04T14:34:05.110 +0200'
At revision 5536

No changes for http://XX.XX.XXX.XX/resp/extend/Tests/EO since the previous build
Finished: SUCCESS

如果您需要任何详细信息,请告诉我...

更新:

[workspace] $ /bin/sh -xe /tmp/hudson8771943326851387647.sh
+ ./script.sh
/tmp/hudson8771943326851387647.sh: line 2: ./script.sh: Permission denied
Build step 'Execute shell' marked build as failure
Finished: FAILURE

我已将 windows 命令更改为 shell 命令。 shell命令是:

./script.sh

我认为文件中的脚本我错了,但我现在遇到的错误是否意味着脚本错误或者它反映了其他东西?我不知道为什么我们有“权限被拒绝” - 我在詹金斯拥有所有权利。

这是我的 script.sh 文件内容:

#!/bin/bash

function run_test {

    echo "=== run Selenium tests in Jenkins ==="
    ssh root@$1 "/src/test/java/mainTest/MainOrderTest start"

}

fi

我对 shell 命令一无所知,也没有找到任何可以运行该程序的命令。

【问题讨论】:

  • 要在 jenkins 上运行,可能需要使用 HTMl 单元驱动程序或 phantom js 进行无头测试。
  • @AutoMater 这绝对不是真的。如果客户操作系统也没有无头运行,Jenkins 可以很好地运行非无头浏览器。

标签: linux selenium svn jenkins automated-tests


【解决方案1】:

您正试图在 Linux 上运行 Windows 批处理脚本,因此出现错误。

两个选项: 1.将您的构建脚本转换为shell并使用“执行shell”在jenkins中调用您的shell脚本 2. 添加一个windows slave来构建你的windows批处理脚本

【讨论】:

  • 您好,感谢您的留言。如果我在我的电脑(windows)上有一个本地项目,并且我尝试在 jenkins(linux)中运行它 - 这是同样的情况吗?
  • 在这种情况下,您可以将您的电脑配置为 jenkins 中的节点,并在该节点而不是主节点上运行构建脚本。
  • 谢谢!我将构建步骤更改为 shell 命令,但错误是相同的。在shell命令中我引用.sh文件-脚本本身可能是错误的,但我认为错误会略有不同......
  • 如果你真的将构建步骤更改为 shell 命令,就不可能得到同样的错误。
  • @Mobrockers 是的,我在两个项目之间迷路了。但之后我将 windows 命令更改为 shell 并得到不同的错误 - 请参阅更新。
猜你喜欢
  • 2010-10-19
  • 2020-05-16
  • 1970-01-01
  • 2015-06-15
  • 1970-01-01
  • 2017-02-08
  • 2017-08-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多