当前位置: 首页 > 知识库问答 >
问题:

詹金斯

欧照
2023-03-14

有没有可能让詹金斯使用真正的浏览器而不是无头浏览器?我正在运行一些用TestNG编写的测试(使用Selenium webdriver)。当我运行testng时。在Eclipse中,浏览器启动并运行测试。但当我使用Jenkins并用maven运行测试时,它不会启动任何浏览器。

共有3个答案

景成和
2023-03-14

对于linux。如果jenkins是作为守护进程运行的,您可以指定active display来连接并在其上运行浏览器。检查您可以连接到的显示器:

ps e | grep -Po " DISPLAY=[\.0-9A-Za-z:]* " | sort -u

我的输出是:

DISPLAY=:10.0 
DISPLAY=:2 
DISPLAY=:2.0 

那就去你的詹金斯项目-

/bin/bash -c "export DISPLAY=:10"

编辑:我最近又遇到了这个问题。要解决这个问题:

>

  • 我已经为jenkins的用户提供了与我当前用户的桌面交互的能力:

    xhost +si:localuser:jenkins
    

    因此,如果我使用jenkins的用户凭证通过ssh连接到我的linux系统,导出当前用户的显示(导出DISPLAY=: 10),并在puty的终端中运行,例如google-chrome或火狐,它们将在我当前用户的桌面上启动。在这之后,我已经检查了如果我可以启动"mvn test"命令内的工作区/MyTest文件夹从我的油灰,所以它将启动浏览器和执行测试。最后,我在当前用户的根中创建了简单的脚本:

    vi ~/.startup.sh
    
    #!/bin/bash
    xhost +si:localuser:jenkins
    

    并将其添加到我的Xfce4 GUI:应用程序中-

    sh -c $HOME/.startup.sh
    

    这是因为这个脚本应该只在桌面被加载以与jenkins的用户共享当前用户的显示时才起作用。重新启动并通过RDC桌面连接到此服务器后,应用xhost命令加载。在这之后,jenkins可以与桌面交互,即使我关闭RDP连接,但让当前用户的会话保持活动状态。

    我更改了“添加构建”步骤-

    export DISPLAY=:10
    cd /var/lib/jenkins/workspace/MyTests
    mvn test
    

    我也尝试过grid,将selenium server standalone-hub-and-node转换为守护进程。但它比以这种方式启动带有WebDriver的浏览器要慢。

  • 吕向荣
    2023-03-14

    使用Selenium Grid可以在Jenkins上执行测试,但可以在远程从机上打开浏览器。

    要实现这一点,您需要创建一个实例RemoteWebdriver,而不是ChromeDriver、IEDriver等

    冯招
    2023-03-14

    如果您的jenkins托管在Windows机器中,您应该了解允许使用该接口的服务的一些特殊配置。

    顺便说一下,查看浏览器运行的最简单方法是使用命令行启动jenkins:

    java -jar jenkins.war
    

    在linux中,您可以使用相同的命令或使用xvfb插件在后台运行浏览器。

    希望有帮助

    除此之外,不启动浏览器的主要原因是JNLP(java网络启动协议),当我们执行war时,我们可以与桌面应用程序交互。

     类似资料:
    • 问题内容: 如何轻松地将Jenkins与qUnit集成?我将使用真正的浏览器(如firefox和chrome)运行测试。我的服务器在RedHat 6.1 Linux上运行。我想我都需要插件/库,但我仍然不知道如何使其工作。我第一次与Jenkins合作(在服务器端)。 //编辑: 如果有人也可以共享想法如何构建覆盖率报告,那将是很棒的。 提前致谢 :)。 问题答案: 说詹金斯和QUnit只是难题的一

    • 我想做一些非常简单的事情,在一个文件夹中,我有一个jar文件和一个包含脚本的名为脚本的文件夹。但我可以让詹金斯拉链来做这件事。 zip目录:“awsdeploy”,排除:“”,glob:“”,“scripts/”,zipFile:“SQSToElasticProcessor.zip” 必须显式命名“zip”的参数。@ 第 31 行,第 16 列。

    • 问题内容: 我想配置bitbutcket来触发詹金斯构建。 我花了一些时间对此进行了研究,所有的答案都来自几年前,并且没有找到任何指导,因为从那以后情况似乎有所变化。 我正在尝试做的事情: 将位桶推送到特定分支会触发构建。 我所拥有的: Bitbucket Web挂钩,可在推送到任何分支时向Jenkins发出HTTP请求。我还在Jenkins上安装了Bitbucket插件,该插件在job conf

    • 问题内容: 我已经阅读了Jenkins网站及其JUnit插件,由于某种原因,一些基本的东西对我来说并不明显。 Jenkins有一个插件,可以在运行构建时发送自定义/高级通知电子邮件。在这些电子邮件中,您可以放置​​“ 内容令牌 ”,它们是运行时变量,在生成电子邮件时会被动态值替换。 这些标记之一是 允许您显示已运行或失败的JUnit测试的数量。 如何使Jenkins正确显示此信息?我需要一个插件吗

    • 问题内容: 詹金斯版 1.538 使用Maven 3.1.0可以正常工作 使用Maven 3.2.1时,出现以下错误 Jenkins本身安装了Maven 3.2.1(从Apache下载并解压缩) 怎么了? 问题答案: JENKINS-22486已通过Maven插件 2.8 修复。

    • 我已经为我们的项目设置了jenkins声明管道,而且我正在使用jenkins blue ocean插件 在github中,它显示以下url:http://unconfigured-jenkins-location/job/CRM/job/PR-180/1/display/redirect 如何将网址更改为正确的网址? 我发现这个插件是有责任的https://wiki.jenkins.io/disp