RobotFramework是python-based的自動化測試框架,用於驗收測試。所有的測試案例都是透過Keyword(關鍵字)寫成,作者期望讓對程式語言不熟悉的測試人員也能輕鬆上手。實際上,以一個Web-based的應用程式而言,如果不夠熟悉XPath也不是那麼容易完成測試案例;再來實作的經驗,必定會影響測試案例品質,也會影響維護時間。在這裡的文章,是我的經驗分享。
方便篇
- How to build portable robot-package?
- Portable robot-package with Selenium2Library
- 討人厭的BlankPage
- 討人厭的CheckImcompatible
- 如何提升實驗XPath的效率
- 使用自己定義的Firefox執行路徑做測試
- 改變寫法去減少不必要的Log
- Remote Selenium - 透過另外一台電腦的瀏覽器做測試
- Selenium Grid - 集中管理多個Selenium測試節點
- Selenium Grid的鳥問題 - Session deleted due to client timeout
基礎篇
環境
- How to install robotframework with Jython?
- How to install RIDE on Windows?
- How to install RIDE on Ubuntu?
- Run Testcases With RIDE
- 設定RIDE儲存的line separator
- 轉換Test Suite的儲存格式
功能
- Useful Parameters
- How to tag your testcases?
- Setup and Teardown
- Web Test HelloWorld
- How to implement a test library by java? (1) - Use existing libraries
- How to implement a test library by java? (2) - Develop a new library
- How to create the robotframework document?
語法
- Best Practice/Do與Don't
- 如何回傳結果為TRUE或FALSE?
- Evaluate該怎麼用?
- Keyword Design
- How to set message of report? 如何在測試報表中設定我想要的訊息?
- SeleniumLibrary - Open Browser
- Execute JavaScript 蒐集使用過的腳本
- How to assert multiple text node?
Debug&Fix Issues
- How to trace the exception of java keyword library? 如何Trace java keyword library拋出的例外?
- WebDriverException: Message: Java heap space
- 無效的Default Test Setup與Tear Down
- Element is not clickable issue on chrome
- Choose File在Remote Selenium上的問題
- SSL Certificate Error On IE11
- Jython+Selenium2Library無法在Windows上啟動Firefox
- No active session with ID problem
- StaleElementReferenceException: Message: stale element reference: element is not attached to the page document
- 解決RobotFramework從3.1.2升級到3.2.2之後,Choose File突然會整個Hand住的問題
應用篇
Keywords
- Reserve File 如何保留重要檔案並從Report中下載?
- Failure Screenshot 生死一瞬間,捕捉錯誤畫面。
- Get Suite Directory 以TestSuite路徑位置去做為相對路徑吧!
- Wait Something Keywords 用等待關鍵字讓測試案例更可靠!
- Is Variable Declared 如何確認變數是否有被宣告?
- Retry Keyword 改進重試關鍵字!
- Is An Array Variable 如何確認變數內容是否為陣列變數?
- Run Keyword If Keyword Pass/Failed 如何讓關鍵字Pass/Failed時,執行對應動作?
- wget 下載網頁上的資料
Plugins
- How to test Hot Key in Robot? 註: 可改透過Import Library方式使用
- Test Interactive App 透過Expect測試交互式的CLI
- RFDoc Keyword文件集中搜尋瀏覽工具
- RobotFramework+Sikuli(1)-Sikuli Script
- RobotFramework+Sikuli(2)-Sikuli Library GUI測試請看它!
Migrations
- 升級RobotFramework從3.0到3.1.2
- 升級RobotFramework從3.1.2到3.2.x
- Migrate SeleniumLibrary to Selenium2Library
- Robot Framework升級到4.1.2之後,為何Jenkins的Report突然不會報錯了?
Q&A
- Q. 在Windows上執行robot時,出現LookupError: unkown encoding 'ms950'該怎辦?
- A. 可以在cmd中執行@chcp 437,將字碼國家改為美國;目前有遇過ms950和gbk字碼發生問題。(我強烈懷疑robot無法支援中文!)
- Q. 在執行firefox測試時,剛開啟瀏覽器就會檢查update,是否可以把它disable?
- A. 我的情況是在使用的SeleniumProfile/prefs.js中,有去設定extensions.lastAppVersion。我將它註解掉後就不會檢查了,這應該是設定與實際版本不同造成的問題。
- Q. 使用portable-robot去執行web testing,為什麼SeleniumLibrary一直出現0 argeument或0 keyword的錯誤?
- A. 確認Lib/SeleniumLibrary的.py沒被砍掉。砍掉會造成不同版本的robotframework無法重新編譯,我在2.5.3與2.7有遇到這樣的問題。如果不是就當bug回報給作者,他會熱心替你處理的!
- Q. 在IE使用Capture Screenshot會出現圖片檔案找不到的錯誤。
- A. 目前還沒解法,可參考https://groups.google.com/forum/?fromgroups=#!topic/robotframework-users/oyU4AFgxVK0。
- Q. 在Ubuntu上更新RIDE後出現wxPython太舊該怎麼辦?
- A. 假如執行apt-get install wxPython已經顯示為最新了,可以參考http://wiki.wxpython.org/InstallingOnUbuntuOrDebian,透過它提供的repository去更新wxPython。但如果你的Ubnutu太舊使得支援有限,就請你升級了!
- Q. 如何使用Input Text在textarea上跳行?
- A. 各行值可以使用\n分開。
- Q. 如何查看robotframework與jython版本?
- A. 執行java -jar robotframework.jar --version。
- Q. 為何透過IE Web Driver測試非常的慢?
- A. 請用32位元版本的driver做測試,可以參考http://stackoverflow.com/questions/8850211/why-is-selenium-internetexplorerdriver-webdriver-very-slow-in-debug-mode-visual
- Q. 使用IE 11做測試時,出現Unable to get browser。
- A. 必須透過修改Registry,可以參考https://code.google.com/p/selenium/issues/detail?id=6511與https://code.google.com/p/selenium/wiki/InternetExplorerDriver。
- Q. 不同testsuite去Capture Screenshot,為何抓到重複的圖?
- A. 檢查是使用不同的import SeleniumLibrary方式,或者是有重複import。
- Q. Set Variable的scope到底是怎樣?
- A. 按照Document所描述,在哪宣告scope就是到哪,在keyword中宣告就是只能在keyword中使用。2.9之前的版本,如果在test case內宣告,test case內使用的keyword是可以使用到此變數;但如果是2.9之後,就無法在keyword使用到 test case宣告之變數,必須當參數傳遞下去。(https://github.com/robotframework/robotframework/issues/532)
- Q. Start Process與Get Process Result為何突然不能用了?
- A. 這應該是由於你的RobotFramework也更新至3.0版本,必須要Import Process Library: http://robotframework.org/robotframework/latest/libraries/Process.html。
- Q. 在linux上使用RIDE常常出現open too manyfile,就著就無法操作。該怎辦?
- A. 執行ulimit -n 4096增加開啟檔案數量的限制。(我懷疑有memory leak拉)
留言
張貼留言