dockpack.base_grid

ベースグリッド

Docker Compose で動作する Selenium Grid です。

目的は、ウェブ開発者が一般の人々のためにウェブサイトを機能させる手助けをすることです。

dockpack.base_grid は Selenium グリッドをデプロイする Ansible ロールで、ローカルモードで様々なウェブブラウザをシミュレートできるようにいくつかの追加機能を提供します。

企業でよく見られる状況として、Windows 用の仮想デスクトップ(Citrix や VMWare Horizon)や、Red Hat Enterprise 7 を実行しているオンプレミスサーバーがあり、そこでは RedHat がサポートしている Docker バージョン(docker-latest 1.13)しか実行できません。

コンテナを実行するためには、Sonatype Nexus のような内部 Docker レジストリを利用し、すべてのインターネットトラフィックがプロキシされる必要があります。

クロスブラウザテストを自動化したい場合、仮想デスクトップや社内ビルドサーバー(Jenkins)から接続できる Selenium グリッドが必要です。この docker-compose グリッドは、古いバージョンと新しいバージョンの Firefox および Chrome を実行します。これらの古いバージョンは現代の企業ITシステムには存在しませんが、まだ使用している人もいます。Microsoft は、さまざまな古いバージョンの Internet Explorer の VM イメージを公開しており、Vagrant を使用してこれらをローカルグリッドに追加できます。

CentOS 7.5

この Ansible ロールは、私の redesign/centos7 Vagrant ボックスでテストされました。Packer のソースは こちら で入手できます。

vagrant init redesign/centos7

ロール変数

defaults/main.yml ファイルには、主に異なるバージョン用に変更できる変数があります。サポートされているブラウザバージョンについては、こちら を参照してください。このロールは、vars および defaults に記載されたイメージを持つ Docker と Sonatype Nexus のような(ローカル)レジストリの存在を前提としています。このレジストリは、必要に応じて group_vars で selenium_registry として設定できます。

テスト

このようなテストインフラストラクチャを維持することは複雑な作業であるため、このリポジトリには、今後(2019年)対処する必要があるさまざまなことをシミュレートするためのツールがあります。以下の問題に対応できます:

  1. Python 2.7 から Python 3 への移行
  2. Ansible 2.6 から 2.7 への移行など

要件

Python pip が利用可能である必要があります。Tox と Molecule を使って複数の Ansible バージョンをテストします。

pip install requirements.txt

オンプレミス Docker レジストリ

これらのオリジナルをダウンロードし、タグを付けてローカルレジストリにプッシュできます。

docker pull selenium/node-firefox:3.141.59-iron
docker pull selenium/node-firefox:3.12.0-cobalt
docker pull selenium/node-chrome:3.141.59-iron
docker pull selenium/node-chrome:3.8.1-erbium
docker pull selenium/hub:3.141.59-iron
docker images
docker tag ...
docker push ...

Vagrant テスト

Microsoft の VM をダウンロードすることで、7 バージョンの Internet Explorer を使用できます。このスクリプトはダウンロード、解凍、vagrant box add を行い、Vagrantfile を使用できるようにします。

cd vagrant
./windows_boxes.py
vagrant up IE8Win7
vagrant up IE9Win7
vagrant up IE10Win7
vagrant up IE11Win7
vagrant up IE11Win81
vagrant up MSEdgeWin10

Mac ツール

私は Mac 上で Vagrant と VirtualBox を使ってこれをテストしています。Brewfile に含まれるすべての Mac ツールを以下のコマンドでインストールします。

brew bundle

このロールと相性の良いロール

  • dockpack.base_goss
  • dockpack.base.docker

Tox テスト

Tox が使用されているため、全体がテストされます。

tox

例のプレイブック

ユーザーにとって便利なように、ロールの使い方の例(例えば、変数をパラメータとして渡す方法)を含めると良いでしょう。

- name: selenium のプロビジョニング
  hosts: testsystem
  become: yes
  roles:
    - { role: dockpack.base_grid, tags: 'selenium' }

ライセンス

MIT

作者情報

Bas Meijer
@bbaassssiiee

プロジェクトについて

Selenium Grid running with docker-compose

インストール
ansible-galaxy install dockpack.base_grid
ライセンス
mit
ダウンロード
74
所有者
CI/CD