我正在尝试让Selenium和Jenkins在GKE中一起工作。
我为Jenkins找到了Selenium (https://plugins.jenkins.io/selenium),但我不确定它是否可以用来获得我想要的东西。
我按照以下步骤站起来:https://github.com/GoogleCloudPlatform/kube-jenkins-imager (我将Jenkins节点的图像更改为使用jenkins 2.86 )
这将创建一个在kubernetes中运行的Jenkins实例,该实例根据需要将奴隶生成到集群中。
但我不相信这与硒插件兼容。有什么最好的方法来利用我所拥有的,并使它与Jenkins的实例一起工作呢?
我还可以使用以下方法获得Selenium实例,并在同一个集群中运行:https://gist.github.com/elsonrodriguez/261e746cf369a60a5e2d (我从实例中删除了2.x版本,以获取最新的容器。)
我必须将k8s节点提高到N1标准-2(2个vCPU,7.5G内存)才能运行这些容器。
为了证明这一概念,SE节点不需要是短暂的。但是,我不确定我可以在k8s中部署什么样的永久节点容器映像,这样就有了必要的SE驱动程序。
另一方面,也许只使用我找到的独立SE容器会更容易。如果是这样的话,我如何在Jenkins2中使用它们?
还有其他人沿着这条路走吗?
编辑:我现在对第三方selenium服务不感兴趣。
发布于 2017-10-31 17:24:59
这就是我想出来的。
我看到许多迹象表明,运行您自己的Selenium实例是一个麻烦。可能已经有足够的时间让这件事变得比过去容易一些了。似乎有几种方法可以做到。
Jenkins本身有一个插件,可以将Jenkins集群转换为Selenium 3网格:https://plugins.jenkins.io/selenium。我的问题是,我正计划在云中托管这些实例,我希望Jenkins奴隶是短暂的。我想不出如何让这个插件与短暂的奴隶一起工作。
我试图尽快完成这件事,所以我只花了三天时间在这个项目上。
这些是我为Jenkins解决方案:https://github.com/jnorment-q2/kube-jenkins-imager使用的分叉repos,它基本上实现如下:https://github.com/jnorment-q2/continuous-deployment-on-kubernetes
我指的是我自己的回复,以准确地提到我在2017年10月底为实现这一目标而使用的方法。这些回购是从主要回购分叉,应该是很容易比较的差异。
我联系了google支持部门,问了一个问题,他们回答说,这个链接可能会更清楚一些:https://cloud.google.com/solutions/jenkins-on-container-engine-tutorial
据我所知,这是我引用的更自动化脚本的手动版本。
为了使Selenium站起来,我使用了以下命令:https://github.com/jnorment-q2/selenium-on-k8s
这是我根据自述文件中引用的一个gist构建的一个项目,它引用了SeleniumHQ维护的一个项目。
这里的主要诀窍是Selenium需要资源。为了在Kubernetes中部署,我不得不使用google计算引擎的第二层。我修改了我用来站起来让Jenkins以类似方式部署Selenium的脚本。
同样值得注意的是,SeleniumHQ的项目中似乎只有火狐和Chrome选项。我还没有确定是否有可能运行Safari实例。
现在,这就是我们要做的。
剩下的部分是如何从Jenkins调用Selenium网格。结果表明,selenium可以临时安装到临时奴隶中,并且可以使用webdriver.Remote进行调用。
下面是我编写的演示脚本,以证明一切都正常:https://github.com/jnorment-q2/demo-se-webdriver-pytest/blob/master/test/testmod.py
它有一个Jenkinsfile,所以它应该使用Jenkins的一个新实例。只需创建一个新管道,将定义更改为“SCM中的管道脚本”、Git、https://github.com/jnorment-q2/demo-se-webdriver-pytest,然后向上滚动并单击“run”,并使用SE网格服务器的完整url (包括端口)添加参数SE_GRID_SERVER。
它应该运行三次测试,第三次失败。(第三个测试需要TEST_URL和TEST_URL_TITLE的附加参数)
发布于 2017-10-25 01:45:27
SauceLabs是云中的硒网格。
我编写Saucery是为了使从C#或Java到NUnit2、NUnit3或JUnit 4的集成变得容易。
您可以看到源代码这里、这里和这里,或者查看Github站点这里以获得更多信息。
https://stackoverflow.com/questions/46922414
复制相似问题