本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
转载自夜明的孤行灯
本文链接地址: https://www.huangyunkun.com/2017/08/30/setup-selenium-grid-in-openshift/
通过Selenium-Grid我们可以使用一个更灵活的环境,同时还能得到在不同机器的不同浏览器上执行测试的功能。
Selenium-Grid由一个中心(Hub)和一到多个节点(Node)组成。两者都是通过 selenium-server.jar 启动。如果是手动安装需要先启动Hub,然后再启动Node,Node会通过启动时的配置连接注册到Hub中。
Docker明显是一个更好的选择,使用这个docker-compose就可以快速启动一个拥有两个节点的Grid。
hub:
image: selenium/hub
ports:
- "4444:4444"
firefox:
image: selenium/node-firefox
links:
- hub
chrome:
image: selenium/node-chrome
links:
- hub
Docker自然是方便,但是因为有Openshift,所以更希望直接在Openshift上启动一个Grid。这里就需要额外的yaml文件来办了。
从Github上找到两个可以用的,这是Hub
apiVersion: v1
kind: Template
metadata:
name: selenium-hub
annotations:
description: "A Selenium Grid"
iconClass: "icon-selenium"
tags: "selenium,hub"
objects:
- apiVersion: v1
kind: Service
metadata:
name: selenium-hub
spec:
selector:
type: hub
type: ClusterIP
ports:
- name: web
port: 4444
targetPort: 4444
protocol: TCP
- name: node
此处省略,太长
如果需要一个chrome的node也是差不多的
apiVersion: v1
kind: Template
metadata:
name: selenium-node-chrome
annotations:
description: "Selenium Node with Google Chrome browser"
iconClass: "icon-selenium"
tags: "selenium,node,chrome"
objects:
- apiVersion: v1
kind: ReplicationController
metadata:
name: selenium-node-chrome
spec:
replicas: 1
selector:
browser: chrome
template:
metadata:
name: selenium-node-chrome-master
labels:
browser: chrome
spec:
containers:
- env:
...
如果网上不方便找到合适的模板而且自己也不熟悉具体的写法,那么还可以考虑使用Kompose工具。
Kompose可以将docker-compose文件转化为openshift可以识别的yaml文件。以本文上述提供的docker-compose文件为例,使用Kompose转化以后会生成6个文件,三个service.yaml,三个deployment.yaml。使用的时候全部使用就行了。以下是hub的两个定义,贴出来给大家一个简单的例子。
apiVersion: v1
kind: Service
metadata:
annotations:
kompose.cmd: kompose convert
kompose.version: 1.1.0 ()
creationTimestamp: null
labels:
io.kompose.service: hub
name: hub
spec:
ports:
- name: "4444"
port: 4444
targetPort: 4444
selector:
io.kompose.service: hub
status:
loadBalancer: {}
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
annotations:
kompose.cmd: kompose convert
kompose.version: 1.1.0 ()
creationTimestamp: null
labels:
io.kompose.service: hub
name: hub
spec:
replicas: 1
strategy: {}
template:
metadata:
creationTimestamp: null
labels:
io.kompose.service: hub
spec:
containers:
- image: selenium/hub
name: hub
ports:
- containerPort: 4444
resources: {}
restartPolicy: Always
status: {}
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
转载自夜明的孤行灯
本文链接地址: https://www.huangyunkun.com/2017/08/30/setup-selenium-grid-in-openshift/