Your SlideShare is downloading. ×
0
Python Autotest pdc2008w
Python Autotest pdc2008w
Python Autotest pdc2008w
Python Autotest pdc2008w
Python Autotest pdc2008w
Python Autotest pdc2008w
Python Autotest pdc2008w
Python Autotest pdc2008w
Python Autotest pdc2008w
Python Autotest pdc2008w
Python Autotest pdc2008w
Python Autotest pdc2008w
Python Autotest pdc2008w
Python Autotest pdc2008w
Python Autotest pdc2008w
Python Autotest pdc2008w
Python Autotest pdc2008w
Python Autotest pdc2008w
Python Autotest pdc2008w
Python Autotest pdc2008w
Python Autotest pdc2008w
Python Autotest pdc2008w
Python Autotest pdc2008w
Python Autotest pdc2008w
Python Autotest pdc2008w
Python Autotest pdc2008w
Python Autotest pdc2008w
Python Autotest pdc2008w
Python Autotest pdc2008w
Python Autotest pdc2008w
Python Autotest pdc2008w
Python Autotest pdc2008w
Python Autotest pdc2008w
Python Autotest pdc2008w
Python Autotest pdc2008w
Python Autotest pdc2008w
Python Autotest pdc2008w
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Python Autotest pdc2008w

2,874

Published on

Python auto test with buildbot. (Python 自動テスト)

Python auto test with buildbot. (Python 自動テスト)

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,874
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
11
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Python Developers Camp 2008 冬 in 松本
  • 2. テスト自動化 Buildbot & Selenium http:// 清水川 .jp/
  • 3. アジェンダ
    • Buildbot
      • 実行の流れ
      • デモ
      • しくみ
    • Selenium
  • 4.
    • Buildbot
  • 5. UnitTest を書く class TestCricket(unittest.TestCase): def test_throw(self): cricket = Cricket() cricket.throw(18,1) self.assertEqual( cricket.score(18),1) def test_throw_2(self): cricket = Cricket() cricket.throw(18,2) self.assertEqual( cricket.score(18),2)
  • 6. テストを実行する [c:utdarts]python ut1.py -v test_throw (__main__.TestCricket) ... ok test_throw_2 (__main__.TestCricket) ... ok test_throw_2_1 (__main__.TestCricket) ... ok test_throw_3 (__main__.TestCricket) ... ok test_throw_mix_a2_b1 (__main__.TestCricket) ... ok test_throw_mix_all (__main__.TestCricket) ... ok ------------------------------------------------------------- Ran 6 tests in 0.001s OK OK
  • 7. Subversion に保存する .java .c .py コミット!
  • 8. Buildbot に通知
  • 9. 自動テスト [c:utdarts] python ut1.py ...... --------------------------------------------- Ran 6 tests in 0.000s OK
  • 10. テスト結果を Web で閲覧
  • 11. 時々 UT せずにコミット まあ動くよね
  • 12. 自動テスト失敗 .... FAIL: test_throw_mix_all (__main__.TestCricket) ---------------------------------------------------- Traceback (most recent call last): File "ut1.py", line 66, in test_throw_mix_all self.assertEqual( AssertionError: 3 != 4 ---------------------------------------------------- Ran 6 tests in 0.018s FAILED (failures=1)
  • 13. エラーだと通知やパトランプ Powered by Gainer
  • 14.
    • Demo
  • 15. もうちょっと 詳しく
  • 16. Buildbot とは
    • 継続的インテグレーション(ビルド・コンパイルの自動化)
    • Python で書かれている
      • Pythonが動作する -> BuildBot も動作
    • 類似ソフト
    • Tinderbox (http://www.mozilla.org/tinderbox.html)
    • CruiseControl (http://cruisecontrol.sourceforge.net/)
  • 17. Buildbot の構成
    • http://buildbot.sourceforge.net/manual-0.7.5.html
  • 18. Buildbot実行の流れ
    • ビルド実行のトリガー
      • SVN/CVS のコミット
      • 前回のテストからN時間たった
    • マスターが各スレーブにビルド命令を出す
    • 各スレーブがマスターにビルド結果を報告
    • マスターが各スレーブのビルド結果を報告
      • メール
      • Waterfall(ブラウザー)
  • 19. ビルド実行のトリガー
    • バージョン管理システムの変更
      • Subversion
      • CVS
      • Darcs
      • Mercurial
      • Arch/Bazaar
      • P4
    • スケジューリング
      • 周期的
      • Cron 風
  • 20. ビルドステップ
    • master.cfg ファイルに記述
    • 中身は Python プログラム
    • スレーブごとにビルド内容やビルドトリガーを設定することも可能
      • ソースコードの階層が変更された
      • 開発の活発さが異なる
      • 場合などに便利
  • 21. ユースケース 1
    • Python( 本体 ) の場合
    • ソースコードのアップデート (trunk/branch)
    • configure
    • make
    • make test
    • ... を様々なハードウェア (Windows/POSIX|32/64 bit) で実行
  • 22. ユースケース 2
    • Web アプリの場合
    • ソースコードのアップデート (trunk/branch)
    • ユニットテスト
    • ファンクショナルテスト
    • テスト失敗時にはメール送信 ( エラーログを添付 ) を定期的 (2 時間間隔 ) に Windows/Linux で実行
  • 23. Buildbot 使ってるツール類
    • Buildbot, Twisted, ILM, Free Geek, Mono, SpamAssassin, Boost, Zope, OpenID, Python, KDE, Enfold Systems, Subversion, GHC, OpenOffice, Jython, OpenSG, NUT, GNOME, Gentoo Linux, wxWidgets.... http://buildbot.net/trac/wiki/SuccessStories
    • Python の buildbot ページ http://www.python.org/dev/buildbot/all/
  • 24. 参考リンク
    • Buildbot: 本家 http://buildbot.net/
    • Buildbot: マニュアル (0.7.5) http://buildbot.net/repos/release/docs/buildbot.html ユーザーマニュアル
    • Buildbot: build/test automation http://buildbot.sourceforge.net/PyCon-2003/buildbot.html BuildBot の概要 (PyCon 2003 の発表資料 )
  • 25.
    • Selenium
  • 26. Selenium
    • ウェブアプリ用自動テスト用フレームワーク
    • JavaScript でブラウザを制御
    • ThoughtWorks が開発->オープンソース化
    • Selenium Core
    • Selenium IDE
    • Selenium RC
  • 27. マルチ OS ・ブラウザ対応
    • OS
      • Windows
      • Mac
      • Linux
    • ブラウザ
      • IE
      • Firefox
      • Opera
      • Safari
      • など
  • 28. テスト実行画面 テスト実行エリア テスト操作 テストケース テストスイート
  • 29. Selenium テストの書き方 – テストケース
    • HTML テーブルでブラウザの動作と期待される結果を表現
    コマンド一覧 http://www.openqa.org/selenium-core/reference.html
  • 30. Selenium IDE
    • Firefox Extension
      • OS に依存しない
      • インストールが簡単
    • Selenium 用テストコードの作成・生成ツール
    • Selenium Core の実行環境
  • 31. SeleniumIDE でテストコード作成・生成
    • ブラウザの操作をレコードし、Selenium コマンドに変換
    • コマンドの追加・編集
    • 作成したテストケースをその場で実行できる
      • リプレイ->編集というサイクル
    • サーバーにアップロードさせる必要もない
  • 32. Selenium RC
    • http://www.openqa.org/selenium-rc/tutorial.html
  • 33. Selenium Server の役割
    • クライアントからコマンドを受け取る
    • ブラウザのプロキシサーバー
  • 34. Selenium RC クライアント
    • さまざまな言語に対応
    • (各言語のテストフレームワークの上にドライバーは作成されている)
    • - Java(JUnit)
    • - C#(NUnit)
    • - Perl(Test::More)
    • - Python(unittest)
    • - PHP(PHPUnit)
  • 35. 例 :Python ドライバ >>> sel = selenium("localhost", 4444, "*firefox", >>> "http://www.google.com/webhp") >>> sel.start() >>> sel.open("http://www.google.com/webhp") >>> sel.type("q", "hello world") >>> sel.click("btnG") >>> sel.wait_for_page_to_load(5000) >>> sel.get_title() hello world - Google Search
  • 36. 参考リンク
    • Open QA
      • http://www.openqa.org/
      • Selenium-Core, Selenium-RC など
    • Selenium 徹底活用
      • http://labs.gree.jp/presentation/20060824/slides/selenium.html
      • Selenium IDE 作者による Selenium の紹介資料
  • 37. Buildbot with Trac
    • Using Buildbot and Trac together http://buildbot.net/trac/wiki/BuildbotAndTrac
    発表予告していましたが 今回は時間切れでした ... この資料の元を作成してくれた 同僚のジョージさん、ありがとう!

×