Submit Search
Upload
OSC京都 2015 LT 「テスト自動化の闇と向き合う」
•
2 likes
•
1,667 views
O
Osamu Shimoda
Follow
OSC京都2015のライトニングトーク資料です。
Read less
Read more
Technology
Report
Share
Report
Share
1 of 43
Download now
Download to read offline
Recommended
第2回HTML5企業Webシステム開発セミナー hifive紹介資料
第2回HTML5企業Webシステム開発セミナー hifive紹介資料
Osamu Shimoda
HTML5時代のUIテスト自動化
HTML5時代のUIテスト自動化
Osamu Shimoda
私がSeleniumを使ってスクリーンショットを撮るまでに出会った闇の全て
私がSeleniumを使ってスクリーンショットを撮るまでに出会った闇の全て
Osamu Shimoda
20151201 私がSeleniumを使ってスクリーンショットを撮るまでに出会った闇の全て
20151201 私がSeleniumを使ってスクリーンショットを撮るまでに出会った闇の全て
Osamu Shimoda
ゲームだけじゃないHTML5
ゲームだけじゃないHTML5
Osamu Shimoda
第3回企業Webシステム開発セミナー「業務システムにHTML5を上手に取り入れるためには?」
第3回企業Webシステム開発セミナー「業務システムにHTML5を上手に取り入れるためには?」
Osamu Shimoda
JISAAwards2013講演会資料(hifive)
JISAAwards2013講演会資料(hifive)
Osamu Shimoda
20170704 Pitaliumの新機能
20170704 Pitaliumの新機能
Osamu Shimoda
Recommended
第2回HTML5企業Webシステム開発セミナー hifive紹介資料
第2回HTML5企業Webシステム開発セミナー hifive紹介資料
Osamu Shimoda
HTML5時代のUIテスト自動化
HTML5時代のUIテスト自動化
Osamu Shimoda
私がSeleniumを使ってスクリーンショットを撮るまでに出会った闇の全て
私がSeleniumを使ってスクリーンショットを撮るまでに出会った闇の全て
Osamu Shimoda
20151201 私がSeleniumを使ってスクリーンショットを撮るまでに出会った闇の全て
20151201 私がSeleniumを使ってスクリーンショットを撮るまでに出会った闇の全て
Osamu Shimoda
ゲームだけじゃないHTML5
ゲームだけじゃないHTML5
Osamu Shimoda
第3回企業Webシステム開発セミナー「業務システムにHTML5を上手に取り入れるためには?」
第3回企業Webシステム開発セミナー「業務システムにHTML5を上手に取り入れるためには?」
Osamu Shimoda
JISAAwards2013講演会資料(hifive)
JISAAwards2013講演会資料(hifive)
Osamu Shimoda
20170704 Pitaliumの新機能
20170704 Pitaliumの新機能
Osamu Shimoda
SeleniumConf16 UK参加報告
SeleniumConf16 UK参加報告
Osamu Shimoda
5分でわかるVISUAL TESTING FOR HTML5
5分でわかるVISUAL TESTING FOR HTML5
Osamu Shimoda
面白法人カヤックのウェブフロントエンド術
面白法人カヤックのウェブフロントエンド術
minoru nakanou
20170710 hifive-test-meetup
20170710 hifive-test-meetup
Naoya Kojima
hifiveで実現するエンタープライズHTML5システム開発
hifiveで実現するエンタープライズHTML5システム開発
Osamu Shimoda
Selenium WebDriver + python で E2Eテスト自動化
Selenium WebDriver + python で E2Eテスト自動化
JustSystems Corporation
事例からわかる!テスト自動化導入パターン
事例からわかる!テスト自動化導入パターン
友隆 浅黄
APIテスト自動化とテストピラミッド
APIテスト自動化とテストピラミッド
友隆 浅黄
Unity(再)入門
Unity(再)入門
Takayoshi Tanaka
STAC2015 講演3 広告システム刷新よもやま話〜テストが当たり前となるまでにやったこと #stac2015
STAC2015 講演3 広告システム刷新よもやま話〜テストが当たり前となるまでにやったこと #stac2015
Yahoo!デベロッパーネットワーク
ぼく(たち)のかんがえた最新のJS開発環境 #scripty04
ぼく(たち)のかんがえた最新のJS開発環境 #scripty04
Yahoo!デベロッパーネットワーク
STFとAppiumをもちいたAndroidアプリの自動テスト
STFとAppiumをもちいたAndroidアプリの自動テスト
Toshiyuki Hirata
SeleniumE2Eテストフレームワークを使用したテスト自動化事例 #Seleniumjp
SeleniumE2Eテストフレームワークを使用したテスト自動化事例 #Seleniumjp
Yahoo!デベロッパーネットワーク
アジャイル事例紹介
アジャイル事例紹介
hiko99
#STAC2014 システムテスト自動化ハンズオン
#STAC2014 システムテスト自動化ハンズオン
kyon mm
エンタープライズへのアジャイル開発の導入事例
エンタープライズへのアジャイル開発の導入事例
Shozaburo Yoshihara
継続的E2Eテスト
継続的E2Eテスト
友隆 浅黄
ULSアジャイル推進室 基幹系システムの再構築におけるDDD事例 20160312
ULSアジャイル推進室 基幹系システムの再構築におけるDDD事例 20160312
Yuki Tagami
Ulsアジャイル推進室 エンタープライズアジャイルがやってくる! 20160312
Ulsアジャイル推進室 エンタープライズアジャイルがやってくる! 20160312
Shozaburo Yoshihara
いまさらアジャイル巡業 In Tokyo アジャイルモデリング
いまさらアジャイル巡業 In Tokyo アジャイルモデリング
Yuki Tagami
その Web サイト、その Web アプリを最新の IE11 に対応しよう
その Web サイト、その Web アプリを最新の IE11 に対応しよう
Osamu Monoe
Automation with SoftLayer and Zabbix
Automation with SoftLayer and Zabbix
softlayerjp
More Related Content
What's hot
SeleniumConf16 UK参加報告
SeleniumConf16 UK参加報告
Osamu Shimoda
5分でわかるVISUAL TESTING FOR HTML5
5分でわかるVISUAL TESTING FOR HTML5
Osamu Shimoda
面白法人カヤックのウェブフロントエンド術
面白法人カヤックのウェブフロントエンド術
minoru nakanou
20170710 hifive-test-meetup
20170710 hifive-test-meetup
Naoya Kojima
hifiveで実現するエンタープライズHTML5システム開発
hifiveで実現するエンタープライズHTML5システム開発
Osamu Shimoda
Selenium WebDriver + python で E2Eテスト自動化
Selenium WebDriver + python で E2Eテスト自動化
JustSystems Corporation
事例からわかる!テスト自動化導入パターン
事例からわかる!テスト自動化導入パターン
友隆 浅黄
APIテスト自動化とテストピラミッド
APIテスト自動化とテストピラミッド
友隆 浅黄
Unity(再)入門
Unity(再)入門
Takayoshi Tanaka
STAC2015 講演3 広告システム刷新よもやま話〜テストが当たり前となるまでにやったこと #stac2015
STAC2015 講演3 広告システム刷新よもやま話〜テストが当たり前となるまでにやったこと #stac2015
Yahoo!デベロッパーネットワーク
ぼく(たち)のかんがえた最新のJS開発環境 #scripty04
ぼく(たち)のかんがえた最新のJS開発環境 #scripty04
Yahoo!デベロッパーネットワーク
STFとAppiumをもちいたAndroidアプリの自動テスト
STFとAppiumをもちいたAndroidアプリの自動テスト
Toshiyuki Hirata
SeleniumE2Eテストフレームワークを使用したテスト自動化事例 #Seleniumjp
SeleniumE2Eテストフレームワークを使用したテスト自動化事例 #Seleniumjp
Yahoo!デベロッパーネットワーク
アジャイル事例紹介
アジャイル事例紹介
hiko99
#STAC2014 システムテスト自動化ハンズオン
#STAC2014 システムテスト自動化ハンズオン
kyon mm
エンタープライズへのアジャイル開発の導入事例
エンタープライズへのアジャイル開発の導入事例
Shozaburo Yoshihara
継続的E2Eテスト
継続的E2Eテスト
友隆 浅黄
ULSアジャイル推進室 基幹系システムの再構築におけるDDD事例 20160312
ULSアジャイル推進室 基幹系システムの再構築におけるDDD事例 20160312
Yuki Tagami
Ulsアジャイル推進室 エンタープライズアジャイルがやってくる! 20160312
Ulsアジャイル推進室 エンタープライズアジャイルがやってくる! 20160312
Shozaburo Yoshihara
いまさらアジャイル巡業 In Tokyo アジャイルモデリング
いまさらアジャイル巡業 In Tokyo アジャイルモデリング
Yuki Tagami
What's hot
(20)
SeleniumConf16 UK参加報告
SeleniumConf16 UK参加報告
5分でわかるVISUAL TESTING FOR HTML5
5分でわかるVISUAL TESTING FOR HTML5
面白法人カヤックのウェブフロントエンド術
面白法人カヤックのウェブフロントエンド術
20170710 hifive-test-meetup
20170710 hifive-test-meetup
hifiveで実現するエンタープライズHTML5システム開発
hifiveで実現するエンタープライズHTML5システム開発
Selenium WebDriver + python で E2Eテスト自動化
Selenium WebDriver + python で E2Eテスト自動化
事例からわかる!テスト自動化導入パターン
事例からわかる!テスト自動化導入パターン
APIテスト自動化とテストピラミッド
APIテスト自動化とテストピラミッド
Unity(再)入門
Unity(再)入門
STAC2015 講演3 広告システム刷新よもやま話〜テストが当たり前となるまでにやったこと #stac2015
STAC2015 講演3 広告システム刷新よもやま話〜テストが当たり前となるまでにやったこと #stac2015
ぼく(たち)のかんがえた最新のJS開発環境 #scripty04
ぼく(たち)のかんがえた最新のJS開発環境 #scripty04
STFとAppiumをもちいたAndroidアプリの自動テスト
STFとAppiumをもちいたAndroidアプリの自動テスト
SeleniumE2Eテストフレームワークを使用したテスト自動化事例 #Seleniumjp
SeleniumE2Eテストフレームワークを使用したテスト自動化事例 #Seleniumjp
アジャイル事例紹介
アジャイル事例紹介
#STAC2014 システムテスト自動化ハンズオン
#STAC2014 システムテスト自動化ハンズオン
エンタープライズへのアジャイル開発の導入事例
エンタープライズへのアジャイル開発の導入事例
継続的E2Eテスト
継続的E2Eテスト
ULSアジャイル推進室 基幹系システムの再構築におけるDDD事例 20160312
ULSアジャイル推進室 基幹系システムの再構築におけるDDD事例 20160312
Ulsアジャイル推進室 エンタープライズアジャイルがやってくる! 20160312
Ulsアジャイル推進室 エンタープライズアジャイルがやってくる! 20160312
いまさらアジャイル巡業 In Tokyo アジャイルモデリング
いまさらアジャイル巡業 In Tokyo アジャイルモデリング
Similar to OSC京都 2015 LT 「テスト自動化の闇と向き合う」
その Web サイト、その Web アプリを最新の IE11 に対応しよう
その Web サイト、その Web アプリを最新の IE11 に対応しよう
Osamu Monoe
Automation with SoftLayer and Zabbix
Automation with SoftLayer and Zabbix
softlayerjp
[デブサミ2012]趣味と実益の脆弱性発見
[デブサミ2012]趣味と実益の脆弱性発見
Yosuke HASEGAWA
Android4.2徹底解剖!
Android4.2徹底解剖!
leverages_event
Windows Phone 7はじめました
Windows Phone 7はじめました
Akira Hatsune
おすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップ
Koichiro Sumi
脆弱性事例に学ぶセキュアコーディング「SSL/TLS証明書検証」編 (JavaDayTokyo2015)
脆弱性事例に学ぶセキュアコーディング「SSL/TLS証明書検証」編 (JavaDayTokyo2015)
JPCERT Coordination Center
Androidリリース作業の効率化(2)
Androidリリース作業の効率化(2)
Kenichi Kambara
Ec cube開発合宿 プラグインセミナー
Ec cube開発合宿 プラグインセミナー
Ayumu Kawaguchi
【STAC2017】テスト自動化システム 成長記
【STAC2017】テスト自動化システム 成長記
友隆 浅黄
goo基盤を支えるOpenstack
goo基盤を支えるOpenstack
Tomoya Hashimoto
あなたの安心を高速に守る Container-based CI
あなたの安心を高速に守る Container-based CI
Wataru MIYAGUNI
fastlane x iOSアプリのCI
fastlane x iOSアプリのCI
Toshiyuki Hirata
AITCシニア技術者勉強会 「今さら聞けないWebサイト開発」 vol1
AITCシニア技術者勉強会 「今さら聞けないWebサイト開発」 vol1
近藤 繁延
Internet Explorer 11 概要
Internet Explorer 11 概要
Yoshihisa Ozaki
5分でわかる!ownCloudアドオンの作り方
5分でわかる!ownCloudアドオンの作り方
Yuki Takahashi
Windows 8 Developers カンファレンス
Windows 8 Developers カンファレンス
Kaoru NAKAMURA
121117 metro styleapp_templateapp
121117 metro styleapp_templateapp
Takayoshi Tanaka
ここが変わる!Unity 5のスマホ開発 ~アセットバンドル、ビルド、プラグイン~
ここが変わる!Unity 5のスマホ開発 ~アセットバンドル、ビルド、プラグイン~
MakotoItoh
経営を支えるIT部門実現の記録2005
経営を支えるIT部門実現の記録2005
Makoto Shimizu
Similar to OSC京都 2015 LT 「テスト自動化の闇と向き合う」
(20)
その Web サイト、その Web アプリを最新の IE11 に対応しよう
その Web サイト、その Web アプリを最新の IE11 に対応しよう
Automation with SoftLayer and Zabbix
Automation with SoftLayer and Zabbix
[デブサミ2012]趣味と実益の脆弱性発見
[デブサミ2012]趣味と実益の脆弱性発見
Android4.2徹底解剖!
Android4.2徹底解剖!
Windows Phone 7はじめました
Windows Phone 7はじめました
おすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップ
脆弱性事例に学ぶセキュアコーディング「SSL/TLS証明書検証」編 (JavaDayTokyo2015)
脆弱性事例に学ぶセキュアコーディング「SSL/TLS証明書検証」編 (JavaDayTokyo2015)
Androidリリース作業の効率化(2)
Androidリリース作業の効率化(2)
Ec cube開発合宿 プラグインセミナー
Ec cube開発合宿 プラグインセミナー
【STAC2017】テスト自動化システム 成長記
【STAC2017】テスト自動化システム 成長記
goo基盤を支えるOpenstack
goo基盤を支えるOpenstack
あなたの安心を高速に守る Container-based CI
あなたの安心を高速に守る Container-based CI
fastlane x iOSアプリのCI
fastlane x iOSアプリのCI
AITCシニア技術者勉強会 「今さら聞けないWebサイト開発」 vol1
AITCシニア技術者勉強会 「今さら聞けないWebサイト開発」 vol1
Internet Explorer 11 概要
Internet Explorer 11 概要
5分でわかる!ownCloudアドオンの作り方
5分でわかる!ownCloudアドオンの作り方
Windows 8 Developers カンファレンス
Windows 8 Developers カンファレンス
121117 metro styleapp_templateapp
121117 metro styleapp_templateapp
ここが変わる!Unity 5のスマホ開発 ~アセットバンドル、ビルド、プラグイン~
ここが変わる!Unity 5のスマホ開発 ~アセットバンドル、ビルド、プラグイン~
経営を支えるIT部門実現の記録2005
経営を支えるIT部門実現の記録2005
Recently uploaded
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
Recently uploaded
(9)
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
OSC京都 2015 LT 「テスト自動化の闇と向き合う」
1.
テスト自動化の闇と向き合う 新日鉄住金ソリューションズ 石川 真也 (Selenium歴 9ヶ月) Copyright
© 2015 NS Solutions Corporation, All rights reserved. 1
2.
ブラウザテスト Copyright © 2015
NS Solutions Corporation, All rights reserved. 2
3.
Copyright © 2015
NS Solutions Corporation, All rights reserved. 3 Internet Explorer 7 Internet Explorer 8 Internet Explorer 9 Internet Explorer 10 Internet Explorer 11 Microsoft Edge Firefox Google Chrome Safari Safari(iOS) Google Chrome(Android) ・アプリにアクセス ・ログイン ・カートに商品を追加 ・配送先を選択 ・支払い方法を選択 ・注文の確認 ・購入完了 ・アプリにアクセス ・ログイン ・カートに商品を追加 ・配送先を選択 ・支払い方法を選択 ・注文の確認 ・購入完了 ・アプリにアクセス ・ログイン ・カートに商品を追加 ・配送先を選択 ・支払い方法を選択 ・注文の確認 ・購入完了 ・アプリにアクセス ・ログイン ・カートに商品を追加 ・配送先を選択 ・支払い方法を選択 ・注文の確認 ・購入完了 ・アプリにアクセス ・ログイン ・カートに商品を追加 ・配送先を選択 ・支払い方法を選択 ・注文の確認 ・購入完了 ・アプリにアクセス ・ログイン ・カートに商品を追加 ・配送先を選択 ・支払い方法を選択 ・注文の確認 ・購入完了 ・アプリにアクセス ・ログイン ・カートに商品を追加 ・配送先を選択 ・支払い方法を選択 ・注文の確認 ・購入完了 ・アプリにアクセス ・ログイン ・カートに商品を追加 ・配送先を選択 ・支払い方法を選択 ・注文の確認 ・購入完了 ・アプリにアクセス ・ログイン ・カートに商品を追加 ・配送先を選択 ・支払い方法を選択 ・注文の確認 ・購入完了 自動化したい
4.
テスト自動化 Copyright © 2015
NS Solutions Corporation, All rights reserved. 4
5.
Copyright © 2015
NS Solutions Corporation, All rights reserved. 5 Selenium
6.
Selenium-特徴 OSS(Apache2.0) 様々なブラウザに対応
豊富な言語バインディング Java, C#, Python, Ruby, JavaScript etc. 豊富な支援ツール Selenium grid:並列実行 Selenium IDE:画面操作の記録 Appium:iOS, Androidのテスト Microsoft Edgeにも! Copyright © 2015 NS Solutions Corporation, All rights reserved. 6 →間口の広さ
7.
Selenium-コード例 public class Example
{ public static void main(String[] args) { WebDriver driver = new HtmlUnitDriver(); driver.get("http://www.google.com"); WebElement element = driver.findElement(By.name("q")); element.sendKeys("Cheese!"); element.submit(); System.out.println("Page title is: " + driver.getTitle()); driver.quit(); } } フォーム操作 ページリクエスト 値の取得 Copyright © 2015 NS Solutions Corporation, All rights reserved. 7
8.
テスト自動化の闇 Copyright © 2015
NS Solutions Corporation, All rights reserved. 8
9.
の闇スクリプト保守 Copyright © 2015
NS Solutions Corporation, All rights reserved. 9
10.
Selenium IDEを使えば ブラウザ操作を記録できて便利! Copyright ©
2015 NS Solutions Corporation, All rights reserved. 10
11.
どんどんテストスクリプトを 作ろう! Copyright © 2015
NS Solutions Corporation, All rights reserved. 11
12.
driver.get(baseUrl + "/myVideoRental/FrontController"); driver.findElement(By.name("shop _id")).clear(); driver.findElement(By.name("shop _id")).sendKeys("01"); driver.findElement(By.id("Display MenuLogic")).click(); assertEquals("貸出・返却メ ニュー画面", driver.getTitle()); driver.get(baseUrl
+ "/myVideoRental/FrontController"); driver.findElement(By.name("shop _id")).clear(); driver.findElement(By.name("shop _id")).sendKeys("01"); driver.findElement(By.id("Display MenuLogic")).click(); assertEquals("貸出・返却メ ニュー画面", driver.getTitle()); driver.get(baseUrl + "/myVideoRental/FrontController"); driver.findElement(By.name("shop _id")).clear(); driver.findElement(By.name("shop _id")).sendKeys("01"); driver.findElement(By.id("Display MenuLogic")).click(); assertEquals("貸出・返却メ ニュー画面", driver.getTitle()); driver.get(baseUrl + "/myVideoRental/FrontController"); driver.findElement(By.name("shop _id")).clear(); driver.findElement(By.name("shop _id")).sendKeys("01"); driver.findElement(By.id("Display MenuLogic")).click(); assertEquals("貸出・返却メ ニュー画面", driver.getTitle()); driver.get(baseUrl + "/myVideoRental/FrontController"); driver.findElement(By.name("shop _id")).clear(); driver.findElement(By.name("shop _id")).sendKeys("01"); driver.findElement(By.id("Display MenuLogic")).click(); assertEquals("貸出・返却メ ニュー画面", driver.getTitle()); driver.get(baseUrl + "/myVideoRental/Fron driver.findElement(By _id")).clear(); driver.findElement(By _id")).sendKeys("01 driver.findElement(By MenuLogic")).click( assertEquals(" ニュー画面", driver.ge Copyright © 2015 NS Solutions Corporation, All rights reserved. 12
13.
「ここのフォームの配置 変えといたから」 Copyright © 2015
NS Solutions Corporation, All rights reserved. 13
14.
えっ driver.get(baseUrl + "/myVideoRental/FrontController"); driver.findElement(By.name("shop _id")).clear(); driver.findElement(By.name("shop _id")).sendKeys("01"); driver.findElement(By.id("Display MenuLogic")).click(); assertEquals("貸出・返却メ ニュー画面", driver.getTitle()); driver.get(baseUrl
+ "/myVideoRental/FrontController"); driver.findElement(By.name("shop _id")).clear(); driver.findElement(By.name("shop _id")).sendKeys("01"); driver.findElement(By.id("Display MenuLogic")).click(); assertEquals("貸出・返却メ ニュー画面", driver.getTitle()); driver.get(baseUrl + "/myVideoRental/FrontController"); driver.findElement(By.name("shop _id")).clear(); driver.findElement(By.name("shop _id")).sendKeys("01"); driver.findElement(By.id("Display MenuLogic")).click(); assertEquals("貸出・返却メ ニュー画面", driver.getTitle()); driver.get(baseUrl + "/myVideoRental/FrontController"); driver.findElement(By.name("shop _id")).clear(); driver.findElement(By.name("shop _id")).sendKeys("01"); driver.findElement(By.id("Display MenuLogic")).click(); assertEquals("貸出・返却メ ニュー画面", driver.getTitle()); driver.get(baseUrl + "/myVideoRental/FrontController"); driver.findElement(By.name("shop _id")).clear(); driver.findElement(By.name("shop _id")).sendKeys("01"); driver.findElement(By.id("Display MenuLogic")).click(); assertEquals("貸出・返却メ ニュー画面", driver.getTitle()); driver.get(baseUrl + "/myVideoRental/Fron driver.findElement(By _id")).clear(); driver.findElement(By _id")).sendKeys("01 driver.findElement(By MenuLogic")).click( assertEquals(" ニュー画面", driver.ge Copyright © 2015 NS Solutions Corporation, All rights reserved. 14
15.
Selenium IDEが吐くコードの例 WebElement element
= driver.findElement( By.cssSelector("#content > table > tbody > tr:nth-child(4) > td:nth-child(2)“)); ↑Idがcontentの要素の中の ↑table要素の中の ↑tbody要素の中の ↑4番めのtr要素の中の ↑2番めのtd要素 Copyright © 2015 NS Solutions Corporation, All rights reserved. 15 DOM要素の配置が変わると台無し DOMツリー上の位置で操作する要素を特定
16.
えっこれ全部修正ですか? driver.get(baseUrl + "/myVideoRental/FrontController"); driver.findElement(By.name("shop _id")).clear(); driver.findElement(By.name("shop _id")).sendKeys("01"); driver.findElement(By.id("Display MenuLogic")).click(); assertEquals("貸出・返却メ ニュー画面", driver.getTitle()); driver.get(baseUrl
+ "/myVideoRental/FrontController"); driver.findElement(By.name("shop _id")).clear(); driver.findElement(By.name("shop _id")).sendKeys("01"); driver.findElement(By.id("Display MenuLogic")).click(); assertEquals("貸出・返却メ ニュー画面", driver.getTitle()); driver.get(baseUrl + "/myVideoRental/FrontController"); driver.findElement(By.name("shop _id")).clear(); driver.findElement(By.name("shop _id")).sendKeys("01"); driver.findElement(By.id("Display MenuLogic")).click(); assertEquals("貸出・返却メ ニュー画面", driver.getTitle()); driver.get(baseUrl + "/myVideoRental/FrontController"); driver.findElement(By.name("shop _id")).clear(); driver.findElement(By.name("shop _id")).sendKeys("01"); driver.findElement(By.id("Display MenuLogic")).click(); assertEquals("貸出・返却メ ニュー画面", driver.getTitle()); driver.get(baseUrl + "/myVideoRental/FrontController"); driver.findElement(By.name("shop _id")).clear(); driver.findElement(By.name("shop _id")).sendKeys("01"); driver.findElement(By.id("Display MenuLogic")).click(); assertEquals("貸出・返却メ ニュー画面", driver.getTitle()); driver.get(baseUrl + "/myVideoRental/Fron driver.findElement(By _id")).clear(); driver.findElement(By _id")).sendKeys("01 driver.findElement(By MenuLogic")).click( assertEquals(" ニュー画面", driver.ge Copyright © 2015 NS Solutions Corporation, All rights reserved. 16
17.
orz Copyright © 2015
NS Solutions Corporation, All rights reserved. 17
18.
スクリプト保守の闇と向き合う • テストを意識した設計 • 要素のクラス、id体系 •
テストスクリプトで工夫 • PageObjectパターン • ページごとの操作を抽象化 Copyright © 2015 NS Solutions Corporation, All rights reserved. 18
19.
driver.get(baseUrl + "/myVideoRental/Fron tController"); driver.findElement(By. name("shop_id")).cl ear(); Copyright ©
2015 NS Solutions Corporation, All rights reserved. 19 driver.get(baseUrl + "/myVideoRental/Fron tController"); driver.findElement(By. name("shop_id")).cl ear(); driver.get(baseUrl + "/myVideoRental/Fron tController"); driver.findElement(By. name("shop_id")).cl ear(); driver.get(baseUrl + "/myVideoRental/Fron tController"); driver.findElement(By. name("shop_id")).cl ear(); driver.get(baseUrl + "/myVideoRental/Fron tController"); driver.findElement(By. name("shop_id")).cl ear(); driver.get(baseUrl + "/myVideoRental/Fron tController"); driver.findElement(By. name("shop_id")).cl ear(); LoginPage .class void login(user, passwd) void logout() boolean isLoggedIn() PageObjectパターン
20.
の闇「たまに失敗」 Copyright © 2015
NS Solutions Corporation, All rights reserved. 20
21.
スクリプトも完成したし、 今やこのテストは完全に 自動化された! Copyright © 2015
NS Solutions Corporation, All rights reserved. 21
22.
ほらね、ちゃんと動いてる! driver.get(baseUrl + "/myVideoRental/FrontController"); driver.findElement(By.name("shop _id")).clear(); driver.findElement(By.name("shop _id")).sendKeys("01"); driver.findElement(By.id("Display MenuLogic")).click(); assertEquals("貸出・返却メ ニュー画面", driver.getTitle()); Copyright
© 2015 NS Solutions Corporation, All rights reserved. 22
23.
あれ、このテスト… たまに失敗してる…? driver.get(baseUrl + "/myVideoRental/FrontController"); driver.findElement(By.name("shop _id")).clear(); driver.findElement(By.name("shop _id")).sendKeys("01"); driver.findElement(By.id("Display MenuLogic")).click(); assertEquals("貸出・返却メ ニュー画面",
driver.getTitle()); Copyright © 2015 NS Solutions Corporation, All rights reserved. 23
24.
Copyright © 2015
NS Solutions Corporation, All rights reserved. 24
25.
たまに失敗するのはなぜ? • クリックしようとした要素が不可視状態だった • ネットワークが遅くてタイムアウト •
ブラウザのキャッシュがのこっていた • DBの状態がかわっていた • 信仰心がたりない • etc. etc. etc. Copyright © 2015 NS Solutions Corporation, All rights reserved. 25
26.
「このテストが失敗するのは よくあることだから大丈夫」 Copyright © 2015
NS Solutions Corporation, All rights reserved. 26 driver.get(baseUrl + "/myVideoRental/FrontCon troller"); driver.findElement(By.na me("shop_id")).clear(); driver.findElement(By.na me("shop_id")).sendKe ys("01"); (大丈夫じゃない)
27.
orz Copyright © 2015
NS Solutions Corporation, All rights reserved. 27
28.
たまに失敗の闇と向き合う • 同じ条件ならいつでも失敗 or
いつでも成功 するテストがよいテスト! • 事前条件をそろえる • AP, DB, ブラウザ状態の初期化 • 適切にwaitする • PageObjectパターンとの組み合わせも◎ Copyright © 2015 NS Solutions Corporation, All rights reserved. 28
29.
の闇ブラウザ依存 Copyright © 2015
NS Solutions Corporation, All rights reserved. 29
30.
ページのレイアウト崩れが無いか 確認したい… Copyright © 2015
NS Solutions Corporation, All rights reserved. 30
31.
スクリーンショットを撮ろう! Copyright © 2015
NS Solutions Corporation, All rights reserved. 31
32.
File screenshotFile =
((Screenshot)driver).getScreenshotAs(file); Copyright © 2015 NS Solutions Corporation, All rights reserved. 32
33.
可視範囲のみ いろんなバー映り込む Copyright © 2015
NS Solutions Corporation, All rights reserved. 33 Internet Explorer Google Chrome Safari(iOS)
34.
TakesScreenshot interface For WebDriver
extending TakesScreenshot, this makes a best effort depending on the browser to return the following in order of preference: • Entire page • Current window • Visible portion of the current frame • The screenshot of the entire display containing the browser http://selenium.googlecode.com/git/docs/api/java/org/openqa/selenium/TakesScreenshot.html Copyright © 2015 NS Solutions Corporation, All rights reserved. 34
35.
TakesScreenshot interface(意訳) 実装するときは下記の順でどれか返してくれればいいよ。 ブラウザによってベストエフォートで実装してね。 • ページ全体 •
現在のウインドウ • 現在のフレームの可視範囲 • ブラウザも含むディスプレイ全体 http://selenium.googlecode.com/git/docs/api/java/org/openqa/selenium/TakesScreenshot.html Copyright © 2015 NS Solutions Corporation, All rights reserved. 35
36.
orz Copyright © 2015
NS Solutions Corporation, All rights reserved. 36
37.
ブラウザ依存の闇と向き合う 世にある便利ツールを使おう! (他力本願) Copyright © 2015
NS Solutions Corporation, All rights reserved. 37
38.
Seleniumベースのツール・サービス • ラッパ /DSL •
SeleniumのAPIを使いやすくしてくれたり、 自然言語に近い形でテストを書けたりする • クラウドサービス • 色々なブラウザの実行環境が使えたり、 スクショや動画キャプチャ撮ってくれたりする Copyright © 2015 NS Solutions Corporation, All rights reserved. 38 参考:Seleniumテストの自動化を推し進めるクラウドサービスまとめ http://blog.htmlhifive.com/2014/12/09/selenium-cloud-services/
39.
宣伝:弊社も作ってます Pitalium Copyright © 2015
NS Solutions Corporation, All rights reserved. 39 ピ タ リ ウ ム by OSS (Apache2.0)
40.
Copyright © 2015
NS Solutions Corporation, All rights reserved. 40 IE Safari Chrome Pitalium
41.
テスト自動化の闇テスト自動化の闇と向き合う Copyright © 2015
NS Solutions Corporation, All rights reserved. 41
42.
テスト自動化の闇と向き合うには • テストしやすい設計 • テストスクリプトに一手間 •
便利ツール・サービスを使う Copyright © 2015 NS Solutions Corporation, All rights reserved. 42
43.
そして深まる闇 闇トークしたい方 hifiveブースへお越しください! Copyright © 2015
NS Solutions Corporation, All rights reserved. 43 ・ NS Solutions、NS(ロゴ)、NSSOLは、新日鉄住金ソリューションズ株式会社の登録商標です。 ・ hifive、hifive(ロゴ)は、新日鉄住金ソリューションズ株式会社の登録商標です。 ・ Pitaliumは、新日鉄住金ソリューションズ株式会社の商標です。 ・ Javaは、米国ORACLE Corp.の登録商標です。 ・ HTML5 Logo by W3C ・ その他本文記載の会社名及び製品名は、それぞれ各社の商標又は登録商標です。
Download now