月度归档: 2017 年 8 月

  • 在Openshift中配置Selenium-Grid

    在Openshift中配置Selenium-Grid

    通过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: 
  • 在Openshift Origin 3上运行Spring Boot应用

    在Openshift Origin 3上运行Spring Boot应用

    Openshift Origin是开源的PAAS平台,如果只是为了单机体验,还可以使用minishift。

    我之前使用过Openshift 2, 还在上面运行了一些Spring Boot应用。最近又要开始接触Openshift新版本,所以想着用这个练练手,先迁移旧应用过来一下。

    在Openshift 2时代,我们需要处理cartridge,它定义了一些基本的东西,比如Tomcat,Cron任务等等,如果你需要的不在这之中,还可以使用Diy。也就是说你需要在代码库中提供action hooks,包括start和stop。我当时是自定义了这两个脚本,然后运行了spring boot应用。

    然后到了Openshift Origin 3,我发现我找不到名为Diy的模板了。一番研究才发现居然没有 cartridge,改成images了。当然原因有很多,官方也给出了一篇详细的说明,但是我并不是很关心,我只想知道怎么迁移。

    为了方便的从源代码生成Docker用镜像,Openshift Origin 3使用了s2i,大致原理如下:

    1. 将源代码注入构建用镜像中
    2. 必要的构建步骤
    3. 将构建结果提交并设置启动入口

    我们用Spring Boot应用来举个例子,大概步骤如下:

    1. 将源代码注入构件用镜像,该镜像包含Java(也可以包含Maven和Gradle,我自建了一个包含不同版本的Maven Wrapper和Gradle Wrapper的镜像)
    2. 运行构建脚本生成jar包
    3. 将jar包提交并设置入口为java -jar <jar path> <other args>

    对于具体的脚本名称,s2i又有如下约定

    1. assemble 构建打包
    2. run 运行应用
    3. save-artifacts 提交构建物
    4. usage 使用说明