Submit Search
#nds47 WebのテストをPythonでやってエビデンス取得作業から開放?
Download as PPTX, PDF
•
0 likes
•
2,132 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
end to end testing(jscafe15)
Ryuma Tsukano
PDF
Selenium with pixiv
Kohki Yamagiwa
PPT
PHP agile test tips
Tsutomu Chikuba
PPT
ビジネス的に高価値なアジャイルテスト
Tsutomu Chikuba
Seleniumの薄っすい話 百八式 @ 第3回 日本Seleniumユーザーコミュニティ勉強会
Hiroshi Toda
Seleniumをもっと知るための本の話
Ryuji Tamagawa
ApiとE2Eテスト #entapihack
nihon buson
Selenium WebDriver + python で E2Eテスト自動化
JustSystems Corporation
end to end testing(jscafe15)
Ryuma Tsukano
Selenium with pixiv
Kohki Yamagiwa
PHP agile test tips
Tsutomu Chikuba
ビジネス的に高価値なアジャイルテスト
Tsutomu Chikuba
Similar to #nds47 WebのテストをPythonでやってエビデンス取得作業から開放?
(15)
PDF
「Selenium実践入門」で学ぶテスト自動化の世界
Nozomi Ito
PPTX
Selenium IDE for primer
yasukoS
PDF
2015年に「画面テストの動画録画」を作って「流行れ!」 と願ったが、流行らんかった上ロストした話 #seleniumjp
Kazuhito Miura
PPTX
Selenium WebDriver,Cypress,TestCafeの違いを調べてみました
MaiKaneko4
PDF
JenkinsとSeleniumの活用事例
Takeshi Kondo
PDF
【Pycon2012】unittest嫌いがunitestをtesting
ido_ojos_jp
KEY
capybara で快適なテスト生活を
Ryunosuke SATO
PDF
海外のSeleniumカンファレンスではどんな発表がされているのか2014
Nozomi Ito
PDF
PHP Application E2E with Capybara
Yoshiaki Yoshida
PPTX
エンドツーエンドテストを自動化したらチームがすごく良くなった@XPまつり2015LT
Taichi Watanabe
PDF
PHP Codeception テスト -- 日本語
Florent Batard
PPTX
Selenium
takeuchi-tk
PPTX
Selenium2でつくるテストケースの構成について
yufu yufu
PDF
E2E Test Tools
KeepAlive1
PDF
ブラウザのUIテストをしてみた話
Mitsushige Ishiguro
「Selenium実践入門」で学ぶテスト自動化の世界
Nozomi Ito
Selenium IDE for primer
yasukoS
2015年に「画面テストの動画録画」を作って「流行れ!」 と願ったが、流行らんかった上ロストした話 #seleniumjp
Kazuhito Miura
Selenium WebDriver,Cypress,TestCafeの違いを調べてみました
MaiKaneko4
JenkinsとSeleniumの活用事例
Takeshi Kondo
【Pycon2012】unittest嫌いがunitestをtesting
ido_ojos_jp
capybara で快適なテスト生活を
Ryunosuke SATO
海外のSeleniumカンファレンスではどんな発表がされているのか2014
Nozomi Ito
PHP Application E2E with Capybara
Yoshiaki Yoshida
エンドツーエンドテストを自動化したらチームがすごく良くなった@XPまつり2015LT
Taichi Watanabe
PHP Codeception テスト -- 日本語
Florent Batard
Selenium
takeuchi-tk
Selenium2でつくるテストケースの構成について
yufu yufu
E2E Test Tools
KeepAlive1
ブラウザのUIテストをしてみた話
Mitsushige Ishiguro
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