Upload
hiroshi-toda
View
1.432
Download
4
Embed Size (px)
Citation preview
自己紹介
• 戸田 広(とだ ひろし) @hiroshitoda • 1979年生まれ 37歳 • Seleniumを触り始めたのは2013年4月頃から。 • Seleniumを触り始めてから10kg太りました。 • きっと自動化がうまくいって怠けているからに違いない!!!
今日話すこと
今年 2016年も、 Selenium / Appium には大きな変化が続きました。 ここらでひとつ、現状を振り返ってまとめてみましょう。 1. Selenium 3 で変わったこと 2. Selenium 最近のブラウザー対応状況 3. 最近と、これからの Selenium IDE 4. Appium 1.6 重箱の隅っこ
有楽町のSeleniumを使っているサラリーマン100人に聞きました
• Selenium 3 が2016年11月にリリースされました! • Selenium 3 で変わったことは?
※イメージです、真に受けるな
「何も変わらなかった」
• Selenium 3 は、WebDriverに関しては ほぼマイナーバージョンアップの規模の変更に とどまりました。 • WebDriverや、WebDriverのラッパーを利用した 既存のコードについて、特段変更すべき点はありません。 • Selenide • FluentLenium • Capybara • Codeception
ここで、Seleniumの系譜を考えてみましょう
• かつての Selenium WebDriver (Selenium 2) は、 Selenium RC と WebDriver を アンッー したものでした。
ここで、Seleniumの系譜を考えてみましょう
• Selenium 3 は、WebDriverのみのパッケージになりました。 Selenium RC は別のパッケージ(leg-rc)に切り離されました。 • つまり、Selenium RCにさえ依存していなければ Selenium 3 に更新しても影響はほぼありません。
• というのは半分 公式の受け売りで、 Javaバインディングでは Java 8 以上が必須になったり Rubyバインディングでは Ruby 2.0 以上が必須になるなど 実行環境での大きい変更が無くもないです。 導入計画は気をつけて立てましょう!
「秘伝のツールが動かなくなった」
• RCに依存している秘伝のツールを使っている場合は、 単純に Selenium 3 に更新できません。 • 名前空間が com.thoughtworks ベースに変わったうえ、
Selenium 3 で leg-rc パッケージとして完全に切り離されました。
• じゃあ leg-rc パッケージを使えば問題ないかと言うと、 内部処理が WebDriver-backed ベースの処理に変わっているため 移行できず切り捨てられたAPIもあります。要注意!!!
• 秘伝のツールの移行時には検証と対策が必須です。
<dependency><groupId>org.seleniumhq.selenium</groupId><ar8factId>selenium-leg-rc</ar8factId><version>3.0.1</version></dependency>
「秘伝のツールが動かなくなった」
• 秘伝のツールと言えば Selenium IDE • selenium-server-standalone.jar の –htmlSuite オプションで
Selenium IDE が出力する Selenese HTML を使っている場合、 単純に Selenium 3 に更新すると動かなくなってしまいます。 • もろに leg-rc パッケージの対応範囲ということですね。
• Selenium 3 からは、代わりに配布されるようになった selenium-html-runner.jar (WebDriver-backedベース) を 使うのが手軽です。
「Firefoxが動かなくなった」
• Selenium 3 のリリース前後で たまたまいくつかの主要ブラウザーにおいて WebDriver への対応状況が大きく変わり、 古いコードで動かなくなっている場合があります。
• これを Selenium 3 のせいと言うのは酷なもの…
┌─────┐│ 偶然だぞ │└∩───∩┘ ヽ(`・ω・)ノ
Selenium 最近のブラウザー対応状況、ざっくり言うと…
• 以前から大きく状況が変わらないブラウザー • ChromeDriver (Google Chrome/Chromium) • InternetExplorerDriver (InternetExplorer) • EdgeDriver (Microsoft Edge)
• めちゃめちゃ変わっちゃったブラウザー • FirefoxDriver (Firefox) • SafariDriver (Safari)
• プロジェクトが独立したブラウザー • HtmlUnitDriver
• 最近微妙なやつ • OperaDriver (Opera) • GhostDriver (PhantomJS)
以前から大きく状況が変わらないブラウザー
• ChromeDriver (Google Chrome/Chromium) • 特に変わりなし。
• InternetExplorerDriver (InternetExplorer) • 特に変わりなし。
• EdgeDriver (Microsoft Edge) • 状況は特に変わりなし。 • Release 14393 から
sendKeys でマルチバイト文字列が通るようになりました!! • ダウンロードセンターで入手できるインストーラーは
古くて不具合もあるので捨てましょう。
めちゃめちゃ変わっちゃったブラウザー
• FirefoxDriver (Firefox) • 未署名アドオンが使えなくなってしまったことなどから
GeckoDriverの併用が必須になりました。 • GeckoDriverは、Firefox内蔵の「Marionette」のプロトコルと
WebDriverのプロトコルの相互変換プロキシーとして動作します。 • Marionetteを捨てて直接WebDriverに対応しないのかなウッ頭が • 最新バージョンは 0.11.1 です。発展途上です! • Actions未対応です!!
• 以前のFirefoxDriverは、古いFirefoxに対してはまだ使えます。 法人向けFirefox ESR 45との併用で 2017年6月まで問題なく使えると考えて良いでしょう。
めちゃめちゃ変わっちゃったブラウザー
• SafariDriver (Safari) • Safari 10 から、Apple純正のSafariDriverが
ブラウザーと合わせて、OSに同梱されるようになりました。 オープンソース版のSafariDriverは使えなくなりました。
• だいたいSafariのアップデートと同時に更新されます。 • WebKit Blog の記事に、どのようなオプションやcapabilitiesが使
えるか書かれています。ヘルプよりちょっと詳しいぞ!! https://webkit.org/blog/6900/webdriver-support-in-safari-10/
• Safari Technology Preview には 開発中の SafariDriver が同梱されています。
プロジェクトが独立したブラウザー
• HtmlUnitDriver • Selenium 3 になったタイミングで、
Selenium本体からプロジェクトが切り離されました。 • https://github.com/SeleniumHQ/htmlunit-driver • 地道に更新され続けています。
最近微妙なやつ
• OperaDriver (Opera) • Operaは2013年からChromiumベースだからなあ… • 独立して管理されていますが、2015年で更新が止まっています。 • https://github.com/operasoftware/operaprestodriver • https://github.com/operasoftware/operachromiumdriver
• なお、Operaは2016年6月に一部買収されました。 この先生きのこるには _,,...,_
/_~,,..::: ~"'ヽ (,,"ヾ ii /^',)
:i i" | (,,゚Д゚)
|(ノ |) | | ヽ _ノ
U"U
最近微妙なやつ
• GhostDriver (PhantomJS) • 本家の detro/ghostdriver が死にそうです!!!
• この先生きのこるために、メンテナー募集中です。 • 代替に jBrowserDriver の利用を README.md で薦めるありさま…
• codeborne/ghostdriver がいいかも? • 最新版は 2016年9月22日リリースで停滞
• jesg/ghostdriver が最近活発。
_,,...,_ /_~,,..::: ~"'ヽ (,,"ヾ ii /^',)
:i i" | (,,゚Д゚)
|(ノ |) | | ヽ _ノ
U"U
最近と、これからの Selenium IDE
• Selenium IDE も、Selenium Builder も、 このままだと来年 2017年中に死にます。 • どちらもXUL/XPCOMベースなのですが、
2017年11月28日リリース予定のFirefox 57から 拡張機能でXUL/XPCOMがサポートされなくなるからです。
• Google Chrome や Microsoft Edge で採用されている WebExtensions ベースの拡張機能に 生まれ変わらなければなりませんが、移行は現状ではぜんぜん…
• どうしても延命したい人は Firefox ESR 52 を使い続けましょう。 2018年中頃までサポートされる予定です。
最近と、これからの Selenium IDE
• この先生きのこるには
• そもそも、 Selenium IDE / Selenium Builder のようなツールを 作る責務は、今後 ブラウザー開発プロジェクトのものに なっていく可能性もあるのではないでしょうか? • Firebugの大部分の機能が
Firefox標準の開発ツールになったように…
_,,...,_ /_~,,..::: ~"'ヽ (,,"ヾ ii /^',)
:i i" | (,,゚Д゚)
|(ノ |) | | ヽ _ノ
U"U
Appium 1.5 → 1.6 の変更点はとても多い
• Appium 1.6 • Appium 1.6.0 2016年10月11日リリース • Appium 1.6.1 2016年11月25日リリース • JS Foundation 傘下になってから最初のリリースです。
• Appium 1.6.2 2016年12月2日リリース • Appium 1.6.3 2016年12月13日リリース
• iOS/Androidについては 太田さんから詳しくご解説いただけるはず!!! • 戸田からはニッチなところをご紹介します。
なんだこれ どうせ使ってねえんだろ? 無視しちまえよ。 ____ / \ ちゃんと調べて勉強会で説明するんだお! |\/ ノ' ヾ \/| |/ ≪①> <①≫ \| ⊂ニニ⊃ | (__人__) | ____ノ L \、 ` ^^^^ ´ ,/ /\ / ⌒ / ヾ `ー‐" " ⌒ヽ /(○) (○) \ / ヾ ," \ / (__人__) \ | r r\,"⌒ヽ | |::::::| | :::::: ::;;:: ,,, ;;::: ,,::;;;;::::'' \ l;;;;;;l /l!| ! ::::;; ::::::: ;; :::: ::::::::;;;::::::::;; γ⌒⌒/ `ー' \⌒⌒ヽ ::::::::;;::::::;; :::::::;;;::::: (_ノノ/ ヽ !l ヽしし_) :::::::::::;;:: :::::::: ( 丶- 、 しE | ::::::;;;::::::::;;;; `ー、_ノ ∑ l、E ノ ( バン! バン! :::::: ::::::: ::::::;; ::::::: ::::: :::::;; ⌒ ::::::::: :::::;;; ::::::::::::::: :::; ::;;::./ ̄ ̄ ̄\ :::;;;;::::::::;;;;;;;:::'' / ─ ─ \ ハァハァ… / <○> <○> \ | (__人__) | \ `⌒J´ / / \
Windows desktop applications
• 実は2016年3月頃から Microsoft が Windows Application Driver を作ってて、 Appium は 1.6.0 から対応しました。 • https://github.com/Microsoft/WinAppDriver
• 最新バージョンは 0.7-beta です。発展途上です!!! • UWPアプリとWin32アプリに対応しています。 • Windows 10 用かな? • Windows Vista, 7, 8 でWindowsアプリに対応したい場合は
Appium ではなく Winium を使いましょう。 • https://github.com/2gis/Winium
You.i TV
• カナダ・オタワが拠点の企業「You.i TV」が作っている 映像アプリ開発に特化した商用SDKです。 • http://www.youi.tv/
• クロスプラットフォーム、レスポンシブUIに対応。 • iOS, tvOS, Android, Android TV,
PlayStation, Xbox, Amazon Fire TV • PhotoshopとAfterEffectsで作りこんだUIを 開発用リソースファイルとして出力して C++などのコードとバインドできるらしいです。 • 開発者向けの紹介資料までなら、無料登録で読めます。
You.i TV
• とにかく情報が少ないのでいろいろと個人的な妄想 • 映像アプリにおけるUnityみたいなものかな? • SDKにはE2Eテストの標準サポートも組み込むべき、
という風潮の萌芽なのかな? • UnityにUnityDriverみたいなものがあったら良いのに、
と思った人は少なくないはずです。 • 新しい潮流で、非常に興味深いですね。
• Appiumプロジェクトとしてどんな期待があるのかな? • リリースノートを読む限り、歓迎ムードがかなり強いのですが
なぜ歓迎しているのか、動機や理由がいまいちつかめていません。
なんとなくまとめ
• WebDriver標準化への流れが徐々に進んでいます。 WebDriverを当たり前に使っている人には 気づきにくい変化かもしれません。 • WebDriver対応が 各ソフトウェアベンダーの責務であるという雰囲気が いよいよ現実的なものになってきた気がします。