Enviar pesquisa
Carregar
#nds47 WebのテストをPythonでやってエビデンス取得作業から開放?
•
Transferir como PPTX, PDF
•
0 gostou
•
2,115 visualizações
C
civicpg
Seguir
PythonでSeleniumを使ったテストを紹介 saucelabsのデモ
Leia menos
Leia mais
Engenharia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 33
Baixar agora
Recomendados
Seleniumの薄っすい話 百八式 @ 第3回 日本Seleniumユーザーコミュニティ勉強会
Seleniumの薄っすい話 百八式 @ 第3回 日本Seleniumユーザーコミュニティ勉強会
Hiroshi Toda
Seleniumをもっと知るための本の話
Seleniumをもっと知るための本の話
Ryuji Tamagawa
ApiとE2Eテスト #entapihack
ApiとE2Eテスト #entapihack
nihon buson
Selenium WebDriver + python で E2Eテスト自動化
Selenium WebDriver + python で E2Eテスト自動化
JustSystems Corporation
ひよこテスト駆動開発(PHPカンファレンス2014)
ひよこテスト駆動開発(PHPカンファレンス2014)
Oonishi Keitarou
レガシーコード改善はじめました 横浜道場
レガシーコード改善はじめました 横浜道場
Hiroyuki Ohnaka
JenkinsとSeleniumの活用事例
JenkinsとSeleniumの活用事例
Takeshi Kondo
20120927 findjob4 dev_ops
20120927 findjob4 dev_ops
ume3_
Recomendados
Seleniumの薄っすい話 百八式 @ 第3回 日本Seleniumユーザーコミュニティ勉強会
Seleniumの薄っすい話 百八式 @ 第3回 日本Seleniumユーザーコミュニティ勉強会
Hiroshi Toda
Seleniumをもっと知るための本の話
Seleniumをもっと知るための本の話
Ryuji Tamagawa
ApiとE2Eテスト #entapihack
ApiとE2Eテスト #entapihack
nihon buson
Selenium WebDriver + python で E2Eテスト自動化
Selenium WebDriver + python で E2Eテスト自動化
JustSystems Corporation
ひよこテスト駆動開発(PHPカンファレンス2014)
ひよこテスト駆動開発(PHPカンファレンス2014)
Oonishi Keitarou
レガシーコード改善はじめました 横浜道場
レガシーコード改善はじめました 横浜道場
Hiroyuki Ohnaka
JenkinsとSeleniumの活用事例
JenkinsとSeleniumの活用事例
Takeshi Kondo
20120927 findjob4 dev_ops
20120927 findjob4 dev_ops
ume3_
SeleniumIDEとSelenium WebDriver × Node.js Seleniumで業務効率化する15分
SeleniumIDEとSelenium WebDriver × Node.js Seleniumで業務効率化する15分
松田 千尋
Nishimoto osh2014: Test driven development and accessibility
Nishimoto osh2014: Test driven development and accessibility
Takuya Nishimoto
Sue445 Style TDD #atest_hack
Sue445 Style TDD #atest_hack
Go Sueyoshi (a.k.a sue445)
worker_threadsを使った実装の勘所
worker_threadsを使った実装の勘所
yo_waka
Selenium IDE for primer
Selenium IDE for primer
yasukoS
Androidアプリ開発のテスト環境
Androidアプリ開発のテスト環境
Toshiyuki Hirata
TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~
TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~
Tomomi Kajita
自動テストのすすめ
自動テストのすすめ
Katsunori Kanda
オトナのプログラミング勉強会 オトナのDeep Learning 2016-11
オトナのプログラミング勉強会 オトナのDeep Learning 2016-11
Katsuhiro Morishita
Selenium再入門-W3C勧告とページオブジェクトパターンと私-201707webエンジニア勉強会#2神田
Selenium再入門-W3C勧告とページオブジェクトパターンと私-201707webエンジニア勉強会#2神田
Y Watanabe
作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていく
Ryo Mitoma
TDDはじめる前に
TDDはじめる前に
Yasui Tsutomu
ソフトウェアテスト入門
ソフトウェアテスト入門
Preferred Networks
第2回nseg slideshare
第2回nseg slideshare
ko ty
Node js 入門
Node js 入門
Satoshi Takami
Jenkins + awsで並列テスト
Jenkins + awsで並列テスト
Yamamoto Kazuhisa
Should bee
Should bee
Reo Mori
nseg第5回勉強会
nseg第5回勉強会
ko ty
Introduction to Continuous Testing
Introduction to Continuous Testing
Atsuhiro Kubo
大規模ソフトウェア開発とテストの経験について
大規模ソフトウェア開発とテストの経験について
Rakuten Group, Inc.
オンライン英会話のモチベーション維持!
オンライン英会話のモチベーション維持!
civicpg
#nds54 ルーチンワーク自動化の話
#nds54 ルーチンワーク自動化の話
civicpg
Mais conteúdo relacionado
Semelhante a #nds47 WebのテストをPythonでやってエビデンス取得作業から開放?
SeleniumIDEとSelenium WebDriver × Node.js Seleniumで業務効率化する15分
SeleniumIDEとSelenium WebDriver × Node.js Seleniumで業務効率化する15分
松田 千尋
Nishimoto osh2014: Test driven development and accessibility
Nishimoto osh2014: Test driven development and accessibility
Takuya Nishimoto
Sue445 Style TDD #atest_hack
Sue445 Style TDD #atest_hack
Go Sueyoshi (a.k.a sue445)
worker_threadsを使った実装の勘所
worker_threadsを使った実装の勘所
yo_waka
Selenium IDE for primer
Selenium IDE for primer
yasukoS
Androidアプリ開発のテスト環境
Androidアプリ開発のテスト環境
Toshiyuki Hirata
TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~
TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~
Tomomi Kajita
自動テストのすすめ
自動テストのすすめ
Katsunori Kanda
オトナのプログラミング勉強会 オトナのDeep Learning 2016-11
オトナのプログラミング勉強会 オトナのDeep Learning 2016-11
Katsuhiro Morishita
Selenium再入門-W3C勧告とページオブジェクトパターンと私-201707webエンジニア勉強会#2神田
Selenium再入門-W3C勧告とページオブジェクトパターンと私-201707webエンジニア勉強会#2神田
Y Watanabe
作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていく
Ryo Mitoma
TDDはじめる前に
TDDはじめる前に
Yasui Tsutomu
ソフトウェアテスト入門
ソフトウェアテスト入門
Preferred Networks
第2回nseg slideshare
第2回nseg slideshare
ko ty
Node js 入門
Node js 入門
Satoshi Takami
Jenkins + awsで並列テスト
Jenkins + awsで並列テスト
Yamamoto Kazuhisa
Should bee
Should bee
Reo Mori
nseg第5回勉強会
nseg第5回勉強会
ko ty
Introduction to Continuous Testing
Introduction to Continuous Testing
Atsuhiro Kubo
大規模ソフトウェア開発とテストの経験について
大規模ソフトウェア開発とテストの経験について
Rakuten Group, Inc.
Semelhante a #nds47 WebのテストをPythonでやってエビデンス取得作業から開放?
(20)
SeleniumIDEとSelenium WebDriver × Node.js Seleniumで業務効率化する15分
SeleniumIDEとSelenium WebDriver × Node.js Seleniumで業務効率化する15分
Nishimoto osh2014: Test driven development and accessibility
Nishimoto osh2014: Test driven development and accessibility
Sue445 Style TDD #atest_hack
Sue445 Style TDD #atest_hack
worker_threadsを使った実装の勘所
worker_threadsを使った実装の勘所
Selenium IDE for primer
Selenium IDE for primer
Androidアプリ開発のテスト環境
Androidアプリ開発のテスト環境
TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~
TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~
自動テストのすすめ
自動テストのすすめ
オトナのプログラミング勉強会 オトナのDeep Learning 2016-11
オトナのプログラミング勉強会 オトナのDeep Learning 2016-11
Selenium再入門-W3C勧告とページオブジェクトパターンと私-201707webエンジニア勉強会#2神田
Selenium再入門-W3C勧告とページオブジェクトパターンと私-201707webエンジニア勉強会#2神田
作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていく
TDDはじめる前に
TDDはじめる前に
ソフトウェアテスト入門
ソフトウェアテスト入門
第2回nseg slideshare
第2回nseg slideshare
Node js 入門
Node js 入門
Jenkins + awsで並列テスト
Jenkins + awsで並列テスト
Should bee
Should bee
nseg第5回勉強会
nseg第5回勉強会
Introduction to Continuous Testing
Introduction to Continuous Testing
大規模ソフトウェア開発とテストの経験について
大規模ソフトウェア開発とテストの経験について
Mais de civicpg
オンライン英会話のモチベーション維持!
オンライン英会話のモチベーション維持!
civicpg
#nds54 ルーチンワーク自動化の話
#nds54 ルーチンワーク自動化の話
civicpg
#nds53 IoTプラットフォーム・工作でスーヴィード(低温調理)
#nds53 IoTプラットフォーム・工作でスーヴィード(低温調理)
civicpg
第52回なんてかんたんなJavaEE
第52回なんてかんたんなJavaEE
civicpg
第51回NDS PostgreSQLのデータ型 #nds51
第51回NDS PostgreSQLのデータ型 #nds51
civicpg
第49回emailを安全んにつかうための心がけ
第49回emailを安全んにつかうための心がけ
civicpg
jupyterの紹介 #nds48
jupyterの紹介 #nds48
civicpg
私の好きなPython構文 vol.2 #nds46
私の好きなPython構文 vol.2 #nds46
civicpg
Amazon SESのメール受信対応でサーバー減らせた話 #nds44
Amazon SESのメール受信対応でサーバー減らせた話 #nds44
civicpg
Mais de civicpg
(9)
オンライン英会話のモチベーション維持!
オンライン英会話のモチベーション維持!
#nds54 ルーチンワーク自動化の話
#nds54 ルーチンワーク自動化の話
#nds53 IoTプラットフォーム・工作でスーヴィード(低温調理)
#nds53 IoTプラットフォーム・工作でスーヴィード(低温調理)
第52回なんてかんたんなJavaEE
第52回なんてかんたんなJavaEE
第51回NDS PostgreSQLのデータ型 #nds51
第51回NDS PostgreSQLのデータ型 #nds51
第49回emailを安全んにつかうための心がけ
第49回emailを安全んにつかうための心がけ
jupyterの紹介 #nds48
jupyterの紹介 #nds48
私の好きなPython構文 vol.2 #nds46
私の好きなPython構文 vol.2 #nds46
Amazon SESのメール受信対応でサーバー減らせた話 #nds44
Amazon SESのメール受信対応でサーバー減らせた話 #nds44
#nds47 WebのテストをPythonでやってエビデンス取得作業から開放?
1.
WebのテストをPythonでやって エビデンス取得作業から開放? 〜Selenium風味〜 #nds47 @civic
2.
お前だれよ • @civic • NDS管理者 •
Python, Java
3.
今日話す内容
4.
今日話す内容 • Pythonがメインではありません • E2Eテストについて •
Seleniumについて • デモ
5.
突然ですが
6.
NDSの発表者は講師ではない
7.
発表者である私自身も使い始めようと調べて いる段階ですので、今わかっている内容につ いて報告するという体で
8.
講師じゃなくても学習中の身で 発表できるのがNDS
9.
講師じゃなくても 学習中の身で 発表できるのが NDS
10.
E2E (End to
End) テスト
11.
E2Eテスト • End to
Endテスト • テスト対象となるシステムを使ってテスト • Webシステムの場合・ブラウザを使って... • UI • Webのネットワーク接続 • サーバーサイドの処理 • データベース
12.
E2Eテスト • 単体テストで確認した項目を再び全部テストするわけ ではない • 詳細な点は単体テストで確認しているので、全体的 なシナリオにそって動作するかを確認する •
テストが大変で、時間もかかるためできるかぎり量 を減らしたい →詳細な内容は単体テスト・結合テストで網羅する
13.
エビデンス • テストがちゃんと実施されたという証拠(エビデンス) • 例 •
画面のスクリーンショット(ちゃんと正常に出力さ れてます) • データベースのダンプ(処理前・処理後) • 操作してスクリーンショットをとってExcelに貼り付け るだけの仕事...
14.
エビデンス 「Xのテスト実施しました!」 「わかった。よくやった」 ・・・ 「不具合だ!Xが怪しい!テストしたのか!」 「しました!」 「ほんとか!」 「ホントです!」つエビデンス 「よし!通れ!」 不具合はあったが、Xについてテストは きちんとおこなわれていた証明になった
15.
Seleniumについて
16.
Selenium • E2Eテストを自動化するツール • 結構古い歴史(2004〜) •
Selenium 2.0で大きく変わった • WebDriver • 昔:ページ内JavaScriptでブラウザを操作 Java他→JSコードに変換→ページに埋め込み • 今:ブラウザの機能でブラウザを操作 各種言語でブラウザの拡張機能を操作
17.
WebDriver Selenium WebDriverでWebアプリのテストが変わる(前編) http://www.atmarkit.co.jp/ait/articles/1210/05/news104.html
18.
WebDriverによって • WebDriverによって • ブラウザを操作するのは各ブラウザごとに用意され た拡張機能で行う(Chromeはブラウザ本体) •
WebDriverへの指示をクライアントライブラリから送 る(HTTP) • クライアントライブラリとしては、HTTPを送るだけ だから様々な言語で用意可能 • Selenium Serverを経由することで離れた場所でも操 作できる→SauceLabsなどのサービス
19.
デモ REPLでブラウザを操作
20.
環境構築 • クライアントライブラリにPythonを使用 • Seleniumモジュールのインストール $
pip install selenium •ipython というREPL環境で試してみます
21.
REPLで確認 from selenium import
webdriver driver = webdriver.Firefox() driver.get("http://www.google.com") q = driver.find_element_by_name('q') q.send_keys("長岡IT開発者勉強会") q.submit() driver.screenshot() driver.quit()
22.
デモ pythonのunittestでテストコード記述
23.
テストプログラム化 • Pythonのテストコードとして記述 • 標準テストライブラリunittestを使用する例 (特にSelenium用に特化しなくてよい) class
MyTest(unittest.TestCase): def test_mytest(self): driver = webdriver.Firefox() driver.get("www.google.com") ....
24.
テストメソッド-前半
25.
テストメソッド-後半
26.
要点をかいつまんで • エレメントの取得 find_element〜 driver.find_element_by_name('q') •
キー入力 element.send_keys('cheese!') • スクリーンショット取得 driver.get_screenshot_as_file("filename") • 待機 ui.WebDriverWait(driver, 10).until(...)
27.
テストコードの記述の仕方については、 ダラダラと書いてしまったが、メンテしやす く読みやすいコードにすべき → ページオブジェクトパターン http://www.seleniumhq.org/docs/06_test_design_considerations.jsp#page-object-design-pattern
28.
SauceLabsを使った クロスブラウザでのテスト
29.
SauceLabs • ブラウザの実行環境を提供してくれるサービス • Selenium対応
Remote WebDriver
30.
デモ SauceLabsでリモートのブラウザでテスト
31.
Remote WebDriver • Remote
WebDriverを使うだけでテストコードは同じ
32.
まとめ
33.
まとめ • Seleniumを使えばブラウザの操作を自動化できる • 各種言語(Pythonふくむ)でテストコードを書ける •
E2Eのテストの書き方は工夫が必要 • すべてを網羅するテストはユニットテストの方で • テストをがんばりすぎない
Baixar agora