LoginSignup
22
14

More than 5 years have passed since last update.

E2Eテストについて調べてたら訳が分からなくなった話

Posted at

言いたいこと

掲題の通りです。

対象読者

  • E2Eテストは重要だと思う
  • きっちりやったことはない
  • seleniumって単語は知ってる

E2Eテストとは

まずE2Eテストについて簡単に説明します。

E2E(End to End)テストとは、ユーザーの視点から実際にwebブラウザを通して一通りの処理をテストすることをさします。
(Example...フォームにuser名とpasswordを入力してログインボタンを押すとログイン画面が出る)
重要ですね。
とはいえ、何かリリースがあるたびに、あるいは30分に一回など、人間が全機能を手で試すなんてとてもじゃないですがやってられません。
そこでE2Eテストも自動化の波にさらわれている訳です。

前置き

E2Eテストの自動化が大切なのはわかったけどどうやってやるの?って話ですね。
ここでおそらくSeleniumという単語が検索に引っかかりまくります。
ふむふむなるほどSeleniumというのを使えばwebブラウザをソースコードで操作できるのですね。便利です。
ではSelenium以外に手段はないのか?と調べた結果、私は掲題の状態になりました。
ならなかったプログラミングできるマンである諸兄はここまでお付き合いいただきありがとうございました。

よく見る名前

おそらくこのような名前が検索で引っかかります。
- Selenium
- Nightwatch.js
- puppeteer
- WebdriverIO
- Nightmare
- WebDriver
- etc...

本記事ではこれらがどういった関係性なのかを紹介し、未来ある子羊たちが自分と同じ道をたどることのないようにしていきたいと思います。

本題

そもそも私がなぜよくわからくなったかというと、Nightwatch.jsのサイトで説明を見ていると、こんな記述があったためです。

Selenium Server Setup

つまり、Nightwatch.jsを利用するにはSeleniumが必要と。
なんでやねん。
なぜこれに疑問を覚えたかというと、私は上であげたようなツール群を全て並列な存在に捉えていたためです。
つまり、Seleniumの代わりにNightwatch.jsが使えるという理解だったのです。

実際には

Nightwatch.js puppeteer WebdriverIO Nightmare などなど
↓                         ↓
Selenium WebDriver など      ↓
↓                                     ↓
Chrome FireFox Electron Chromium (実際の操作対象になるブラウザ) などなど

という流れなのですね。
つまりNightwatch.jsやWebdriverIOはSeleniumをより使いやすくしてくれているwrapperのようなライブラリだったという訳です。

あとがき

厳密にはSeleniumとWebDriverは別物ののようです(W3Cがどうとかかんとか)
ともあれここがわかればあとは調べてなんとかなるかと思われます。
世間の波に乗りたいので頑張って調べます。

22
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
22
14