【发布时间】:2020-09-01 09:15:48
【问题描述】:
我有一组在 jenkins 中运行的 webdriver.io 测试。它们运行在由外部公司在 k8s 中管理的 selenium 网格上。我想对我的 selenium 后端有更多的控制权,所以我试图找到一种在我的 jenkins 管道中设置 selenium 后端的方法。不过,我缺乏 docker/k8s 网络知识让我望而却步。
这大概是我的管道的样子:
agent {
kubernetes {
defaultContainer 'jnlp'
yaml """
apiVersion: v1
kind: Pod
spec:
containers:
- name: node
image: node:12.14.1
command:
- cat
tty: true
"""
}
}
stages {
stage('Checkout codebase') {
// do checkout
}
}
stage('Build') {
steps {
container('node') {
sh '''
npm install --production
'''
}
}
}
stage('Test-Mocha') {
steps {
container('node') {
sh "node_modules/.bin/wdio ./test/config/wdio.conf.js --spec ./test/helpers/sandBox/sandbox1.js"
}
}
}
}
}
我想要的是针对 chrome 运行我的测试。任何可以让我运行 chrome 浏览器的解决方案都很好。
我尝试使用 selenium/standalone-chrome 指定一个额外的容器,但我不知道如何针对该容器运行测试。我还阅读了有关使用 docker 容器设置 selenium 网格的内容,但我不知道如何在此管道中运行这些命令,即使这可行,我也不确定如何针对此网格运行。
谁能给我一个例子来说明我可以做些什么来完成这项工作?
【问题讨论】:
-
您有一个选择。您可以查看下面的链接,他们在其中展示了如何配置 zalenium 并将其用于 selenium 测试脚本执行。只需先使用 zalenium 进行练习,然后您就可以创建自己的 docker 镜像,并在其中配置 novnc 以查看 docker 容器中的执行情况。现在你不需要在 Jenkins 中进行任何额外的配置来使用 zalenium。您只需要公开所需的端口,就可以使用自动创建的 selenium 网格节点。 qautomation.blog/2019/08/28/zalenium-the-ultimate-tutorial
-
谢谢,zalenium 看起来很酷。这不是我想知道的。我知道也有 selenium docker 图像,我可以将它们添加到管道的容器部分。我正在努力的是如何从我的节点应用程序中接近硒服务器。我不想创建自己的 docker 图像。我只想提取我的代码,启动一个服务器,然后针对它运行我的测试。我认为我正在寻找的答案更多地在于网络角落
标签: docker selenium kubernetes jenkins-pipeline webdriver-io