本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
转载自夜明的孤行灯
本文链接地址: 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/