マジセミドライブ

ウェビナー関連のニュースやITサービス&ツールの最新情報を随時配信します。

OSS情報

2020.01.01

【OSS情報アーカイブ】Selenium

【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」などをサポートしています。

→Selenium →Downloads

■同様製品

同様な機能を提供する製品として、次のようなものがあります。

オープンソース製品:「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」「マシン」の組み合わせに対するテストを効率的に実施できます。

 

参考元サイト

※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

この記事のタグ一覧

おすすめの記事

【IT用語解説】「 デジタルヒューマン 」とは😊

IT用語解説

2024.01.26

【IT用語解説】「 デジタルヒューマン 」とは😊

【IT用語解説】「 デジタルヒューマン 」として、「デジタルヒューマンとは何か?」「どのようにして作成できるのか?」「私たちの世界にどのような影響を与えているのか?」などについて、まとめています。

AIツール関連 記事リストポータル

AIツール

2023.10.05

AIツール関連 記事リストポータル

AI 関連の記事をまとめたポータルページです。

【AIツール実験室】チャットAI対抗「添削能力」選手権🏆

AIツール実験室

2023.12.27

【AIツール実験室】チャットAI対抗「添削能力」選手権🏆

各チャットAIの「添削能力」について比較確認をしています。 「ChatGPT4と同等の添削能力を発揮した無料チャットAI」にご注目ください。 また、 ChatGPTカスタマイズ機能「GPTs」を利用して作成した GPTs文章添削機能「添削師匠さん✍️」を紹介しています。 課金勢は試しに使ってみてください。