Soumettre la recherche
Mettre en ligne
【Camphor ×サイボウズ】selenium勉強会
•
4 j'aime
•
12,990 vues
Yuki Okada
Suivre
2014/12/14に開催した、京都IT系学生コミュニティCAMPHOR-とサイボウズの合同勉強会の資料です。 https://atnd.org/events/59820
Lire moins
Lire la suite
Logiciels
Signaler
Partager
Signaler
Partager
1 sur 51
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
SeleniumIDEとSelenium WebDriver × Node.js Seleniumで業務効率化する15分
SeleniumIDEとSelenium WebDriver × Node.js Seleniumで業務効率化する15分
松田 千尋
【B-1】kintoneでお手軽コールセンター!
【B-1】kintoneでお手軽コールセンター!
Sakae Saito
脱・独自改造! GebでWebDriverをもっとシンプルに
脱・独自改造! GebでWebDriverをもっとシンプルに
Hiroko Tamagawa
Spring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframework
Spring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframework
Toshiaki Maki
Mojoliciousでつくる! Webアプリ入門
Mojoliciousでつくる! Webアプリ入門
Yusuke Wada
今流行りのウェブアプリ開発環境Yeoman
今流行りのウェブアプリ開発環境Yeoman
tomo_masakura
Grails 3.0先取り!? Spring Boot入門ハンズオン #jggug_boot
Grails 3.0先取り!? Spring Boot入門ハンズオン #jggug_boot
Toshiaki Maki
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツール
dcubeio
Recommandé
SeleniumIDEとSelenium WebDriver × Node.js Seleniumで業務効率化する15分
SeleniumIDEとSelenium WebDriver × Node.js Seleniumで業務効率化する15分
松田 千尋
【B-1】kintoneでお手軽コールセンター!
【B-1】kintoneでお手軽コールセンター!
Sakae Saito
脱・独自改造! GebでWebDriverをもっとシンプルに
脱・独自改造! GebでWebDriverをもっとシンプルに
Hiroko Tamagawa
Spring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframework
Spring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframework
Toshiaki Maki
Mojoliciousでつくる! Webアプリ入門
Mojoliciousでつくる! Webアプリ入門
Yusuke Wada
今流行りのウェブアプリ開発環境Yeoman
今流行りのウェブアプリ開発環境Yeoman
tomo_masakura
Grails 3.0先取り!? Spring Boot入門ハンズオン #jggug_boot
Grails 3.0先取り!? Spring Boot入門ハンズオン #jggug_boot
Toshiaki Maki
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツール
dcubeio
HTML5 開発環境の紹介
HTML5 開発環境の紹介
tomo_masakura
Java web application testing
Java web application testing
Tokuhiro Matsuno
Webアプリのシナリオテスト自動化を運用に乗せるまでの10のステップ
Webアプリのシナリオテスト自動化を運用に乗せるまでの10のステップ
Naoki Iwami
JJUG CCC 2011 Fall / Web test automation with Geb and Spock
JJUG CCC 2011 Fall / Web test automation with Geb and Spock
Nobuhiro Sue
What makes Geb groovy?
What makes Geb groovy?
Youtarou TAKAHASHI
laravel x モバイルアプリ
laravel x モバイルアプリ
Masaki Oshikawa
HTML5 アプリ開発
HTML5 アプリ開発
tomo_masakura
Dot netconf2017 - VS拡張
Dot netconf2017 - VS拡張
Tatsuya Ishikawa
今、最もイケてるPHPフレームワークLaravel4
今、最もイケてるPHPフレームワークLaravel4
アシアル株式会社
Gradle布教活動
Gradle布教活動
Nemoto Yusuke
Spring Bootで変わる Javaアプリ開発! #jsug
Spring Bootで変わる Javaアプリ開発! #jsug
Toshiaki Maki
Awsで実現するseleniumテスト高速術
Awsで実現するseleniumテスト高速術
finoue
Laravel5を使って開発してみた
Laravel5を使って開発してみた
Takeo Noda
Gradle handson
Gradle handson
Nemoto Yusuke
[出張!雲勉 in Tokyo] Swagger で簡単APIドキュメント作成
[出張!雲勉 in Tokyo] Swagger で簡単APIドキュメント作成
Tomoki Oyamatsu
Service Workerとの戦い ~ 実装編 ~ #scripty03
Service Workerとの戦い ~ 実装編 ~ #scripty03
Yahoo!デベロッパーネットワーク
メタな感じのプログラミング(プロ生 + わんくま 071118)
メタな感じのプログラミング(プロ生 + わんくま 071118)
Tatsuya Ishikawa
Gradleどうでしょう
Gradleどうでしょう
Takuma Watabiki
Jsug2015 summer spring適用におけるバッドノウハウとベタープラクティス
Jsug2015 summer spring適用におけるバッドノウハウとベタープラクティス
Yoichi KIKUCHI
Service workerとwebプッシュ通知
Service workerとwebプッシュ通知
zaru sakuraba
なんたって”DevQA” アジャイル開発とQAの合体が改善を生む - 永田 敦 氏 #postudy
なんたって”DevQA” アジャイル開発とQAの合体が改善を生む - 永田 敦 氏 #postudy
POStudy
エンジニアが働きたい場所で働けるために、チームに必要なこと
エンジニアが働きたい場所で働けるために、チームに必要なこと
Yuki Okada
Contenu connexe
Tendances
HTML5 開発環境の紹介
HTML5 開発環境の紹介
tomo_masakura
Java web application testing
Java web application testing
Tokuhiro Matsuno
Webアプリのシナリオテスト自動化を運用に乗せるまでの10のステップ
Webアプリのシナリオテスト自動化を運用に乗せるまでの10のステップ
Naoki Iwami
JJUG CCC 2011 Fall / Web test automation with Geb and Spock
JJUG CCC 2011 Fall / Web test automation with Geb and Spock
Nobuhiro Sue
What makes Geb groovy?
What makes Geb groovy?
Youtarou TAKAHASHI
laravel x モバイルアプリ
laravel x モバイルアプリ
Masaki Oshikawa
HTML5 アプリ開発
HTML5 アプリ開発
tomo_masakura
Dot netconf2017 - VS拡張
Dot netconf2017 - VS拡張
Tatsuya Ishikawa
今、最もイケてるPHPフレームワークLaravel4
今、最もイケてるPHPフレームワークLaravel4
アシアル株式会社
Gradle布教活動
Gradle布教活動
Nemoto Yusuke
Spring Bootで変わる Javaアプリ開発! #jsug
Spring Bootで変わる Javaアプリ開発! #jsug
Toshiaki Maki
Awsで実現するseleniumテスト高速術
Awsで実現するseleniumテスト高速術
finoue
Laravel5を使って開発してみた
Laravel5を使って開発してみた
Takeo Noda
Gradle handson
Gradle handson
Nemoto Yusuke
[出張!雲勉 in Tokyo] Swagger で簡単APIドキュメント作成
[出張!雲勉 in Tokyo] Swagger で簡単APIドキュメント作成
Tomoki Oyamatsu
Service Workerとの戦い ~ 実装編 ~ #scripty03
Service Workerとの戦い ~ 実装編 ~ #scripty03
Yahoo!デベロッパーネットワーク
メタな感じのプログラミング(プロ生 + わんくま 071118)
メタな感じのプログラミング(プロ生 + わんくま 071118)
Tatsuya Ishikawa
Gradleどうでしょう
Gradleどうでしょう
Takuma Watabiki
Jsug2015 summer spring適用におけるバッドノウハウとベタープラクティス
Jsug2015 summer spring適用におけるバッドノウハウとベタープラクティス
Yoichi KIKUCHI
Service workerとwebプッシュ通知
Service workerとwebプッシュ通知
zaru sakuraba
Tendances
(20)
HTML5 開発環境の紹介
HTML5 開発環境の紹介
Java web application testing
Java web application testing
Webアプリのシナリオテスト自動化を運用に乗せるまでの10のステップ
Webアプリのシナリオテスト自動化を運用に乗せるまでの10のステップ
JJUG CCC 2011 Fall / Web test automation with Geb and Spock
JJUG CCC 2011 Fall / Web test automation with Geb and Spock
What makes Geb groovy?
What makes Geb groovy?
laravel x モバイルアプリ
laravel x モバイルアプリ
HTML5 アプリ開発
HTML5 アプリ開発
Dot netconf2017 - VS拡張
Dot netconf2017 - VS拡張
今、最もイケてるPHPフレームワークLaravel4
今、最もイケてるPHPフレームワークLaravel4
Gradle布教活動
Gradle布教活動
Spring Bootで変わる Javaアプリ開発! #jsug
Spring Bootで変わる Javaアプリ開発! #jsug
Awsで実現するseleniumテスト高速術
Awsで実現するseleniumテスト高速術
Laravel5を使って開発してみた
Laravel5を使って開発してみた
Gradle handson
Gradle handson
[出張!雲勉 in Tokyo] Swagger で簡単APIドキュメント作成
[出張!雲勉 in Tokyo] Swagger で簡単APIドキュメント作成
Service Workerとの戦い ~ 実装編 ~ #scripty03
Service Workerとの戦い ~ 実装編 ~ #scripty03
メタな感じのプログラミング(プロ生 + わんくま 071118)
メタな感じのプログラミング(プロ生 + わんくま 071118)
Gradleどうでしょう
Gradleどうでしょう
Jsug2015 summer spring適用におけるバッドノウハウとベタープラクティス
Jsug2015 summer spring適用におけるバッドノウハウとベタープラクティス
Service workerとwebプッシュ通知
Service workerとwebプッシュ通知
En vedette
なんたって”DevQA” アジャイル開発とQAの合体が改善を生む - 永田 敦 氏 #postudy
なんたって”DevQA” アジャイル開発とQAの合体が改善を生む - 永田 敦 氏 #postudy
POStudy
エンジニアが働きたい場所で働けるために、チームに必要なこと
エンジニアが働きたい場所で働けるために、チームに必要なこと
Yuki Okada
サイボウズがWebアプリ自動テスト に活用しているossツールの紹介
サイボウズがWebアプリ自動テスト に活用しているossツールの紹介
Yuki Okada
【STAC2017】テスト自動化システム 成長記
【STAC2017】テスト自動化システム 成長記
友隆 浅黄
UXを損ねる静的コンテンツ配信アンチパターン7選
UXを損ねる静的コンテンツ配信アンチパターン7選
Yuki Okada
kintoneの開発プロセスとプロジェクト管理ツール
kintoneの開発プロセスとプロジェクト管理ツール
Yuki Okada
自社サービスkintoneをふんだんに活用したサイボウズの開発フロー
自社サービスkintoneをふんだんに活用したサイボウズの開発フロー
Yuki Okada
kintoneの検索高速化への取り組み
kintoneの検索高速化への取り組み
Ryo Mitoma
Pythonでwebdriver
Pythonでwebdriver
株式会社 システムヨシイ
#nds47 WebのテストをPythonでやってエビデンス取得作業から開放?
#nds47 WebのテストをPythonでやってエビデンス取得作業から開放?
civicpg
ゲーム情報設計における「霧」との戦い
ゲーム情報設計における「霧」との戦い
裕哉 駒場
Selenium Conference 2015 参加報告
Selenium Conference 2015 参加報告
Jumpei Miyata
Chatbot for kintone Apps on Facebook Messenger
Chatbot for kintone Apps on Facebook Messenger
Phan Anh Nguyen
テンプレートエンジンにMixer2を使うとSeleniumでのテストもラクになるかもねという話
テンプレートエンジンにMixer2を使うとSeleniumでのテストもラクになるかもねという話
Y Watanabe
4時間で学ぶ、効率的な自動テストスクリプトのメンテナンス
4時間で学ぶ、効率的な自動テストスクリプトのメンテナンス
Nozomi Ito
『健全なフロントエンド開発をしよう 〜Railsに乗っかるという選択編〜』 アップ用
『健全なフロントエンド開発をしよう 〜Railsに乗っかるという選択編〜』 アップ用
kotaro_hirayama
WebSocketのキホン
WebSocketのキホン
You_Kinjoh
kintoneチームを支えるSeleniumテスト
kintoneチームを支えるSeleniumテスト
Jumpei Miyata
アジャイルメトリクス実践ガイド
アジャイルメトリクス実践ガイド
Hiroyuki Ito
Bootstrapにちょい足しアニメーション@春のJavascript祭り
Bootstrapにちょい足しアニメーション@春のJavascript祭り
Masayuki Abe
En vedette
(20)
なんたって”DevQA” アジャイル開発とQAの合体が改善を生む - 永田 敦 氏 #postudy
なんたって”DevQA” アジャイル開発とQAの合体が改善を生む - 永田 敦 氏 #postudy
エンジニアが働きたい場所で働けるために、チームに必要なこと
エンジニアが働きたい場所で働けるために、チームに必要なこと
サイボウズがWebアプリ自動テスト に活用しているossツールの紹介
サイボウズがWebアプリ自動テスト に活用しているossツールの紹介
【STAC2017】テスト自動化システム 成長記
【STAC2017】テスト自動化システム 成長記
UXを損ねる静的コンテンツ配信アンチパターン7選
UXを損ねる静的コンテンツ配信アンチパターン7選
kintoneの開発プロセスとプロジェクト管理ツール
kintoneの開発プロセスとプロジェクト管理ツール
自社サービスkintoneをふんだんに活用したサイボウズの開発フロー
自社サービスkintoneをふんだんに活用したサイボウズの開発フロー
kintoneの検索高速化への取り組み
kintoneの検索高速化への取り組み
Pythonでwebdriver
Pythonでwebdriver
#nds47 WebのテストをPythonでやってエビデンス取得作業から開放?
#nds47 WebのテストをPythonでやってエビデンス取得作業から開放?
ゲーム情報設計における「霧」との戦い
ゲーム情報設計における「霧」との戦い
Selenium Conference 2015 参加報告
Selenium Conference 2015 参加報告
Chatbot for kintone Apps on Facebook Messenger
Chatbot for kintone Apps on Facebook Messenger
テンプレートエンジンにMixer2を使うとSeleniumでのテストもラクになるかもねという話
テンプレートエンジンにMixer2を使うとSeleniumでのテストもラクになるかもねという話
4時間で学ぶ、効率的な自動テストスクリプトのメンテナンス
4時間で学ぶ、効率的な自動テストスクリプトのメンテナンス
『健全なフロントエンド開発をしよう 〜Railsに乗っかるという選択編〜』 アップ用
『健全なフロントエンド開発をしよう 〜Railsに乗っかるという選択編〜』 アップ用
WebSocketのキホン
WebSocketのキホン
kintoneチームを支えるSeleniumテスト
kintoneチームを支えるSeleniumテスト
アジャイルメトリクス実践ガイド
アジャイルメトリクス実践ガイド
Bootstrapにちょい足しアニメーション@春のJavascript祭り
Bootstrapにちょい足しアニメーション@春のJavascript祭り
Similaire à 【Camphor ×サイボウズ】selenium勉強会
Rubyで作るクローラー Ruby crawler
Rubyで作るクローラー Ruby crawler
Takuro Sasaki
JenkinsとSeleniumの活用事例
JenkinsとSeleniumの活用事例
Takeshi Kondo
Selenium WebDriver,Cypress,TestCafeの違いを調べてみました
Selenium WebDriver,Cypress,TestCafeの違いを調べてみました
MaiKaneko4
Device Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テスト
健一 辰濱
Infrastructure as code ~ ツールスタック / ヌーラボの事例 ~
Infrastructure as code ~ ツールスタック / ヌーラボの事例 ~
ikikko
Introduction to Favmemo for Immature Engineers
Introduction to Favmemo for Immature Engineers
Takeshi Arabiki
いるけどないからつくってみたよ高速モバイルプッシュ配信くん #cmdevio
いるけどないからつくってみたよ高速モバイルプッシュ配信くん #cmdevio
fd0
Firefoxosハンズオン
Firefoxosハンズオン
Kazutoshi Kashimoto
「Selenium実践入門」で学ぶテスト自動化の世界
「Selenium実践入門」で学ぶテスト自動化の世界
Nozomi Ito
EC-CUBE + PHPUnit で 実践テスト駆動開発
EC-CUBE + PHPUnit で 実践テスト駆動開発
Kentaro Ohkouchi
20090704rubyist九州
20090704rubyist九州
koki_h
Practical migration from JSP to Thymeleaf
Practical migration from JSP to Thymeleaf
Toshiki Iga
Haikara
Haikara
jewel12
Xamarin 概要 @ 2014/10/18 わんくま同盟 東京勉強会 #92
Xamarin 概要 @ 2014/10/18 わんくま同盟 東京勉強会 #92
Yoshito Tabuchi
Scala 初めての人が Heroku で Web アプリを公開するまで
Scala 初めての人が Heroku で Web アプリを公開するまで
Hideaki Miyake
サイドプロジェクトで使う Azure DevOps
サイドプロジェクトで使う Azure DevOps
Shuhei Eda
ChefユーザのためのAnsible入門
ChefユーザのためのAnsible入門
Mahito Ogura
PHPでWebSocketを実装してみてわかったこと
PHPでWebSocketを実装してみてわかったこと
ksimoji
Rubyで始めるWebスクレイピング
Rubyで始めるWebスクレイピング
Takuro Sasaki
Spring Boot ユーザの方のための Quarkus 入門
Spring Boot ユーザの方のための Quarkus 入門
tsukasamannen
Similaire à 【Camphor ×サイボウズ】selenium勉強会
(20)
Rubyで作るクローラー Ruby crawler
Rubyで作るクローラー Ruby crawler
JenkinsとSeleniumの活用事例
JenkinsとSeleniumの活用事例
Selenium WebDriver,Cypress,TestCafeの違いを調べてみました
Selenium WebDriver,Cypress,TestCafeの違いを調べてみました
Device Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テスト
Infrastructure as code ~ ツールスタック / ヌーラボの事例 ~
Infrastructure as code ~ ツールスタック / ヌーラボの事例 ~
Introduction to Favmemo for Immature Engineers
Introduction to Favmemo for Immature Engineers
いるけどないからつくってみたよ高速モバイルプッシュ配信くん #cmdevio
いるけどないからつくってみたよ高速モバイルプッシュ配信くん #cmdevio
Firefoxosハンズオン
Firefoxosハンズオン
「Selenium実践入門」で学ぶテスト自動化の世界
「Selenium実践入門」で学ぶテスト自動化の世界
EC-CUBE + PHPUnit で 実践テスト駆動開発
EC-CUBE + PHPUnit で 実践テスト駆動開発
20090704rubyist九州
20090704rubyist九州
Practical migration from JSP to Thymeleaf
Practical migration from JSP to Thymeleaf
Haikara
Haikara
Xamarin 概要 @ 2014/10/18 わんくま同盟 東京勉強会 #92
Xamarin 概要 @ 2014/10/18 わんくま同盟 東京勉強会 #92
Scala 初めての人が Heroku で Web アプリを公開するまで
Scala 初めての人が Heroku で Web アプリを公開するまで
サイドプロジェクトで使う Azure DevOps
サイドプロジェクトで使う Azure DevOps
ChefユーザのためのAnsible入門
ChefユーザのためのAnsible入門
PHPでWebSocketを実装してみてわかったこと
PHPでWebSocketを実装してみてわかったこと
Rubyで始めるWebスクレイピング
Rubyで始めるWebスクレイピング
Spring Boot ユーザの方のための Quarkus 入門
Spring Boot ユーザの方のための Quarkus 入門
Plus de Yuki Okada
エンジニア組織づくり5年。見えてきた関西Web界隈のええとこ、あかんとこ - Developers Summit 2019 KANSAI
エンジニア組織づくり5年。見えてきた関西Web界隈のええとこ、あかんとこ - Developers Summit 2019 KANSAI
Yuki Okada
拠点をまたいだリモートスクラム・リモートモブプロ実践事例 - Developers Summit 2018 FUKUOKA
拠点をまたいだリモートスクラム・リモートモブプロ実践事例 - Developers Summit 2018 FUKUOKA
Yuki Okada
せっかくエンジニアやってるのになんで副業やらないんですか? - エンジニア副業Night #1
せっかくエンジニアやってるのになんで副業やらないんですか? - エンジニア副業Night #1
Yuki Okada
サイボウズのオープンソースへの取り組み - OSC 2018 Osaka
サイボウズのオープンソースへの取り組み - OSC 2018 Osaka
Yuki Okada
みんなが働きたい場所で働ける「リモート開発チーム」を目指してやっていること - Cybozu Days 2017 大阪
みんなが働きたい場所で働ける「リモート開発チーム」を目指してやっていること - Cybozu Days 2017 大阪
Yuki Okada
最高のリモート開発を実現するために取り組んでいること - Cybozu Tech Conference 2017
最高のリモート開発を実現するために取り組んでいること - Cybozu Tech Conference 2017
Yuki Okada
Web開発の技術選び、 好き嫌いでやってませんか 〜技術選びで注目すべきポイントとは〜
Web開発の技術選び、 好き嫌いでやってませんか 〜技術選びで注目すべきポイントとは〜
Yuki Okada
Plus de Yuki Okada
(7)
エンジニア組織づくり5年。見えてきた関西Web界隈のええとこ、あかんとこ - Developers Summit 2019 KANSAI
エンジニア組織づくり5年。見えてきた関西Web界隈のええとこ、あかんとこ - Developers Summit 2019 KANSAI
拠点をまたいだリモートスクラム・リモートモブプロ実践事例 - Developers Summit 2018 FUKUOKA
拠点をまたいだリモートスクラム・リモートモブプロ実践事例 - Developers Summit 2018 FUKUOKA
せっかくエンジニアやってるのになんで副業やらないんですか? - エンジニア副業Night #1
せっかくエンジニアやってるのになんで副業やらないんですか? - エンジニア副業Night #1
サイボウズのオープンソースへの取り組み - OSC 2018 Osaka
サイボウズのオープンソースへの取り組み - OSC 2018 Osaka
みんなが働きたい場所で働ける「リモート開発チーム」を目指してやっていること - Cybozu Days 2017 大阪
みんなが働きたい場所で働ける「リモート開発チーム」を目指してやっていること - Cybozu Days 2017 大阪
最高のリモート開発を実現するために取り組んでいること - Cybozu Tech Conference 2017
最高のリモート開発を実現するために取り組んでいること - Cybozu Tech Conference 2017
Web開発の技術選び、 好き嫌いでやってませんか 〜技術選びで注目すべきポイントとは〜
Web開発の技術選び、 好き嫌いでやってませんか 〜技術選びで注目すべきポイントとは〜
【Camphor ×サイボウズ】selenium勉強会
1.
【CAMPHOR- × サイボウズ】 Selenium
勉強会 2014/12/14 CAMPHOR- HOUSE ハッシュタグ #cybozu
2.
自己紹介 • 岡田勇樹 @y_okady •
サイボウズ新卒8年目 31歳 • 神戸大学大学院 情報知能工学専攻 • kintone開発チーム リーダー • 大阪開発部@グランフロント 副部長
3.
Agenda • サイボウズとkintoneのご紹介 • Seleniumの解説 •
Seleniumハンズオン • 自動テストでSeleniumを使うために必要なこと • 最後に
4.
サイボウズとkintone
5.
サイボウズ • 「グループウェア」のメーカー • 東京、松山、大阪、上海、ベトナムで開発 •
バリバリ開発してる会社 • どんなものを作るか考えるのも実際に作るのも全部内製 • インフラからWebアプリケーションまで全部内製 • 特徴的な人事制度 • 会社辞めてもいつでも戻ってきていいよ • 台風の日はできるだけ在宅勤務してね • 国内シェアNo.1、kintoneで世界一を目指してます
6.
kintone
7.
業務アプリ?Webデータベー ス?
8.
こんな時どうする • チームでアイデアを共有する「アイデアボッ クス」を作りたい時、あなたならどうします か?
9.
アイデアボックスを作ろう • やっぱWebアプリでしょ • サーバー用意しなきゃ •
言語とかフレームワークとかどうしよっかな • データベースの設計しなきゃ • 何日あれば作れるかな…
10.
kintoneの場合
11.
そろそろSeleniumの話が聞きたいなー
12.
実はもう始まってます
13.
実はさっきの動画 • kintoneをSeleniumで操作したんです! • テキストボックスへの入力も •
ラジオボタンの選択も • リンクのクリックも • ドラッグ&ドロップも • Seleniumってなんかすごそう!!
14.
Selenium
15.
Seleniumとは • Webブラウザの操作を自動化するツール • Firefox拡張のSelenium
IDEが一世を風靡 • プログラミング不要 • UIを変更するとテストがすぐ落ちる • Firefoxでしか動かない • 近年Selenium WebDriverが頭角を現す
16.
Seleniumでできること • URLを指定してWebページを開く • DOMの要素を取得する •
要素に対して何かする • クリックする • 文字を取り出す • 文字を入力する • ドラッグ&ドロップする
17.
Selenium WebDriver JavaScript ブラウザ/OS API 昔のSelenium Selenium WebDriver
18.
言語バインディング • 公式 • 非公式
19.
ハンズオン
20.
ハンズオンの流れ 1.インストール 2.動作確認 3.CAMPHOR-のWebサイトを操作 4.Google検索ページを操作
21.
Seleniumのインストール • Python • Ruby •
JavaScript (Node.js) • Java $ pip install selenium $ gem install selenium-webdriver $ npm install -g selenium-webdriver $ curl -O http://selenium-release.storage.googleapis.com/2.44/selenium- java-2.44.0.zip && unzip selenium-java-2.44.0.zip http://www.seleniumhq.org/
22.
Driverのダウンロード • Chrome (Mac) •
Chrome (Windows) • Firefoxは不要 $ curl -O http://chromedriver.storage.googleapis.com/2.12/ chromedriver_mac32.zip && unzip chromedriver_mac32.zip $ curl -O http://chromedriver.storage.googleapis.com/2.12/ chromedriver_win32.zip && unzip chromedriver_win32.zip
23.
動作確認 • サイボウズのWebサイトを開いてみよう • 処理の流れ •
Seleniumをimport/require • Firefox/Chrome Driverインスタンスを生成 • getメソッドにURLを指定してWebサイトを開く • quitメソッドで終了 http://cybozu.co.jp
24.
動作確認 • 本家ドキュメント • 処理の流れ •
Seleniumをimport/require • Firefox/Chrome Driverインスタンスを生成 • getメソッドにURL (http://cybozu.co.jp) を指定 • quitメソッドで終了 [Documentation] > [Introducing the Selenium-WebDriver API by Example] http://www.seleniumhq.org/ Programming Language Preference を選択
25.
サンプルコード (Python) from selenium
import webdriver! ! driver = webdriver.Firefox()! #driver = webdriver.Chrome('./chromedriver')! ! driver.get("http://cybozu.co.jp")! driver.quit() $ python 1.py
26.
サンプルコード (Ruby) require 'selenium-webdriver'! ! driver
= Selenium::WebDriver.for :firefox! #driver = Selenium::WebDriver.for :chrome! ! driver.get “http://cybozu.co.jp”! driver.quit $ ruby 1.rb
27.
サンプルコード (JavaScript) var firefox
= require('selenium-webdriver/firefox');! //var chrome = require('selenium-webdriver/chrome');! ! var driver = new firefox.Driver();! //var driver = new chrome.Driver();! ! driver.get('http://cybozu.co.jp');! driver.quit(); $ node 1.js
28.
サンプルコード (Java) import org.openqa.selenium.WebDriver;! import
org.openqa.selenium.chrome.ChromeDriver;! import org.openqa.selenium.firefox.FirefoxDriver;! ! public class SeleniumIntro {! public static void main(String[] args) {! WebDriver driver = new FirefoxDriver();! //WebDriver driver = new ChromeDriver();! ! driver.get("http://cybozu.co.jp");! driver.quit();! }! } $ javac -cp selenium-2.44.0/selenium-java-2.44.0.jar Selenium1.java! $ java -cp .:selenium-2.44.0/selenium-java-2.44.0.jar:selenium-2.44.0/libs/* Selenium1
29.
CAMPHOR-のWebサイトを操作 • トップページ (https://camph.net)
で 「CAMPHOR-について詳しく見る」をクリッ クすると、About (https://camph.net/about/) に遷移することを確認する
30.
CAMPHOR-のWebサイトを操作 • WebDriver APIドキュメント •
Python: http://selenium-python.readthedocs.org/en/latest/api.html • Ruby: http://www.rubydoc.info/gems/selenium-webdriver/0.0.28/Selenium/ WebDriver • JavaScript: http://selenium.googlecode.com/git/docs/api/javascript/ module_selenium-webdriver.html • Java: https://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/ selenium/WebDriver.html • 処理の流れ • driver.findElementとBy.linkTextでリンク要素を取得 • リンク要素をクリック
31.
サンプルコード (Python) # -*-
coding: utf-8 -*-! from selenium import webdriver! from selenium.webdriver.common.by import By! ! driver = webdriver.Firefox()! #driver = webdriver.Chrome('./chromedriver')! ! driver.get("https://camph.net")! ! link = driver.find_element(By.LINK_TEXT, u"CAMPHOR-について詳しく見る");! link.click()! ! print driver.current_url == "https://camph.net/about/"! ! driver.quit()
32.
サンプルコード (Ruby) require 'selenium-webdriver'! ! driver
= Selenium::WebDriver.for :firefox! #driver = Selenium::WebDriver.for :chrome! ! driver.get "https://camph.net"! ! link = driver.find_element(:link_text, "CAMPHOR-について詳しく見る")! link.click! ! print driver.current_url == "https://camph.net/about/"! ! driver.quit
33.
サンプルコード (JavaScript) var By
= require('selenium-webdriver').By;! var firefox = require('selenium-webdriver/firefox');! //var chrome = require('selenium-webdriver/chrome');! ! var driver = new firefox.Driver();! //var driver = new chrome.Driver();! ! driver.get('https://camph.net');! ! var link = driver.findElement(By.linkText('CAMPHOR-について詳しく見る'));! link.click();! ! driver.getCurrentUrl().then(function(url) {! console.log(url == 'https://camph.net/about/');! });! ! driver.quit();
34.
サンプルコード (Java) import org.openqa.selenium.By;! import
org.openqa.selenium.WebDriver;! import org.openqa.selenium.WebElement;! import org.openqa.selenium.chrome.ChromeDriver;! import org.openqa.selenium.firefox.FirefoxDriver;! ! public class Selenium2 {! public static void main(String[] args) {! WebDriver driver = new FirefoxDriver();! //WebDriver driver = new ChromeDriver();! ! driver.get("https://camph.net");! ! WebElement link = driver.findElement(By.linkText("CAMPHOR-について詳しく見る"));! link.click();! ! System.out.println(driver.getCurrentUrl().equals("https://camph.net/about/"));! ! driver.quit();! }! }
35.
Google検索ページを操作 • 「サイボウズ」を検索した時に表示される、関連キーワード 一覧を出力する • 処理の流れ •
検索ボックスに「サイボウズ」を入力 • フォームをsubmit • 検索結果画面が表示されるまで待つ • 関連キーワードの要素からリンク一覧を取得
36.
サンプルコード (Python) # -*-
coding: utf-8 -*-! from selenium import webdriver! from selenium.webdriver.common.by import By! from selenium.webdriver.support.ui import WebDriverWait! from selenium.webdriver.support import expected_conditions! ! driver = webdriver.Firefox()! #driver = webdriver.Chrome('./chromedriver')! ! driver.get("http://www.google.com")! ! input = driver.find_element(By.NAME, "q")! input.send_keys(u"サイボウズ")! input.submit()! ! WebDriverWait(driver, 10).until(expected_conditions.title_is(u”サイボウズ - Google 検索"))! ! extra = driver.find_element(By.ID, "extrares")! links = extra.find_elements(By.TAG_NAME, "a")! for link in links:! print link.text! ! driver.quit()
37.
サンプルコード (Ruby) require 'selenium-webdriver'! ! driver
= Selenium::WebDriver.for :firefox! #driver = Selenium::WebDriver.for :chrome! ! driver.get "http://www.google.com"! ! input = driver.find_element(:name, "q")! input.send_keys("サイボウズ")! input.submit()! ! wait = Selenium::WebDriver::Wait.new(:timeout => 10)! wait.until {! driver.title == “サイボウズ - Google 検索“! }! extra = driver.find_element(:id, "extrares")! links = extra.find_elements(:tag_name, "a")! links.each {|link|! puts link.text! }! ! driver.quit
38.
サンプルコード (JavaScript) var By
= require('selenium-webdriver').By;! var firefox = require('selenium-webdriver/firefox');! //var chrome = require('selenium-webdriver/chrome');! ! var driver = new firefox.Driver();! //var driver = new chrome.Driver();! ! driver.get('http://www.google.com');! var input = driver.findElement(By.name('q'));! input.sendKeys('サイボウズ');! input.submit();! ! driver.wait(function() {! return driver.getTitle().then(function(title) {! return title == ‘サイボウズ - Google 検索‘;! });! }, 10000);! var extra = driver.findElement(By.id('extrares'));! extra.findElements(By.tagName('a')).then(function(links) {! for (var i = 0; i < links.length; i++) {! links[i].getText().then(function(text) {! console.log(text);! });! }! });! ! driver.quit();
39.
サンプルコード (Java) import java.util.List;! import
org.openqa.selenium.By;! import org.openqa.selenium.WebDriver;! import org.openqa.selenium.WebElement;! import org.openqa.selenium.chrome.ChromeDriver;! import org.openqa.selenium.firefox.FirefoxDriver;! import org.openqa.selenium.support.ui.ExpectedCondition;! import org.openqa.selenium.support.ui.WebDriverWait;! ! public class Selenium3 {! public static void main(String[] args) {! WebDriver driver = new FirefoxDriver();! //WebDriver driver = new ChromeDriver();! ! driver.get("http://google.com");! ! WebElement input = driver.findElement(By.name("q"));! input.sendKeys("サイボウズ");! input.submit();! ! (new WebDriverWait(driver, 10)).until(new ExpectedCondition<Boolean>() {! public Boolean apply(WebDriver d) {! return d.getTitle().equals("サイボウズ - Google 検索");! }! });! ! WebElement extra = driver.findElement(By.id("extrares"));! List<WebElement> links = extra.findElements(By.tagName("a"));! for (WebElement link : links) {! System.out.println(link.getText());! }! ! driver.quit();! }! }
40.
Seleniumで自動テスト
41.
テストフレームワーク • xUnitなど • 自動テストをやるなら必須
42.
PageObjectデザインパターン • テスト対象となる画面やコンポーネントを PageObjectと呼ばれるクラスで共通化 • テストメソッド内にByを書かなくて済む •
UI変更に強くなる • Seleniumテストをいっぱい書くなら必須
43.
RemoteWebDriver • テストを実行するマシンとブラウザを操作す るマシンを分ける • 複数のOSやブラウザでテストをするなら必須
44.
Selenium Grid • 複数のOSやブラウザでのテストを並列化する •
Seleniumテストをめっちゃいっぱい書くなら 必須
45.
Jenkins • 継続的インテグレーションツール • Gitにpushされた時に自動的にSeleniumテス トを実行したりできる •
大人数で開発したり、より高い品質を求める なら必須
46.
kintoneとSelenium • テストケースは1,000個以上 • 並列数は36 •
実行時間は約30分 • kintoneはSeleniumに支えられてます!
47.
最後に
48.
まだまだ伝えたいことがある! • PageObjectパターンでUI変更に強いテストを書こう • RemoteWebDriverを使っていろんなブラウザでテス トしよう •
Selenium Gridを使って大規模運用しよう • Jenkinsで自動テストを自動実行しよう
49.
次回Selenium勉強会 • 今のところ未定! • でもやりたい •
発表者募集中です • もちろん参加者募集中です • こんなことやりたい!というのがあればアン ケートに記入お願いします
50.
本当に最後に • サイボウズで一緒にSeleniumテストを書いてくれる仲間を募集中です! • テスト自動化しておふくろを楽にしたい方 •
テスト自動化して彼女を作りたい方 • テスト自動化して人生を豊かにしたい方 • 勉強会の出席を自動化したい方 • テスト自動化してモテたい方 • テスト自動化してみんなを幸せにしたい方 • 学校のテストでいい点取りたい方
51.
ありがとうございました! 懇親会もよろしくお願いします!!
Télécharger maintenant