如何 运行 CloudFoundry 上的 Selenium-Grid?

How to run Selenium-Grid on CloudFoundry?

有人 运行 CloudFoundry 上的 Selenium-Grid 有 Gorouter 提供的路由吗?

根据"Selenium-Grid Documentation",我们可以将集线器地址传递给这样的节点实例:

java -jar selenium-server-standalone.jar \ 
  -role node \
  -hub http://myhub.cf/grid/register 

但是这个节点用本地地址和端口注册自己。

我已经找到了解决问题的办法 (Selenium v​​3.14.0)。

本地测试基于selenium-server-standalone

  • 枢纽

    java -Xmx640M -jar selenium-server-standalone.jar -role hub -debug
    
  • 节点

    java -Xmx640M -jar selenium-server-standalone.jar -role node -debug \
      -hub http://localhost:4444/grid/register \
      -port 8080 -remoteHost http://localhost:8080 
    

CloudFoundry 清单基于 docker

https://hub.docker.com/u/selenium/

枢纽

---
applications:
- name: selenium-hub
  docker:
    image: selenium/hub
  instances: 1
  memory: 1G
  disk_quota: 1G
  routes:
  - route: selenium-hub.mycf.cloud
  env: 
    JAVA_OPTS: "-Xmx640M"
    GRID_DEBUG: false
    # Max "browser" sessions a grid can handle
    GRID_MAX_SESSION: 5

节点

---
applications:
- name: selenium-node-chrome-1
  docker:
    image: selenium/node-chrome
  instances: 1
  memory: 1G
  disk_quota: 1.5G
  routes:
  - route: selenium-node-chrome-1.mycf.cloud
  env: 
    JAVA_OPTS: "-Xmx640M"
    GRID_DEBUG: false
    HUB_HOST: selenium-hub.mycf.cloud
    HUB_PORT: 80
    NODE_PORT: 8080
    REMOTE_HOST: http://selenium-node-chrome-1.mycf.cloud:80
    # Max "browser" sessions a node can handle. Default determined by configuration type.
    NODE_MAX_SESSION: 5

- name: selenium-node-firefox-1
  docker:
    image: selenium/node-firefox
  instances: 1
  memory: 1G
  disk_quota: 1.5G
  routes:
  - route: selenium-node-firefox-1.mycf.cloud
  env: 
    JAVA_OPTS: "-Xmx640M"
    GRID_DEBUG: false
    HUB_HOST: selenium-hub.mycf.cloud
    HUB_PORT: 80
    NODE_PORT: 8080
    REMOTE_HOST: http://selenium-node-firefox-1.mycf.cloud:80
    # Max "browser" sessions a node can handle. Default determined by configuration type.
    NODE_MAX_SESSION: 5