例:docker-compose の利用

このトピックでは、Linux マシン上の Google ChromeSilk4J テスト セットを Apache Ant を使って実行するために、Docker コンテナを使用する方法を例をあげて説明します。テスト セットを実行する前に、次の手順を実行してください。
  • マシン上に Docker をインストールします。
  • コマンド ラインから "Hello, World" プログラムを実行して、Docker のセットアップが正しく行われているかどうか確認します。
    docker run hello-world
  • Ant を使ってテストを実行する Silk4J プロジェクトを準備します。詳細については、「Apache Ant を使用したテストの再生」を参照してください。
  • プロジェクトを Linux マシンにコピーします(/home/<ユーザー名>/projects/InsuranceWeb など)。
Silk4J プロジェクトのテストを Google Chrome 上で実行するには:
  1. docker-compose .yml ファイルを作成します。
    version: '3'
    services:
      chrome:
        image: selenium/standalone-chrome:latest
        environment:
          - JAVA_OPTS=-Dselenium.LOGGER.level=WARNING
      agent:
        image: functionaltesting/silktest:latest
        environment:
          - SILK_LICENSE_SERVER=lnz-lic1.microfocus.com
          - SILK_LOG_FILE_PATH=/logs
        depends_on:
          - chrome
        links:
          - chrome
        volumes:
          - /home/<user name>/projects/logs:/logs
      tests-runner:
        image: webratio/ant:1.10.1
        volumes:
          - /home/<user name>/InsuranceWeb:/tmp/project
        command: ["ant", "-DagentRmiHost=agent:22902", "-Dsilktest.configurationName=host=http://chrome:4444/wd/hub;platformName=Linux - GoogleChrome", "-buildfile", "/tmp/project/build.xml", "runTests"]
        depends_on:
          - agent
        links:
          - agent
    注: agentRmiHost システム プロパティを機能させるためには、テスト スクリプトでの Desktop オブジェクトの作成に、引数無しのコンストラクタを呼び出す必要があります。また、silktest.configurationName システム プロパティを機能させるためには、テスト スクリプトでの BrowserBaseState オブジェクトの作成に、引数無しのコンストラクタを呼び出す必要があります。
  2. 関連するイメージの最新のバージョンをレジストリにプルします。
    docker-compose pull
  3. テストを実行し、最初のコンテナ(この場合は Ant コンテナ)が停止したらすべてのコンテナを停止します。
    docker-compose up --abort-on-container-exit
  4. /home/<ユーザー名>/projects/logs の下にあるテスト結果を表示します。
  5. 省略可能:テスト環境をクリーンアップします。
    docker-compose down
最新のバージョンのプル、テストの実行、テスト環境のクリーンナップを、コマンドにまとめて指定することもできます:
docker-compose pull && docker-compose up --abort-on-container-exit && docker-compose down