Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Selenium Conference 2015 参加報告

4,903 views

Published on

2015/10/20のSelenium勉強会@サイボウズの発表資料その1です。
http://connpass.com/event/20779/

Published in: Technology
  • Be the first to comment

Selenium Conference 2015 参加報告

  1. 1. Selenium Conference 参加報告 サイボウズ株式会社 宮田 淳平 2015/10/20 Selenium勉強会@サイボウズ
  2. 2. 自己紹介 ▌宮田 淳平 ▌サイボウズ入社7年目 生産性向上チーム所属 ▌趣味:ランニング 一昨日、四万十川ウルトラマラソン100km完走! ▌11/17に『アジャイルアカデミー Selenium Boot Camp』のチューター やります テスト自動化入門者向けの有料講座 2
  3. 3. 今日の内容 ▌Selenium Conferenceとは? ▌会場の雰囲気 ▌おもしろかったセッション紹介 3
  4. 4. Selenium Conferenceとは? ▌Seleniumについてのカンファレンス ▌今年で5回目で、9/8-9/10にポートランドで開催 開催地は毎年変わっており、過去にサンフランシスコ、ロンドン、ボストン、バンガ ロールで開催されている ▌参加チケットは早く買うほど安い $249→$349→$449 4
  5. 5. スケジュール ▌一日目がワークショップ型のセッション中心、二日目・三日目が通常の セッション 自分は二日目からの参加 ▌通常のセッションはすべてビデオが公開されている http://confengine.com/selenium-conf-2015/schedule スライドも9割方公開されている 5
  6. 6. Portland ▌街が綺麗で住みやすそう 6
  7. 7. 会場の様子 7
  8. 8. 8
  9. 9. 9
  10. 10. 全体の雰囲気 ▌会場のほとんどの人は業務でSeleniumを使っている ▌いわゆる記録再生形式のツール(IDE/Builder)の話はほぼない 一つだけあるけど辛い内容 Why Building Record/Playback Tools Is So Hard ▌中級者以上向け セッションはBeginner, Intermediate, Advancedと分類されているけど、Beginner と書かれているものでもある程度Seleniumの知識がないと厳しそう ▌質疑応答は活発で、食事中でも参加者同士の議論が行われてたり 10
  11. 11. おもしろかったセッション 11
  12. 12. Selenium: State of the Union ▌WebDriverの生みの親Simon Stewart(Facebook)による Keynote ▌前半はWebのトレンドの移り変わり ▌後半はモバイルの自動テストの話 AndroidはselendroidとかappiumでOK iOSはフレームワークが変わったり速度が遅かったりで辛い ▌Facebookはこの問題を解決するためにWebDriverAgentと FBSimulatorControlをオープンソースで公開 12
  13. 13. WebDriverAgent ▌iOS用のWebDriverサーバー 実機じゃなくてシミュレータ用 ▌アプリを横断してテスト可能 ▌速い appiumだとjavascriptを経由して操作するため遅い WebDriverAgentはprivateなAPIを直接呼び出すため速い ▌安定するという噂 13
  14. 14. FBSimulatorControl ▌iOSシミュレータを管理するためのもの ▌シミュレータを複数起動できる 実機は遅延がある これまでシミュレータは一つしか起動できなかった ▌WebDriverAgentもFBSimulatorControlもappiumに取り込まれ そう 14
  15. 15. Selenide: Concise UI Tests in Java ▌SelenideというJavaで書かれたオープンソースのSeleniumクライアント ライブラリの紹介 通常のSeleniumクライアントのラッパー Selenium界のjQueryみたいなもの ▌通常のSeleniumクライアントは冗長で不安定 ▌Selenideは簡潔で安定 テストを書く上ではまりがちな問題を気にしなくてよくなる ▌ビジネスロジックに集中できるようにするのが目的 15
  16. 16. Selenide: concise API @Test public void userCanLogin() { open("http://localhost:8080/login"); $(By.name("user.name")).setValue("john"); $("#submit").click(); $(".menu").shouldHave(text("Hello, John!")); } https://docs.google.com/presentation/d/1ZksjuL2vPN_pkhMuon0HH4gm7KNmjU50pByRRGzgVko/edit#slide=id.ga5fa11dc4_033
  17. 17. 1. smart waiting $(".loading_progress").shouldBe(visible); $("#menu").shouldHave(text("Hello, John!")); $(By.name("gender")).shouldNotBe(selected); $(By.name("gender")).should(disappear); forget the ajax! https://docs.google.com/presentation/d/1ZksjuL2vPN_pkhMuon0HH4gm7KNmjU50pByRRGzgVko/edit#slide=id.ga5fa11dc4_033
  18. 18. 3. Collections $$(“#employees tbody tr”).shouldHave( texts( “John Belushi”, “Bruce Willis”, “John Malkovich” ) ); https://docs.google.com/presentation/d/1ZksjuL2vPN_pkhMuon0HH4gm7KNmjU50pByRRGzgVko/edit#slide=id.ga5fa11dc4_033
  19. 19. 4. Automated screenshots https://docs.google.com/presentation/d/1ZksjuL2vPN_pkhMuon0HH4gm7KNmjU50pByRRGzgVko/edit#slide=id.ga5fa11dc4_033
  20. 20. 9. sizzle selectors https://docs.google.com/presentation/d/1ZksjuL2vPN_pkhMuon0HH4gm7KNmjU50pByRRGzgVko/edit#slide=id.ga5fa11dc4_033
  21. 21. 10. Selenide profiler Report for userCanReplyToIncomingMessages(ui.BankMessagesSpec) +----------------------+---------------------------------------------+--------+----------+ |Element |Subject |Status |ms. | +----------------------+---------------------------------------------+--------+----------+ |open |http://localhost:2070/ |PASSED |4669 | |open |http://localhost:2070/fakeLogin?username=bob |PASSED |1324 | |By.linkText: Quicky |click() |PASSED |793 | |#btn-message-reply |click() |PASSED |1002 | |By.name: message.text |should be(focused) |PASSED |57 | |By.name: message.text |should have(text 'long thread') |PASSED |47 | |By.name: message.text |set value(Hello world!) |PASSED |69 | |#send-button |click() |PASSED |1051 | |.alert-success |should be(visible) |PASSED |71 | +--------------------+-----------------------------------------------+--------+----------+ https://docs.google.com/presentation/d/1ZksjuL2vPN_pkhMuon0HH4gm7KNmjU50pByRRGzgVko/edit#slide=id.ga5fa11dc4_033
  22. 22. 11. fast set value Problem: WebElement.sendKeys() is slow Solution: mvn -Dselenide.fastSetValue=true https://docs.google.com/presentation/d/1ZksjuL2vPN_pkhMuon0HH4gm7KNmjU50pByRRGzgVko/edit#slide=id.ga5fa11dc4_033
  23. 23. Selenide: Concise UI Tests in Java ▌部分的に導入できるので、Seleniumテストを一から始めるチームはもち ろん、既にSelenium書いてるチームでも使えそう Java限定だけど・・・ ▌誰か実際の運用体験談お願いします! 23
  24. 24. Distributed Automation Using Selenium Grid / AWS / Autoscaling ▌ExpediaがautoscaleするSelenium GridをAWS上で構築している 話 ▌構成と費用感、ハマリポイントなど 並列数を増やしていくとjenkins側や帯域などが問題になってくる ChromeよりFirefoxの方が消費するリソースが少ないらしい 24
  25. 25. GRID TOPOLOGy - 1 HUB • parallel execution for small projects • 1 executor - 1 hub - 11 nodes • eg: c3.8xlarge can execute 250*+ tests in parallel • Test run would finish in ~5mins c3.8xlarge c3.8xlarge c3.xlarge 25 …. https://www.slideshare.net/slideshow/embed_code/key/H7QmI1pAf2r9u7
  26. 26. GRID TOPOLOGy - 2 HUB • Suitable for medium size projects (500+ tests) • More tests by adding one more executor (2 executors 1 hub and 22 node),this could double your parallel execution cases c3.8xlarge c3.8xlarge c3.xlarge 26 …. …. https://www.slideshare.net/slideshow/embed_code/key/H7QmI1pAf2r9u7
  27. 27. GRID TOPOLOGy - 4 HUB HUB • Use two hubs to double the tests (1000+) • But speed is same as topology 2 (~5mins) • Double the cost c3.8xlarge c3.xlarge 27 https://www.slideshare.net/slideshow/embed_code/key/H7QmI1pAf2r9u7
  28. 28. Distributed Automation Using Selenium Grid / AWS / Autoscaling ▌ちょうどSelenium Gridをクラウドに移動しようとしてたのでとても参考に なった ▌うらやましい環境ではあるけど、正直がんばりすぎ&コストかけすぎ感 jenkinsとhubは常時立ち上げてないといけないので、どう考えても月に数千ドル 〜数万ドルのコスト ▌UIテストの数は極力減らしましょうみたいな話もあってやはりどこも苦労し てる印象
  29. 29. まとめ ▌取り上げたセッション以外にも性能テストやビジュアルテストの話など話題 が豊富でした ▌個人的には自分の業務に関係あるトピックが多く、会場の盛り上がりなど からもとてもよい刺激を受けることができました ▌資料は後からでも手に入るので、Seleniumコミュニティの人とコミュニ ケーションできるのが最大のメリット 自分は議論するのは厳しかったので、語学力向上したらまた行ってみたいです 29
  30. 30. WE ARE HIRING! 30 Seleniumを探求したい方はぜひサイボウズへ! http://cybozu.co.jp/company/job/recruitment/

×