マジセミドライブ

ウェビナー関連のニュースや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」「マシン」の組み合わせに対するテストを効率的に実施できます。

 

参考元サイト

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

この記事のタグ一覧

おすすめの記事

【デジタル寺田の3分用語解説】「 経済産業省:コンテンツ制作のための 生成AI 利活用ガイドブック 」とは?📘

デジタル寺田の3分用語解説

2024.11.18

【デジタル寺田の3分用語解説】「 経済産業省:コンテンツ制作のための 生成AI 利活用ガイドブック 」とは?📘

経済産業省による「 生成AI 利活用ガイドブック 」は、企業やクリエイター向けに、安心して「生成AI」を利用するための、「指針」「実例」「注意点」を明示しています。「業務効率化」や「新しいアイデア創出」の支援を目的としています。

【デジタル寺田の3分用語解説】「 2029年問題 」とは?📅

デジタル寺田の3分用語解説

2024.11.18

【デジタル寺田の3分用語解説】「 2029年問題 」とは?📅

「 2029年問題 」とは、高校でのデジタル教育改革により、新入社員と既存社員間でデジタルスキル格差が拡大する懸念を指します。企業は早急に対応が求められています。この格差は、企業競争力や業務効率にも、影響を及ぼす可能性があります。

【デジタル寺田の3分用語解説】「 VMWare 問題 」とは?🖥️

デジタル寺田の3分用語解説

2024.11.18

【デジタル寺田の3分用語解説】「 VMWare 問題 」とは?🖥️

「 VMWare 」の仮想化技術は、「ITインフラの効率化」に大きく貢献する技術ですが、Broadcomによる買収後のライセンス変更が大きな問題として注目されています。柔軟で慎重な契約見直しが今後の鍵となります。