Intro. Robotframework

一個自動化測試框架, 是基於 python, 常被拿來做為驗收測試 Acceptance Test

  • 常用的 Library: Selenium, Swing, Android 等
  • Keyword: 測試案例以多個 keyword 組成,可以將多個 keyword 再組成 keyword.
  • 可以自行以 python 或 java 開發 library
  • Test Script 可以用 txt (用 tab 或 space 類似 python) 或 html (用tag: table, tr, td) 撰寫

若拿來做 Web GUI 的測試就是使用 Selenium2Library.

----------### Installation
- Steps:
1. python 27
2. robotframework
3. setuptools (for pip)
4. pip (for lib)
5. robotframework-selenium2 library (透過 pip install)
pip install robotframework-selenium2library
- Optional:
- wxPython (for ride)
- ride https://code.google.com/p/robotframework-ride/

----------###Example:
測試 SmartKMS "登入" 功能 , 流程是:
1. 開啟瀏覽器
2. 登入
3. 同意
4. 登出
5. 關閉瀏覽器
----------

測試範例下載
AcceptanceTest_SKMS8

----------- Open Browser, Close browser: Selenium2Library 裡所提供的 keyword
- Login, Agree Strategy, Logout: 自己預先建立的 keyword, 為了之後可以重複使用
- ${browser}, ${account}, ${password}: 變數, 通常是字串
- 每個 Keyword 和 Method 滿類似的, 可以給參數讓他執行不同行為,
像是 Open Browser 的第一個參數是起始網址, 第二個則是瀏覽器代號

文件裡提到支援 firefox, internetexplorer, googlechrome, opera, phantomjs, htmlunit, htmlunitwithjs, android, iphone,

----------###Tools
- RIDE(Robot IDE): 目前比較好用的, 比較特別的是可以直接在表格編輯和查詢 Keyword, 但有時候不太穩定
- https://code.google.com/p/robotframework-ride/
- Eclipse plug-in: 單純以文字編輯器進行開發, 有 Syntax Color
- http://github.com/NitorCreations/RobotFramework-EclipseIDE

  • Google Chrome Dev Tool: 查詢 element 的 xpath 很方便, 可以直接在 Elements 的搜尋輸入 xpath 去驗證是否正確

--------------------###CI
- execute by command: pybot
- ex: pybot.bat -d ./log suite_01_basic.html
- 有許多參數能夠自訂 pybot --help
- -d 指定 report 目錄
- -v 變數
- -i 執行指定 tag 的 test case
- 有 Jenkins plugin
- https://wiki.jenkins-ci.org/display/JENKINS/Robot+Framework+Plugin

--------------------###REF
- Official site:
http://robotframework.org
- Official User Guide:
http://robotframework.googlecode.com/hg/doc/userguide/RobotFrameworkUserGuide.html?r=2.8.4
- Google Code:
https://code.google.com/p/robotframework
- Selenium2Library 的 Github:
https://github.com/rtomac/robotframework-selenium2library
- 一個學長的部落格的經驗分享:
http://www.tonylin.idv.tw/dokuwiki/doku.php/rf:rf