JavaScriptテスト自動化ツールSeleniumのこれまでとこれから(後編)。第1回 日本Seleniumユーザーコミュニティ勉強会
JavaScriptのテスト自動化ツールとして知られるSeleniumに関する勉強会「第1回 日本Seleniumユーザーコミュニティ勉強会」が、1月18日に都内で開催されました。
(本記事は「JavaScriptテスト自動化ツールSeleniumのこれまでとこれから(前編)。第1回 日本Seleniumユーザーコミュニティ勉強会」の続きです)
Appiumのアーキテクチャ

Appiumは、Selenium WebDriverのようにHTTPサーバになっています。テストクライアントとはHTTPでやりとりします。

iOSでは、AppiumはUIAutomationスクリプトにコマンドを送ります。UIAutomationはアップルが作ったツールです。実際のデバイスでもシミュレータでも使えます。


AndroidではUIAutomatorに命令を送ります。スクリプトがHTTPでUIAutomatorと話をして、そこからアプリへ伝わります。


Appiumは、テストを1つくればそれをiPhoneとAndroidの両方で実行できます。もともとSeleniumが1つのテストで複数のブラウザに対応させるものでしたので、同じように考えられています。

Appiumのスクリプト
スクリプトについて話をしておきましょう。Selenium WebDriverをご存じなら、Appiumのテストの作り方も分かるでしょう。
まず、サーバにアプリを送るという手順が必要です。Appiumサーバに送る方法はいくつかあり、URLを使ってダウンロードする方法では、デバイスやアプリの情報を下に追加します。

いま開発中のSelenium 3では、モバイルテストが大きな要素になっています。Selenium 3ではWebDriverのAPIを改修していき、ブラウザでのテストとモバイルのテストの両方に対応できるものにしていきたいと考えています。
さて、スクリプトの話に戻ると、ローカルで動いているAppiumのHTTPサーバにつなぎます。ポート4723です。

そしてこれがWebDriverのテストスクリプト部分です。機能を有効にして、タグ名などを見て、対応するフィールドにテキストをタイプし、ボタンをクリックする、といった動作をします。

Selenium 3のリリース時期は? Seleniumの発音は?
会場 以前に、Chromeでテストがうまく動かないといったことがあった。ブラウザの進化に対してどう対応していくのか、といった開発体制が気になる。
回答 Selenium 3について言えば、Seleniumコミッタがブラウザのためのドライバを書かなくて言いようにすることを目指しています。例えばGoogleがChromeのドライバをメンテする、ということです。
会場 Selenium 3はいつ頃リリースされそうですか?
回答 開発は予定より遅れていて、昨年の夏にブログに書いたことを先月ようやくできたくらいです。このページに書いてある作業が終わった時点でSelenium 3が出ると思ってください。来月すぐに出る、と言ったことにはならないと思います。
会場 Selenium 3でモバイルアプリに対応するという話は合ったが、Selenium 2で書いたテストスクリプトの互換性などはどうなるのか?
回答 Selenium 2からSelenium 3での大きな違いはプロトコルに関することで、テストについては大きな変更はない予定です。
Selenium 3では、ブラウザやデバイスが何種類あってもテストできるように、プロトコルをできるだけいいものにしようとしています。そのためにプラットフォーム名、プラットフォームのバージョン、デバイス名などが指定できるようになっているのと、モバイルの地理情報、仮想キーボード、加速度計、ローテーション、バッテリーレベル、ネットワーク速度など独自のAPI対応などです。
デスクトップ向けの機能はステーブルなはずです。
会場 Seleniumの正確な発音は?
回答 それは面白い質問ですね。物質のSeleniumを指すときの発音は「セリニアム」という発音の方が正しいと思うのですが、アメリカではそういう発音をするとイギリス人みたいだと思われることがあります。私たちはソフトウェアを指すときには「セレニウム」と言っています(注:発音の表記は新野が聞いた感触をカタカナに置き換えたものです。人によっては違う音に聞こえた可能性があります)。
(11時53分 追記:ソフトウェアを指す発音を「セレニアム」から[セレニウム」に変更。書き間違いをしていました)

第1回 日本Seleniumユーザーコミュニティ勉強会
- JavaScriptテスト自動化ツールSeleniumのこれまでとこれから(前編)。第1回 日本Seleniumユーザーコミュニティ勉強会
- JavaScriptテスト自動化ツールSeleniumのこれまでとこれから(後編)。第1回 日本Seleniumユーザーコミュニティ勉強会
- JenkinsとSeleniumでJavaScriptのテスト自動化、最初の一歩。第1回 日本Seleniumユーザーコミュニティ勉強会
関連記事
あわせて読みたい
JenkinsとSeleniumでJavaScriptのテスト自動化、最初の一歩。第1回 日本Seleniumユーザーコミュニティ勉強会
≪前の記事
JavaScriptテスト自動化ツールSeleniumのこれまでとこれから(前編)。第1回 日本Seleniumユーザーコミュニティ勉強会