Selenium IDE

Selenium IDE

  • ドキュメント
  • API
  • プラグイン
  • ブログ
  • ヘルプ

›はじめに

はじめに

  • はじめに
  • コマンドラインランナー
  • 制御フロー
  • コードエクスポート
  • よくある質問

APIリファレンス

  • コマンド
  • 引数

コマンドラインランナー

Selenium IDE のテストを、コードを書くことなく、あらゆるブラウザで、並列に、そして Grid 上で実行できるようになりました。

必要なのは、Selenium IDE コマンドラインランナーのインストール、必要なブラウザドライバの取得(ローカルでテストを実行する場合)、そしてコマンドプロンプトから必要なオプションを指定してランナーを起動するだけです。

command-line-runner-sample

前提条件

コマンドラインランナーを動作させるには、以下の依存関係が必要です。

  • node(Node.js プログラミング言語)バージョン8または10
  • npm(NodeJS パッケージマネージャー)。通常はnodeと一緒にインストールされます。
  • selenium-side-runner(Selenium IDE コマンドラインランナー)
  • そして、使用するブラウザドライバ(次のセクションで詳しく説明します)
> brew install node
> npm install -g selenium-side-runner

注:システム構成は、上記のサンプルで使用されているものとは異なる場合があります(例:MacOS の Homebrew)。その場合は、パッケージマネージャーの Node インストールに関するドキュメントを参照するか、Node ダウンロードページから直接オペレーティングシステム用の Node インストーラーをダウンロードしてください。

ブラウザドライバのインストール

ローカルでテストを実行する場合は、各ブラウザに追加の設定が必要です。

Selenium は、ブラウザドライバと呼ばれる小さなバイナリアプリケーションを介して各ブラウザと通信します。各ブラウザには独自のドライバがあり、システムパスに手動でダウンロードして追加するか、パッケージマネージャーを使用してブラウザドライバの最新バージョンをインストールできます(推奨)。

また、マシンにブラウザがインストールされている必要があります。

Chrome

Chrome の場合は、ChromeDriverが必要です。

> npm install -g chromedriver

Edge

Microsoft Edge の場合は、Windows で実行している必要があり、EdgeDriverも必要です。

> npm install -g edgedriver

Firefox

Firefox の場合は、geckodriverが必要です。

> npm install -g geckodriver

Internet Explorer

Internet Explorer の場合は、Windows で実行している必要があり、IEDriverも必要です。

> npm install -g iedriver

IEDriver を動作させるには、追加の設定が必要です。詳細はこちらをご覧ください。

Safari

Safari の場合は、SafariDriverが必要です。

最新バージョンの Safari に同梱されています。マシンで有効にするには、いくつかの手順を実行する必要があります。詳細は、SafariDriver ドキュメントのこのセクションをご覧ください。

ランナーの起動

すべてがインストールされたら、テストを実行するのは、コマンドラインから `selenium-side-runner` を呼び出し、その後ろに先に保存したプロジェクトファイルへのパスを付けるだけです(はじめにを参照)。

> selenium-side-runner /path/to/your-project.side

注:複数の `.side` ファイルがある場合は、ワイルドカードを使用できます(例:`/path/to/*.side`)。

このコマンドを実行すると、テストが複数のブラウザウィンドウで並列に実行され、`n`個のプロセス(`n`はマシンの利用可能なCPUコア数)に分散されます。

プロセスの数は、提供できるさまざまな引数を使用して実行時に構成できます。

注:並列実行は、スイートレベルで自動的に行われます。スイート内のテストを並列に実行する場合は、変更する必要がある設定があります。詳細は、スイートでのテストの並列化を参照してください。

実行時設定

ランナーを使用すると、実行時にさまざまな設定引数を渡すことができます。

ローカルでの異なるブラウザでの実行

機能の最も一般的な用途は、ローカルテスト実行のために異なるブラウザを指定することです。

selenium-side-runner -c "browserName=chrome"
selenium-side-runner -c "browserName='internet explorer'"
selenium-side-runner -c "browserName=edge"
selenium-side-runner -c "browserName=firefox"
selenium-side-runner -c "browserName=safari"

注:ローカルでテストを実行する場合は、各ブラウザにいくつかの設定が必要です。詳細は、ブラウザドライバのインストールを参照してください。

Selenium Grid での実行

Grid(独自の Grid または Sauce Labs などのホスト型プロバイダー)でテストを実行するには、さまざまな機能と共にそれを指定できます。

selenium-side-runner --server http://localhost:4444/wd/hub -c "browserName='internet explorer' version='11.0' platform='Windows 8.1'"

--server は Grid への URL を指定し、-c は Grid で使用する機能です。

利用可能な機能の完全なリストは、こちらをご覧ください。

並列プロセスの数の指定

Grid で実行する場合は、実行する並列セッションの数を制御したい場合があります。そのためには、-w n コマンドフラグ(`n` は必要なプロセスの数)を使用できます。

selenium-side-runner -w 10 --server http://localhost:4444/wd/hub

ランナーは、ワーカーの数をコンピューターで使用可能なCPUコア数と同じ数に自動的に設定します。ほとんどの場合、これが最適なオプションです。

Chrome固有の機能

マシンにChromeが標準以外の場所にインストールされている場合は、ChromeDriverが検索場所を知るようにパスを指定できます。

selenium-side-runner -c "goog:chromeOptions.binary='/path/to/non-standard/Chrome/install'"

Chrome固有の機能を使用すると、ヘッドレスでテストを実行することもできます。

selenium-side-runner -c "goog:chromeOptions.args=[disable-infobars, headless]"

すぐに使えるフレームワーク

ランナーには、他にも便利な機能が標準で備わっています。従来のテスト自動化フレームワークで利用できることが期待される機能です。

ベースURLの変更

異なるベースURLを指定する機能により、テストを簡単に異なる環境(例:ローカル開発、テスト、ステージング、本番)に向けることができます。

selenium-side-runner --base-url https://localhost

テストのフィルタリング

--filter target コマンドフラグ(ここで target は正規表現値です)を使用して、テストの対象サブセットを実行することもできます。指定された検索条件を含むテスト名のみが実行されます。

selenium-side-runner --filter smoke

テスト結果のファイルへの出力

テスト結果をファイルにエクスポートする必要がある場合(例:CIプロセスの一部として実行する場合)、--output-directory フラグと --output-format フラグを組み合わせて使用できます。

--output-directory は、テスト結果ファイルを配置する場所を定義します。絶対パスまたは相対パスのいずれかを取ることができます。

--output-format は、テスト結果ファイルに使用する形式を定義します。jest(例:JSON)またはjunit(例:XML)のいずれかです。デフォルトの形式はjestです(例:タイプを指定しない場合)。

selenium-side-runner --output-directory=results
# Outputs results in `jest` frormat in `./results/projectName.json'
selenium-side-runner --output-directory=results --output-format=jest
# Outputs results in `jest` frormat in `./results/projectName.json'
selenium-side-runner --output-directory=results --output-format=junit
# Outputs results in `junit` frormat in `./results/projectName.xml'

デフォルト設定の指定

必要なコマンドライン引数をすべて覚える必要がないように(扱いにくくなる可能性があります)、実行時パラメータを構成ファイルに保存することができます。

使用できる構成ファイルには2種類あります。

オプション1

テストを実行するディレクトリに.side.ymlファイルを作成します。ランナーはそれを自動的に取得します。ファイルの内容の例を以下に示します。

capabilities:
  browserName: "firefox"
baseUrl: "https://www.seleniumhq.org"
server: "http://localhost:4444/wd/hub"

ファイルを無視してコマンドライン引数を使用する場合は、実行時に他のコマンドと共に--no-sideymlを使用します。

オプション2

.side.ymlファイルを使用する代わりに、任意の名前と場所を持つYAMLファイルに実行時パラメータを指定し、テストの実行時にその場所を指定できます。

selenium-side-runner --config-file "/path/to/your/config.yaml"

注:--config-fileフラグを使用する場合、.side.ymlは無視されます。

Selenium IDEの設定

スイート内でのテストの並列化

標準では、ランナーはスイートを並列で実行しますが、スイート内のテストは順次実行されます。

特定のスイート内のテストを並列で実行するには、Selenium IDEでそのスイートの設定を更新する必要があります。

  1. Selenium IDEで「テストスイート」ビューに切り替えます。
  2. 設定するスイートの名前の横にあるドロップダウンメニューをクリックし、「設定」をクリックします。
  3. 「並列実行」のチェックボックスをクリックします。
  4. 「送信」をクリックします。
  5. Selenium IDEプロジェクトファイルを保存します。

複数のスイートでこの方法で設定するには、各スイートで手順1〜4を繰り返します。終了したら、プロジェクトファイルを必ず保存してください。

詳細オプション

追加パラメータ

Selenium IDEのプラグインは、独自の固有の実行時パラメータを指定できます。それらは--paramsフラグを使用して使用できます。

このオプションは、さまざまなオプションの文字列を取ります(機能を指定する方法と同様です)。

基本的な使用方法

パラメータの名前とその値を指定します。最も基本的な方法は、文字列値を指定することです。

selenium-side-runner --params "a='example-value'"

ネストされたパラメータ

ドット表記を使用して、パラメータをネストすることもできます。

selenium-side-runner --params "a.b='another example-value'"

配列値

文字列の代わりに、英数字の値の配列を指定できます。

selenium-side-runner --params "a.b.c=[1,2,3]"

複数のパラメータ

--params は一度しか呼び出すことができませんが、スペースで区切って複数のパラメータを指定できます。

selenium-side-runner --params "a='example-value' a.b='another example-value' a.b.c=[1,2,3]"

プロキシサーバーの使用

ランナーで以下のオプションを使用して、ブラウザにプロキシ機能を渡すことができます。

ダイレクトプロキシ

このオプションは、WebDriverがすべてのブラウザプロキシをバイパスするように設定します。

コマンドラインから
> selenium-side-runner --proxy-type=direct
.side.yaml 内で
proxyType: direct

手動プロキシ

ブラウザのプロキシを手動で設定します。

コマンドラインから
selenium-side-runner --proxy-type=manual --proxy-options="http=localhost:434 bypass=[http://localhost:434, http://localhost:8080]"
.side.yaml 内で
proxyType: manual
proxyOptions:
  http: http://localhost:434
  https: http://localhost:434
  ftp: http://localhost:434
  bypass:
    - http://localhost:8080
    - http://host:434
    - http://somethingelse:32

PAC プロキシ

指定されたURLにあるPACファイルを使用して、ブラウザプロキシを設定するようにWebDriverを設定します。

コマンドラインから
selenium-side-runner --proxy-type=pac --proxy-options="http://localhost/pac"
.side.yaml 内で
proxyType: pac
proxyOptions: http://localhost/pac

SOCKS プロキシ

SOCKS プロキシのプロキシ設定を作成します。

コマンドラインから
selenium-side-runner --proxy-type=socks --proxy-options="socksProxy=localhost:434 socksVersion=5"
.side.yaml 内で
proxyType: socks
proxyOptions:
  socksProxy: localhost:434
  socksVersion: 5

システムプロキシ

現在のシステムのプロキシを使用するようにWebDriverを設定します。

コマンドラインから
selenium-side-runner --proxy-type=system
proxyType: system

コードエクスポート

録音されたテストをWebDriverコードに変換する方法を学習しようとしている場合、または録音されたテストを既存のカスタムテストフレームワークに統合したい場合は、特定の言語で利用可能になったコードエクスポートが必要です。詳細はこちらをご覧ください!

最終更新日: 2019年7月29日
← はじめに制御フロー →
  • 前提条件
  • ブラウザドライバのインストール
    • Chrome
    • Edge
    • Firefox
    • Internet Explorer
    • Safari
  • ランナーの起動
  • ランタイム設定
    • ローカルでの異なるブラウザでの実行
    • Selenium Gridでの実行
    • 並列プロセスの数の指定
    • Chrome固有の機能
  • すぐに使えるフレームワーク
    • 基本URLの変更
    • テストのフィルタリング
    • テスト結果のファイルへの出力
    • デフォルト設定の指定
  • Selenium IDEの設定
    • スイートでのテストの並列化
  • 高度なオプション
    • 追加パラメータ
    • プロキシサーバの使用
    • コードエクスポート
Selenium IDE
ドキュメント
はじめにAPIリファレンスプラグインの構築
コミュニティ
Slackirc (#selenium)Googleグループ
その他
ブログGitHubスターレガシーIDE
Copyright © 2019 Software Freedom Conservancy (SFC)