マジセミドライブ
ウェビナー関連のニュースやITサービス&ツールの最新情報を随時配信します。
OSS情報
2020.01.01
【OSS情報アーカイブ】Selenium


※当記事に記載されている情報は、古くなっている場合があります。オフィシャルサイトで最新情報をご確認ください。
コンテンツ
「Selenium」とは
「Selenium」基本情報
■概要
Selenium(セレニウム)とは、Webアプリケーションのテスト自動化を実現するブラウザ駆動型テストツール群です。ブラウザ操作からテストスクリプトを作成でき、Webベース管理タスクの自動化も行えます。
■基本説明
Seleniumは、Webブラウザの自動操作ライブラリで、さまざまな機能を備えています。
自動テストフレームワークと組み合わせることでテストの自動化を実現でき、複数ブラウザプラットフォームでのテスト実行をサポートし、自動で画面キャプチャを保存できます。
また、Webベース管理タスクの自動化にも利用できます。
■Seleniumの経緯と機能構成
Seleniumは、初期版から最新版に向けて、機能構成が大きく変更されています。
Selenium1「Selenium RC(Remote Control)」or「Selenium Core」
2004年、Selenium1がリリースされました。
Selenium1は、Selenium2が登場するまで中心的プロダクトでしたが、現在では、Selenium1はメンテナンスモードとなり、積極的なサポートは行われていません。
Selenium2「Selenium WebDriver」
2011年、「Selenium Core」と、Google社が開発していた「WebDriver」との統合が図られ、Selenium2としてリリースされました。
Selenium2は、「Selenium Coreテクノロジー」と「WebDriver API」をサポートし、テスト移植の柔軟性を高め、より固着力のあるオブジェクト指向のAPIなど、優れた機能を提供します。
後方互換性のためにSelenium1の「Selenium RC」インターフェースをサポートしています。
Selenium3
2016年、中核技術の「Selenium Core」を切り離して、「WebDriver」にのみ対応したバージョンがSelenium3としてリリースされました。
■オフィシャルサイト情報
オフィシャルサイト
→Selenium(Web Browser Automation)
ライセンス情報
Seleniumのライセンスは「Apache License 2.0」です。
詳細について、こちらを参照ください。
→Selenium →Selenium License
ダウンロード
Seleniumは「Windows」「OS X」「Linux」「Solaris」などをサポートしています。
■同様製品
同様な機能を提供する製品として、次のようなものがあります。
オープンソース製品:「Appium」「Apache Jmeter」「Jenkins」など。
「Selenium」の主な特徴
■テストスクリプト作成
ブラウザ操作ベース
ブラウザアドオン「Selenium IDE」を利用して、ブラウザに対して操作すると、その操作履歴が保存され、HTMLテストスクリプトが作成されます。
ブラウザ操作によりテストスクリプトのベースを作成して、必要に応じて微調整を加えれば、テストスクリプトが完成します。
HTMLテストスクリプトを実行すれば、同様の操作をリプレイできます。
HTML記述ベース
ブラウザ操作ベースを使用せずに、HTML記述でもテストスクリプトを作成できます。
1行が1手順を表す3カラムのtableとして記述する形式で、HTMLを扱えればプログラマーではなくてもテストスクリプトを作成できます。
開発言語ベース
開発言語を使用したテストスクリプト作成も行えます。
「Java」「C#」「Ruby」「PHP」「Perl」「Python」「JavaScript(Node.js)」などの言語をサポートしています。
「ログイン処理などの定型的な共通処理を別のメソッドとして切り出す」などのプログラマブルなテストスクリプトを作成できます。
テストスクリプトは各言語用テスティングフレームワークと連携して記述します。例えば、Javaの場合なら、JUnitのテストスクリプトとしてIDE上から記述/実行します。
■回帰テスト自動化向け
Seleniumを使用する場合、「テストスクリプト作成」「実行環境維持」「テスト実行所要時間」など、利用コストは高めになります。
「回帰テストの自動化」など、繰り返し利用が多いケースへの適用が効果的とされています。
■サポートブラウザ
Seleniumは、主要ブラウザに対応しています。
・Chrome
・FireFox
・Internet Explorer
・Safari
・Opera
・Android標準ブラウザ
・iOS標準ブラウザ など
「Selenium」プロダクト
「Selenium」プロダクト
Seleniumには、複数のプロジェクトがあり、これらのプロダクトを組み合わせることで、多種多様なテストシステムを作成できます。
■テストスクリプト統合開発環境「Selenium IDE」
概要
「Selenium IDE」は、Firefoxプラグインとして実装されている「テストスクリプト統合開発環境」です。自動テストを開発するための使いやすいインターフェースで、テストスクリプト作成用プロトタイピング機能を提供します。
統合開発環境
Selenium IDEは、テストスクリプトの「作成」「編集」「実行」「デバッグ」までを行える統合開発環境です。Seleniumテストスクリプトを作成するための最適な開発環境です。
ブラウザ操作内容保存機能
Selenium IDEにはブラウザ操作内容保存機能があり、ユーザーのブラウザ操作を記録し、テストスクリプトとして出力できます。
「一通り手動で操作を行い記録してテストスクリプトを生成」→「その自動生成されたテストスクリプトに修正を加える」という手順で、効率的なテストスクリプト作成を行えます。
プラグインシステム
Selenium IDEにはプラグインシステムがあり、さまざまな機能拡張やカスタマイズを行えます。
・APIに新しい機能を追加
・既存機能の変更
・カスタムフォーマット対応
・エクスポート対応
・update.rdfファイルのホスティング など
その他のポイント
・Seleniumコマンドのオートコンプリート機能
・インテリジェントフィールドでは必要に応じて「ID」「名前」「XPath」が使用される
・デバッグ時のブレークポイント設定
・テストスクリプト出力機能(HTML、Rubyスクリプト、その他の形式)
・Selenium user-extensions.jsファイルのサポート
・ページタイトルの自動的アサーション など
■WebアプリケーションUIテストツール「Selenium Remote Control」
概要
「Selenium Remote Control」は、JavaScript対応ブラウザに対して、任意のプログラミング言語で、自動WebアプリケーションUIテストを記述できるテストツールです。
主要なプログラミング言語とテストフレームワークに対応しており、ローカルまたは他のコンピュータ上のWebブラウザを制御できます。
クライアント/サーバ構成
「Selenium Remote Control」は、クライアント/サーバ構成で、テストスクリプトとブラウザを中継するサーバ「Selenium Server」を起動し、ブラウザが動作するPCと連携させることでテストを実施します。
複雑なテストに対応
複雑な処理を行えるため、継続的インテグレーションにおいて、AJAXベースのWebユーザーインターフェーステストなどに向いています。
■Webブラウザ操作用APIライブラリ「Selenium WebDriver」
概要
「Selenium WebDriver」は、「ブラウザ拡張機能」と「OSネイティブ機能」を利用してブラウザを操作するための、「コンパクトなオブジェクト指向API群」を提供するライブラリです。
ブラウザをローカルまたはリモートマシン上でネイティブに駆動できます。作成したテストスクリプトについて「Selenium WebDriver」を利用してバッチ実行します。
経緯
「Selenium WebDriver」は、「Selenium Remote Control」の後継バージョンです。
「Selenium Remote Control」ではJavaScript対応ブラウザが前提であるため、ブラウザの制限により実行できない処理が多々あったことから、それを克服し、OSのネイティブ操作を行えるように開発されました。
「Selenium Remote Control」と比較して、よりシンプルで簡潔なプログラミングインターフェースとして設計されています。
対応できる主な操作
・クリック
・スクロール
・文字入力
・ウィンドウサイズ変更
・ファイルのアップロード/ダウンロード
・ポップアップ など
その他の機能
・Cookie/セッション情報の書き換え
・スクリーンショット保存(レスポンシブレイアウト表示のテストエビデンスとして利用可能) など
■複数テスト同時実行コンポーネント「Selenium Grid」
概要
「Selenium Grid」は、異なるリモートマシン上において異なるテストを同時実行できるコンポーネントです。複数環境に対する管理を行えます。
メリット① テスト時間の大幅短縮
大規模テストスイートの場合、テストスイートを分割し、異なるマシンを使用して異なるテストを同時に実行することで、テスト所要時間についてのパフォーマンスを大幅に向上できます。
メリット② 膨大な組み合わせテストに対応
複数環境テストスイートの場合、さまざまな「ブラウザ」「OS」「マシン」の組み合わせに対するテストを効率的に実施できます。
参考元サイト
- Selenium
- CodeZine →SeleniumとWebDriverの最新事情~標準化が進み、さらに強力なテストツールへ! その影でSelenium IDEは……
- イー・アルゴリズム →Seleniumとは―読み方、意味、WebDriverの使い方
※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。
この記事のタグ一覧
フリーワード検索
カテゴリー一覧
アクセスランキング
- 🏆ランク1位🏆
【無料で使える】「 OCR 」ツールまとめ - 🏆ランク2位🏆
【無料で使える】「 プロジェクト管理 」ツールまとめ - 🏆ランク3位🏆
【無料で使える】「 翻訳 」ツールまとめ - 🏆ランク4位🏆
【OSS情報アーカイブ】SonarQube - 🏆ランク5位🏆
【無料で使える】「 ドキュメント管理 」ツールまとめ - 🏆ランク6位🏆
【AIツール実験室】画像生成AIツール「 Emi 」(前編) - 🏆ランク7位🏆
【ツール紹介】無料オープンソース「 ビデオ監視 ツール 」まとめ3選 - 🏆ランク8位🏆
【無料で使える】「 バックアップ 」ツールまとめ - 🏆ランク9位🏆
【ChatGPT使ってみる実験室】 WordPress関数を作って記事リストを出力 - 🏆ランク10位🏆
【無料で使える】「 グループウェア 」まとめ