Selenium WebDriverとSelenium IDEなどについて

Published: 2016年7月24日 by tomsato

概要

Selenium WebDriverとSelenium IDEなど色々ある理由について調べます

生い立ちを学んでいく感じになっています

Seleniumの概要やSelenium IDEの使い方についてはこちらを参考にする

Selenium入門の入門

Selenium Core

最初の大元になったもの、現在Selenium Coreの使用は非推奨となっている

Selenium Coreの基本的なアイディアは、Webサーバ上にSelenium Coreのエンジンとテストスクリプトを事前に準備しておき、ローカルPCからのアクセスを受けた時に、JavaScriptのブラウザ操作ロジックを埋め込んだページを返す

Selenium RC

Selenium 1とも呼ばれることがある

Selenium RCの概念はSelenium Coreと概ね同じだが、Webサーバ上にテストスクリプトを置かなくてもいいようにSelenium Serverという中継サーバを用意している

しかしJavaScriptを使ってのブラウザ操作はブラウザのセキュリティ制限を受けるなどの欠点があった

Selenium RCの機能は非推奨となって開発が凍結している

WebDriver

WebDriverはSelenium RCの欠点を踏まえて、ブラウザ操作をJavaScriptではなくブラウザの拡張機能やOSネイティブの機能を使って行うようにした仕組みとなっている

Selenium WebDriver

Selenium 1 + WebDriver = Selenium 2

というわけでSelenium1 とWebDriverの2つが統合されてできたのがSelenium WebDriver

Selenium WebDriverがブラウザ操作する流れとしては

① クライアント側のロジックでテストスクリプトをHTTPリクエストに変換
② サーバ側のロジックでクライアントからのHTTP通信を受けてブラウザを操作する
selenium-webdriver01

これからわかるようにSelenium WebDriverはクライアントとサーバ側でロジックが分かれる
またSelenium WebDriverはブラウザ毎にDriverが用意されていてChrome, Firefox, IEなどによってDriverが違う

Selenium IDE

ブラウザ操作を記録して再生できるFirefoxのアドオン

なのでコードを書かずにブラウザ操作の自動テストを行うことができる

Selenium Builder

Selenium IDEの後継ツールを目指して開発されている

しかしSelenium WebDriverよりも前に開発されたため、内部のロジックはSelenium RCがベースになっている

機能や使いやすさはまだSelenium IDEに劣っているらしい(?)

Selenium Grid

Seleniumのテストを並列実行するためのするためのツール

1つのテストスクリプトを複数環境で並列実行できる

コメントを書く

※ 個別に返信が必要な時のみご記入ください

※ Emailは公開されません

※ 承認されると名前・コメントが下記に表示されます

コメント一覧

最近の投稿

ビジュアルリグレッションテストについてまとめ、ネットで調べると数多くのライブラリがありどれがどんな立ち位置なのか全体像がわかりずらかったのでどんな種類があるのか入門の入門としてまとめます、またPlaywrightを使って実際に触ってみました

社内ツールなどの超小規模なAPIをGolangで実装する際にフレームワークを使うべきかを、実際にnet/httpを使った実装とフレームワークを使った実装を比較することでどれだけ優位性があるかを見ていきたいと思います。今回はフレームワークにはシンプルで使いやすそうなEchoを使うことにします。

vue-pdfを使ってNuxt.jsで作成しているアプリケーションに pdfスライドを表示させるサンプルを作成しました README.md通りに実装してもうまくいかないところがあったのでそのあたり含めてまとめます

Vue.js / Nuxt.jsにおけるログインの実装方法をまとめる Auth0やNuxt.jsのAuth Moduleとmiddlewareについて調べつつサンプルを作成することで理解を深める

コンポーネント設計について考える Atomic DesignやPresentational Component, Container Componentについてまとめつつ 自分だったらVue.js / Nuxt.jsでどういうコンポーネント設計にするかについてまとめます

カテゴリ一覧

タグ一覧