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.

SeleniumWebDriverを使ってつまらない作業を駆逐してやる!!

5,671 views

Published on

SeleniumWebDriverを使って、スクリーンショットを撮る作業を自動化するプレゼンです。

Published in: Engineering
  • Sex in your area is here: ❤❤❤ http://bit.ly/2F4cEJi ❤❤❤
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Dating direct: ♥♥♥ http://bit.ly/2F4cEJi ♥♥♥
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

SeleniumWebDriverを使ってつまらない作業を駆逐してやる!!

  1. 1. Selenium Web Driverを 使ってつまらない作業を 駆逐してやる!! @joe_re
  2. 2. ある日のできごと
  3. 3. ぼく「一通り作業終わりましたー。」 PM「お疲れ!じゃあテストしなきゃなー。」 ぼく「テスト?ユニットテストなら書いてますが、 受け入れテストまでこちらでやるということですか?」 PM「いや、受け入れテストは別部隊でやるよ。 ただ今回は政治的な都合上、 全パターンテストをやっているっていう エビデンスが欲しいんだよね。」 ぼく「エビデンス?(嫌な予感。。)」 ※ 多少脚色してますが概ね実際の出来事です。
  4. 4. PM「全パターンの スクショ撮りをしよう。」 ぼく「ファッ!?」
  5. 5. What is スクショ撮り スクリーンショットを撮る作業のことです。 一切の知的労働性を排除された超絶力仕事なので、 エンジニアの体調を著しく損なってしまうことがあります。 スクショ撮り(英: take a Scsho!) とは 完成したシステムの画面上の表示のエビデンスを残すために行われる、画面のスクリーンショットを撮る 作業のこと。 理不尽な政治的事情によるエビデンスで要求されることが多い。 その性質上、作業によって得られる成果物も確実性があるとは言えず、達成感も得られない。 エンジニアからは嫌われる傾向にある。 一切の知的な喜びを得られないこの作業は、エンジニアを疲弊させ、鬱病、適応障害など様々な心の病を 引き起こしてしまう。 出典 wikipedia(ウソ)
  6. 6. 駆逐してやる。 この世から1匹残らず!! (ていうか仕様変わったらどうするの?1から撮り直すの? 勘弁してぇぇぇぇぇぇぇぇぇぇぇぇ!!!)
  7. 7. そこで救世主、 Selenium Web Driver!!
  8. 8. What is Selenium Web Driver Webブラウザのテストを自動化するための
 テストフレームワークです。 WebブラウザのAPIを利用して、
 クリックやスクロール・文字入力などを始めとして、 あらかじめ定義されたテストを自動的に実行します。 Java、Ruby、Python、Nodejsなど、
 様々な言語で記述することができます。
  9. 9. これを使って、 スクショ撮りを自動化します。
  10. 10. デモ アプリケーションの機能 • サインアップ、ログイン、ログアウトできる • 自分の自己紹介を登録し、閲覧できる https://github.com/joe-re/selenium-snapshot-sample
  11. 11. 自動化したい要件 1. 4人のテストユーザでログインする。 2. ログイン後にプロフィールページを表示する。 3. 表示される画面のスクリーンショットを撮る。 4. 撮ったスクリーンショットのファイル名は、
 ユーザ名.pngにする。
  12. 12. 解説 require ‘selenium-web-driver’ driver = Selenium::WebDriver.for :firefox FileUtils.mkdir_p 'screenshots' [ { email: 'yui_hirasawa@test.co.jp', password: ‘yuihirasawa’ }, # ..中略.. # ].each do |user| # ログイン driver.navigate.to 'http://localhost:3000' driver.find_element(:id, 'user_email').send_keys(user[:email]) driver.find_element(:id, 'user_password').send_keys(user[:password]) driver.find_element(:name, 'commit').submit sleep(1) # デモで見やすいように1秒待機 # profileを表示する driver.navigate.to 'http://localhost:3000/profile' sleep(1) # デモで見やすいように1秒待機 # screenshotを撮る username = driver.find_element(:id, 'username').text driver.save_screenshot("screenshots/#{username}.png") # ログアウト driver.find_element(:id, 'logout').click end driver.quit # 終了
  13. 13. 1人忘れてた!!
  14. 14. なんてクソなプロダクトだ! 画像は一番上にしてくれ! 仕様変更
  15. 15. でも、大丈夫! そうSelenium Web Driver ならね!!
  16. 16. Enjoy the life of engineers! Thanks!

×