何ですか Selenium? 導入チュートリアル

何ですか Selenium?

Selenium は、さまざまなブラウザやプラットフォームでWebアプリケーションを検証するために使用される無料の(オープンソースの)自動テストフレームワークです。次のような複数のプログラミング言語を使用できます。 Java、C#、 Pythonなどを作成する Selenium テストスクリプト。を使用して行われたテスト Selenium テストツールは通常次のように呼ばれます Selenium テスト.

セレンとは何か

エキスパートインサイト

「テストでは固定のスリープ遅延は避けてください。代わりに、WebDriverWaitなどの明示的な待機を使用して要素の読み込みを待機してください。これにより、スクリプトは実際のページの状況に動的に応答するため、信頼性と速度が向上します。これは、世界中の学生にとって重要なベストプラクティスです。 Seleniumに設立された地域オフィスに加えて、さらにローカルカスタマーサポートを提供できるようになります。」

— ヒマンシュ・シェス Selenium 上級

Selenium ツールスイート

Selenium ソフトウェアは単なる単一のツールではなく、ソフトウェアのスイートであり、それぞれの部分が異なる用途に対応します。 Selenium 組織の QA テストのニーズ。ツール一覧はこちら

  • Selenium 統合開発環境(IDE)
  • Selenium リモコン(RC)
  • webdriver
  • Selenium グリッド

Selenium ツールスイート

現時点では、 Selenium RC と WebDriver は単一のフレームワークに統合され、 Selenium 2. Selenium ちなみに1とは、 Selenium RC。

ビデオチュートリアル Selenium

クリック こちら ビデオにアクセスできない場合

誰が開発したのか Selenium?

Since Selenium はさまざまなツールのコレクションであり、さまざまな開発者もいます。以下は、この活動に顕著な貢献をした主要人物です。 Selenium プロジェクト

発展した Selenium

主に、 Selenium ました 2004 年にジェイソン・ハギンズによって作成されました。 ThoughtWorksのエンジニアである彼は、頻繁なテストが必要なWebアプリケーションに取り組んでいました。 アプリケーションの反復的な手動テストがますます非効率になっていることに気づき、彼は Javaスクリプト ブラウザの動作を自動的に制御するプログラム。 彼はこのプログラムを「Javaスクリプトテストランナーに設立された地域オフィスに加えて、さらにローカルカスタマーサポートを提供できるようになります。」

このアイデアが他のウェブアプリケーションの自動化に役立つ可能性を感じた彼は、 JavaScriptRunnerオープンソース(後に改名) Selenium ペース:。 Web アプリケーション テストの他のオプションを検討することに興味がある場合は、以下を参照してください。 Selenium 選択肢.

同一生成元ポリシーの問題

同一起源ポリシーにより禁止されている Javaスクリプトコードが、起動された場所とは異なるドメインの要素にアクセスするたとえば、www.google.comのHTMLコードでは、 Javaスクリプト プログラム「randomScript.js」。同一生成元ポリシーにより、randomScript.js は google.com/mail、google.com/login、google.com/signup などの google.com 内のページにのみアクセスできます。ただし、yahoo.com/search や guru99.com などの異なるサイトのページにはアクセスできません。これらは異なるドメインに属しているためです。

同一生成元ポリシーの問題

これが以前の理由です Selenium RC、テスターは両方のローカル コピーをインストールする必要があります Selenium コア(a Javaスクリプトプログラム)とテスト対象のWebアプリケーションを含むWebサーバーが同じドメインに属するようにします。

の誕生 Selenium リモコン (Selenium RC)

ポール・ハマント

残念ながら;テスターが使用している Selenium Core は、テスト対象のアプリケーション全体と Web サーバーを独自のローカル コンピューターにインストールする必要がありました。 同一生成元ポリシー。 そこで、ThoughtWork の別のエンジニアは、 ポール・ハマント、ブラウザを「騙して」そう信じ込ませるために、HTTP プロキシとして機能するサーバーを作成することにしました。 Selenium コアとテスト対象の Web アプリケーションは同じドメインに由来します。このシステムは、として知られるようになりました。 Selenium リモートコントロール or Selenium 1.

の誕生 Selenium グリッド

パトリック・ライトボディ

Selenium グリッドを開発したのは、 パトリック・ライトボディ テストの実行時間を可能な限り最小限に抑える必要性に対処します。 彼は当初このシステムを「ホスト型 QA」 重要な段階でブラウザのスクリーンショットをキャプチャすることができました。 発送 Selenium 異なるマシンに同時にコマンドを送信します。

の誕生 Selenium IDE

笠谷真也

笠谷真也 日本が生み出した Selenium IDE Firefox 記録と再生機能を通じてブラウザを自動化できる Chrome 拡張機能。彼は、テスト ケースの作成速度をさらに向上させるためにこのアイデアを思いつきました。彼は寄付しました Selenium IDE から Selenium プロジェクトイン 2006.

WebDriverの誕生

サイモンスチュワート

サイモンスチュワート WebDriver を作成した頃 2006 ブラウザやウェブアプリケーションがより強力になり、より制限的になったとき、 Javaスクリプトプログラム Selenium コア。 これは、OS レベルからブラウザを制御できる初のクロスプラットフォーム テスト フレームワークでした。

の誕生 Selenium 2

In 2008、全体の Selenium チームは WebDriver と Selenium RC は、と呼ばれるより強力なツールを形成します。 Selenium 2、と WebDriverがコアとなる。 現在、 Selenium RC はまだ開発中ですが、メンテナンス モードにすぎません。ほとんど Selenium プロジェクトの取り組みが現在焦点を当てているのは、 Selenium 2.

それで、なぜその名前がついたのか Selenium?

名前 Selenium これはジェイソンがかつてチームに漏らしたジョークに由来しています。その間 Seleniumの開発、別の 自動テスト という会社が作ったフレームワークが人気でした Mercury 対話 (はい、QTP が HP に買収される前に最初に QTP を作成した会社です)。以来 Selenium は、よく知られている解毒剤です Mercury ポイズニングという名前をジェイソンが提案し、彼のチームメイトがそれを採用しました。それで、私たちはこのフレームワークを現在までこう呼んでいます。

名前の理由 Selenium

何ですか Selenium IDE?

Selenium 統合開発環境 (IDE) は、 最も単純なフレームワーク 会場は Selenium スイートです 最も学びやすいもの。 それは、 クロム Firefox プラグイン 他のプラグインと同じように簡単にインストールできます。ただし、そのシンプルさゆえに、 Selenium IDE は、 プロトタイピングツール。より高度なテスト ケースを作成したい場合は、次のいずれかを使用する必要があります。 Selenium RC または WebDriver。

Selenium IDE

何ですか Selenium リモコン (Selenium RC)?

Selenium RCは、 主要なテストフレームワーク 全体の Selenium 久しぶりのプロジェクト。初めての自動化です Webテスト そのツール ユーザーが好みのプログラミング言語を使用できるようにするバージョン 2.25.0 以降、RC は次のプログラミング言語をサポートできます。

Selenium リモコン (Selenium RC)

Webドライバーとは何ですか?

WebDriver はより優れていることが証明されています。 Selenium IDEと Selenium RC 多くの面で。ブラウザーのアクションを自動化するための、より現代的で安定したアプローチを実装します。 WebDriverとは異なり、 Selenium RCは、 Javaのスクリプト Selenium 自動化テスト。 ブラウザと直接通信することでブラウザを制御します。

サポートされている言語は、 Selenium RC。

  • Java
  • C#
  • PHP
  • Python
  • パール
  • ルビー

ウェブドライバー

何ですか Selenium グリッド?

Selenium グリッドはツールです と一緒に使用 Selenium 走らせるRC 並列テスト 異なるマシンと異なるブラウザ間で同時に実行できます。 並列実行とは、複数のテストを一度に実行することを意味します。

機能と特徴:

  • 有効にする テストの同時実行 in 複数のブラウザと環境。
  • 時間を節約する 非常に。
  • を活用 ハブとノード コンセプト。ハブは中心的なソースとして機能します。 Selenium 接続されている各ノードにコマンドを送信します。

Selenium ブラウザと環境のサポート

建築上の違いにより、 Selenium SDI、 Selenium RC と WebDriver は、異なるブラウザーとオペレーティング環境のセットをサポートします。

  Selenium IDE webdriver
ブラウザのサポート モジラ Firefox とChrome

Google Chrome 12+

Firefox

Internet Explorer 7 以降および Edge

サファリ、 

HtmlUnit と PhantomUnit

オペレーティングシステム Windows、Mac OS X、Linux 上記のブラウザが実行できるすべてのオペレーティング システム。

注意: Opera ドライバーが動作しなくなりました

正しい選択方法 Selenium ニーズに合わせたツール

ツール 選ぶ理由
Selenium IDE
  • 自動テストの概念について学び、 Selenium、を含みます:
  • type、open、clickAndWait、assert、verify などの Selenese コマンド。
  • ID、名前、XPath、CSS セレクターなどのロケーター。
  • カスタマイズの実行 JavarunScript を使用したスクリプト コード
  • テスト ケースをさまざまな形式でエクスポートします。
  • プログラミングに関する予備知識がほとんど、またはまったくなくてもテストを作成できます。
  • 後で RC または WebDriver にエクスポートできる簡単なテスト ケースとテスト スイートを作成します。
  • Web アプリケーションをテストするには Firefox およびクロムのみ。
Selenium RC
  • Selenese よりも表現力豊かな言語を使用してテストを設計するには
  • 異なるオペレーティング システム上の異なるブラウザー (HtmlUnit を除く) に対してテストを実行します。
  • を使用して複数の環境にテストをデプロイするには Selenium グリッド。
  • アプリケーションを新しいブラウザでテストするには Java脚本。
  • 複雑な AJAX ベースのシナリオで Web アプリケーションをテストします。
webdriver
  • テスト ケースの設計に特定のプログラミング言語を使用すること。
  • AJAX ベースの機能が豊富なアプリケーションをテストします。
  • HtmlUnit ブラウザ上でテストを実行します。
  • カスタマイズされたテスト結果を作成するため。
Selenium グリッド
  • あなたを実行するには Selenium 複数のブラウザとオペレーティング システムで同時に RC スクリプトを実行します。
  • 大規模なテスト スイートを実行するには、できるだけ早く完了する必要があります。

比較 Selenium およびQTP(現UFT)

クイックテストプロフェッショナル(QTP) 同社が以前所有していた独自の自動テストツールです Mercury 対話 ヒューレット・パッカードが買収する前 in 2006その後、MicroFocusが所有し、ツールの名前はUFT oneに変更されました。 Selenium Tool Suite には多くの利点があります  QTP 以下に詳しく説明します –

の利点と利点 Selenium QTP経由

Selenium QTP
オープンソース, 自由に使用する, 無料です。 商業用.
高度に伸縮可能な 限定されたアドオン
全体にわたってテストを実行できます さまざまなブラウザ でのみテストを実行できます Firefox, インターネットエクスプローラ   Chrome
お客様サポート さまざまなオペレーティングシステム でのみ使用できます Windows
お客様サポート モバイルデバイス QTP はモバイル アプリのテスト自動化をサポートします (iOS および Android) HP ソリューションを使用 – HP Mobile Center
テストを実行できる while   ブラウザは最小化されています テスト対象のアプリケーションをデスクトップ上に表示できるようにする必要がある
テストを実行できる 並行して. 並列でのみ実行できますが、やはり有料製品である Quality Center を使用します。

実世界のケーススタディ

🔍 ケーススタディ 1: SaaS ダッシュボードのクロスブラウザ互換性

シナリオ

あるSaaS企業は、最新のブラウザ(Chrome、 Firefox、Edge、Safari)。

課題

各ブラウザでの手動テストは時間がかかり、エラーが発生しやすく、急速な開発の反復に対応できませんでした。

ソリューション Selenium

QAエンジニアが作成した Selenium グリッド 複数のブラウザとOSの組み合わせで同じテストスイートを同時に実行できるように設定しました。テストは Python Selenium ログイン、チャートのフィルタリング、データのエクスポートなどのアクション用の WebDriver。

結果

  • 回帰期間を 80% 短縮しました。
  • ブラウザ固有のレンダリング バグ (IE でのグラフの位置ずれなど) を早期に発見しました。
  • 追加の手動サイクルなしで、ブラウザ マトリックス全体で一貫したダッシュボード UX を維持しました。

⚙️ ケーススタディ 2: WebアプリのCI/CD統合 Selenium + TestNG

シナリオ

中規模のウェブ開発会社は、Jenkins を使用した CI/CD パイプラインを活用しています。コードを変更するたびに、コアとなるユーザージャーニーが確実に機能することを確認する必要がありました。

課題

新しいビルドのデプロイメントによって、ログインやフォームの送信などのユーザーフローが中断されることがあり、そのことが 1 日の終わりの手動テストまで検出されませんでした。

ソリューション Selenium

テスターは、 Javaベース Selenium WebDriverスイートは TestNGテストは認証、プロファイル更新、検索機能を対象とし、並列実行とブラウザパラメータ化を活用して、すべてのJenkinsビルドで実行されました。

結果

  • フェイルファストフィードバックを実現: 壊れたフローにすぐにフラグが付けられました。
  • デプロイ後のバグが 60% 以上削減されました。
  • 開発者が QA に到達する前に問題に対処できるようになりました。

🚀 ケーススタディ 3: 旅行アグリゲーターの機能リリースの加速

シナリオ

旅行情報収集プラットフォームは、フライト予約機能を刷新する必要がありました。10ページ以上に及ぶ手動回帰テストに数日かかり、リリースが滞っていました。

課題

市場投入までの時間を短縮するというプレッシャーは手動テスト サイクルを上回ることができず、遅延や品質の低下を招くリスクがありました。

ソリューション Selenium & ページオブジェクトモデル

QA 自動化リーダーが C# にページ オブジェクト モデル (POM) 構造を導入しました。 Selenium WebDriverスクリプトはページ要素とアクション(フライトの検索、フィルターの適用、支払いケース)をカプセル化しました。自動テスト実行はGitLab CIで毎晩実行されました。

結果

  • テスト時間は 3 日からわずか 4 時間に短縮されました。
  • 複数の機能にわたるスクリプトの再利用により、スクリプト作成の労力が 50% 削減されます。
  • 信頼性が高まりました。リリースはバグ報告を最小限に抑えながらスケジュールどおりに出荷されました。

QTP の利点 Selenium

QTP Selenium
テストできます Web アプリケーションとデスクトップ アプリケーションの両方 Web アプリケーションのみをテストできます
と来る 組み込みオブジェクトリポジトリ 組み込みのオブジェクト リポジトリはありません
よりも速く自動化します Selenium それは完全な機能を備えた IDE であるためです。 ネイティブ IDE がなく、開発にはサードパーティの IDE のみを使用できるため、自動化の速度が遅くなります。
データ駆動型テストはより簡単に実行できるため、 グローバル データ テーブルとローカル データ テーブルが組み込まれています. データ駆動型テストは、テスト データの値を設定するためにプログラミング言語の機能に依存する必要があるため、より面倒です。
ブラウザ内のコントロールにアクセスできます(お気に入りバー、アドレスバー、戻るボタン、進むボタンなど) テスト対象の Web アプリケーションの外部の要素にアクセスできない
プロフェッショナルを提供します 顧客サポート 公式ユーザーサポートは提供されません。
ネイティブ機能を備えています テストデータをエクスポートする 外部フォーマットに変換する 実行時データを外部形式にエクスポートするネイティブ機能はありません
パラメータ化サポートが構築されています パラメータ化はプログラミングによって実行できますが、実装は困難です。
テストレポートは自動的に生成されます テスト/バグ レポートを生成するためのネイティブ サポートはありません。

QTP の方がより高度な機能を備えていることは明らかですが、 Selenium 次の 3 つの主要な領域で QTP を上回ります。

  • 費用(なぜなら Selenium 完全に無料です)
  • 柔軟性(サポートできるプログラミング言語、ブラウザ、プラットフォームが多数あるため)
  • 並行テスト(QTP で可能なことですが、Quality Center を使用する場合にのみ可能です)

製品概要

  • Selenium ソフトウェア テスト スイートは、次の 4 つのコンポーネントで構成されています。
  • Selenium アイデア Firefox Chrome アドオンは、比較的単純なテスト ケースとテスト スイートの作成にのみ使用できます。
  • Selenium リモートコントロール、別名 Selenium 1、最初です Selenium ユーザーがプログラミング言語を使用して複雑なテストを作成できるようにするツール。
  • WebDriver は、テスト スクリプトがブラウザと直接通信できるようにする新しい画期的な機能で、OS レベルからブラウザを制御できます。
  • Selenium グリッドも一緒に使用されるツールです。 Selenium RC は、さまざまなブラウザやオペレーティング システム間で並列テストを実行します。
  • Selenium RC と WebDriver が統合されて、 Selenium 2.
  • Selenium コストと柔軟性の点で、Microfocus UFT One よりも有利です。