Submit Search
#nds47 WebのテストをPythonでやってエビデンス取得作業から開放?
Download as PPTX, PDF
0 likes
2,133 views
C
civicpg
PythonでSeleniumを使ったテストを紹介 saucelabsのデモ
Engineering
Read more
1 of 33
Download now
Download to read offline
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
More Related Content
PDF
Seleniumの薄っすい話 百八式 @ 第3回 日本Seleniumユーザーコミュニティ勉強会
Hiroshi Toda
PDF
Seleniumをもっと知るための本の話
Ryuji Tamagawa
PDF
ApiとE2Eテスト #entapihack
nihon buson
PPTX
Selenium WebDriver + python で E2Eテスト自動化
JustSystems Corporation
PDF
ひよこテスト駆動開発(PHPカンファレンス2014)
Oonishi Keitarou
PDF
レガシーコード改善はじめました 横浜道場
Hiroyuki Ohnaka
PDF
JenkinsとSeleniumの活用事例
Takeshi Kondo
PDF
20120927 findjob4 dev_ops
ume3_
Seleniumの薄っすい話 百八式 @ 第3回 日本Seleniumユーザーコミュニティ勉強会
Hiroshi Toda
Seleniumをもっと知るための本の話
Ryuji Tamagawa
ApiとE2Eテスト #entapihack
nihon buson
Selenium WebDriver + python で E2Eテスト自動化
JustSystems Corporation
ひよこテスト駆動開発(PHPカンファレンス2014)
Oonishi Keitarou
レガシーコード改善はじめました 横浜道場
Hiroyuki Ohnaka
JenkinsとSeleniumの活用事例
Takeshi Kondo
20120927 findjob4 dev_ops
ume3_
Similar to #nds47 WebのテストをPythonでやってエビデンス取得作業から開放?
(20)
PDF
SeleniumIDEとSelenium WebDriver × Node.js Seleniumで業務効率化する15分
松田 千尋
PDF
Nishimoto osh2014: Test driven development and accessibility
Takuya Nishimoto
PPT
Sue445 Style TDD #atest_hack
Go Sueyoshi (a.k.a sue445)
PPTX
worker_threadsを使った実装の勘所
yo_waka
PPTX
Selenium IDE for primer
yasukoS
PPTX
Androidアプリ開発のテスト環境
Toshiyuki Hirata
PDF
TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~
Tomomi Kajita
KEY
自動テストのすすめ
Katsunori Kanda
PDF
オトナのプログラミング勉強会 オトナのDeep Learning 2016-11
Katsuhiro Morishita
PDF
Selenium再入門-W3C勧告とページオブジェクトパターンと私-201707webエンジニア勉強会#2神田
Y Watanabe
PDF
作る人から作りながら運用する人になっていく
Ryo Mitoma
PPTX
TDDはじめる前に
Yasui Tsutomu
PDF
ソフトウェアテスト入門
Preferred Networks
PDF
第2回nseg slideshare
ko ty
PDF
Node js 入門
Satoshi Takami
KEY
Jenkins + awsで並列テスト
Yamamoto Kazuhisa
PDF
Should bee
Reo Mori
PDF
nseg第5回勉強会
ko ty
PDF
Introduction to Continuous Testing
Atsuhiro Kubo
PDF
大規模ソフトウェア開発とテストの経験について
Rakuten Group, Inc.
SeleniumIDEとSelenium WebDriver × Node.js Seleniumで業務効率化する15分
松田 千尋
Nishimoto osh2014: Test driven development and accessibility
Takuya Nishimoto
Sue445 Style TDD #atest_hack
Go Sueyoshi (a.k.a sue445)
worker_threadsを使った実装の勘所
yo_waka
Selenium IDE for primer
yasukoS
Androidアプリ開発のテスト環境
Toshiyuki Hirata
TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~
Tomomi Kajita
自動テストのすすめ
Katsunori Kanda
オトナのプログラミング勉強会 オトナのDeep Learning 2016-11
Katsuhiro Morishita
Selenium再入門-W3C勧告とページオブジェクトパターンと私-201707webエンジニア勉強会#2神田
Y Watanabe
作る人から作りながら運用する人になっていく
Ryo Mitoma
TDDはじめる前に
Yasui Tsutomu
ソフトウェアテスト入門
Preferred Networks
第2回nseg slideshare
ko ty
Node js 入門
Satoshi Takami
Jenkins + awsで並列テスト
Yamamoto Kazuhisa
Should bee
Reo Mori
nseg第5回勉強会
ko ty
Introduction to Continuous Testing
Atsuhiro Kubo
大規模ソフトウェア開発とテストの経験について
Rakuten Group, Inc.
Ad
More from civicpg
(9)
PDF
オンライン英会話のモチベーション維持!
civicpg
PPTX
#nds54 ルーチンワーク自動化の話
civicpg
PPTX
#nds53 IoTプラットフォーム・工作でスーヴィード(低温調理)
civicpg
PPTX
第52回なんてかんたんなJavaEE
civicpg
PPTX
第51回NDS PostgreSQLのデータ型 #nds51
civicpg
PPTX
第49回emailを安全んにつかうための心がけ
civicpg
PPTX
jupyterの紹介 #nds48
civicpg
PPTX
私の好きなPython構文 vol.2 #nds46
civicpg
PDF
Amazon SESのメール受信対応でサーバー減らせた話 #nds44
civicpg
オンライン英会話のモチベーション維持!
civicpg
#nds54 ルーチンワーク自動化の話
civicpg
#nds53 IoTプラットフォーム・工作でスーヴィード(低温調理)
civicpg
第52回なんてかんたんなJavaEE
civicpg
第51回NDS PostgreSQLのデータ型 #nds51
civicpg
第49回emailを安全んにつかうための心がけ
civicpg
jupyterの紹介 #nds48
civicpg
私の好きなPython構文 vol.2 #nds46
civicpg
Amazon SESのメール受信対応でサーバー減らせた話 #nds44
civicpg
Ad
#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のテストの書き方は工夫が必要 • すべてを網羅するテストはユニットテストの方で • テストをがんばりすぎない
Download