(04)Robot Framework第一個用例
建立測試專案Project
選擇選單欄file----->new Project
Name 輸入專案名稱,會在該路徑下生成一個對應的資料夾,Type 選擇Directory。
左側 :工程名、父目錄、建立路徑。
從Tpye上來說,分為檔案和目錄兩種,區別嘛,看你的工程定,如果內容很簡單,File型別的就可以,如果內容較多,從方便管理的角度來說,選Directory的比較合適。
從Format上來說,分為ROBOT、txt、tsv、html,比較推薦robot和txt,在安裝vs code的外掛後檢視.robot
文件會自動語法高亮,也便於維護和版本管理,後續的案例。
建立測試套件Suite
右鍵點選“test01”選擇new Suite 選項,建立一個測試套件
Name 輸入專案名稱。
Type 選擇File。
看到這個圖,比較一下和前面New Project的圖有區別麼?
其實,從根本上說,Project和Test Suite是一樣的,如果硬要區分一下的話,我的意見是目錄型的是Project,檔案型的是Test Suite。
借用一下吳博PPT裡的關係圖來說明一下:
圖中,Project和Dir Test Suite是相同的,當然這裡的Project也是Dir的,如果是File Project,那麼他其實是等同於File Test Suite。
作為一個目錄型的Test Suite來說,他們下面可以包含檔案Test Suite或者目錄Test Suite,層級可以很深。但我們最終要用的TestCase只能在檔案型的TestSuite下面。
大家可以自己建立一些複雜的目錄結構來體驗一下Project、TestSuite和TestCase的關係,同時為了印證我說的“Project和Dir Test Suite是相同的”,你可以找一個你建立的目錄型的TestSuite,使用RIDE的File下面的Open Directory開啟你的這個目錄。你會發現他和Project是一樣的
同時,你在目錄型的TestSuite上點右鍵,是看不到新增TestCase的選’項
建立測試用例Case
右鍵點選“test suite01”選擇new Test Case
用例只需要輸入用例name ,點選OK即可。
看到測試套件前面多了個*麼?這表示他是有了新的修改,還沒有儲存。我們先儲存一下。
匯入selenium2library庫
因為RF框架編寫基於web 的測試用例,所以,我們需要selenium 的庫支援。所以,我們在使用的過程中需要載入selenium2library庫。
點選Settings
可以切換頁面,方便後續匯入selenium2library
可以直接在Name中輸入Selenium2Library
或者直接通過Browse匯入,一般路徑是在F:\Python27\Lib\site-packages
在“測試套件”的Edit標籤頁,點選“Library”按鈕,彈出輸入框,Name輸入:Selenium2Library ,點選OK 完。
如果匯入的庫顯示為紅色,表示匯入的庫不存在。如果是黑色則表示匯入成功。
編寫用例
下面就可以開始寫我們的用例了,可是怎麼寫呢?我們可以通過按F5 快捷鍵來查詢指令碼的關鍵字。如果你接觸過QTP 或 selenium IDE 等自動化工具的話,應該會有一些思路。
如上圖,自動化指令碼從開啟瀏覽器開發,如上圖,我想開啟一個瀏覽器,想的是“open”為關鍵字進行搜尋,結果找到了一個“Open Browser”的關鍵字,點選這個關鍵字,想顯示它的用法和說明。
記得可以通過Ctrl + Alt + 空格
來聯想看有哪些關鍵字喔~
根據說明,我們來嘗試建立這個開啟瀏覽器的操作吧:
“Open Browser”變藍了,說明它是一個合法的關鍵字,後面有一個方框是紅色的,表示這個引數不能預設的。通過說明資訊中,我發現它需要一個url 地址是必填的,當然還需要指定browser (預設不填為 friefox)
更多關鍵的使用,請參考相關API 文件。這裡不過多介紹。按照上面的方法。建立百度搜尋用例如下:
執行測試用例
勾選當前需要執行的測試用例,點選工具欄執行按鈕,如果只執行單個用例的話,也可以切換到用例的Run標籤頁,點選“start”按鈕。
執行資訊:
執行資訊顯示會生成三個檔案:Output.xml、Log.html、Report.html
我們重點檢視Log.html和Report.html ,Log.html更關注指令碼的執行過程的記錄,Report.html更關注指令碼的執行結果的展示。
趕快開啟你的測試報告看看效果吧!
Q&A
但是奇怪的是ride沒有顯示Message log,而執行的時候明明已經把✔選中了
檢視log發現有這樣的報錯
DevTools listening on ws://127.0.0.1:12676/devtools/browser/7a3c54fe-81d1-495f-8c3d-ed3eef4bd71c
Traceback (most recent call last):
File "F:\Python27\lib\site-packages\robotide\contrib\testrunner\testrunnerplugin.py", line 370, in OnTimer
self._test_runner.get_output_and_errors(self.get_current_profile())
File "F:\Python27\lib\site-packages\robotide\contrib\testrunner\testrunner.py", line 250, in get_output_and_errors
stdout, stderr, returncode = self._process.get_output(), \
File "F:\Python27\lib\site-packages\robotide\contrib\testrunner\testrunner.py", line 305, in get_output
return self._output_stream.pop()
File "F:\Python27\lib\site-packages\robotide\contrib\testrunner\testrunner.py", line 400, in pop
return result.decode('UTF-8')
File "F:\Python27\lib\encodings\utf_8.py", line 16, in decode
return codecs.utf_8_decode(input, errors, True)
UnicodeDecodeError: 'utf8' codec can't decode byte 0xb0 in position 124: invalid start byte
按照下面連結嘗試,大意是修改裡面的程式碼。
但修改儲存之後Run的功能都沒有顯示了,而且啟動ride會報錯。
https://jingyan.baidu.com/article/380abd0a08c9511d90192c15.html
http://blog.csdn.net/titiyufeng/article/details/53187791
原始碼如下:
於是我又把檔案還原(tips:記得養成好習慣,把原檔案備份好),在sublime中Ctrl+B執行一下testrunner.py,重新啟動ride就可以顯示Message log,沒想明白為啥,神奇。。
Update:
終於找到了RIDE下方不顯示Message log的原因~
參考https://www.jianshu.com/p/a6f31416982d的Q&A部分
============================================================================
錯誤:
command: pybot.bat --argumentfile c:\users\keikei\appdata\local\temp\RIDEama2ym.d\argfile.txt --listener D:\Python27\lib\site-packages\robotide\contrib\testrunner\TestRunnerAgent.py:52418 E:robot\測試專案
解決:
將“C:\Python27\Scripts ”新增到PATH環境變數中。命令提示符號檢視,RF版本。提示pybot 不是內部命令,說明環境變數設定有問題。
參考
相關文章
- robot framework 小試Framework
- robot framework環境搭建Framework
- Robot Framework 小坑記錄Framework
- Robot Framework安裝配置 windowsFrameworkWindows
- Robot Framework(5)- 使用測試庫Framework
- 社群目前很少用 robot framework 了麼Framework
- Robot Framework(15)- 擴充套件關鍵字Framework套件
- Robot Framework 自動化測試--部署篇Framework
- robot framework-databaselibaray庫使用(python)FrameworkDatabasePython
- Robot Framework(8)——指令碼語法示例記錄Framework指令碼
- robot framework學習筆記之九-雜記Framework筆記
- 使用 Robot Framework 進行自動化視覺測試Framework視覺
- Robot Framework(12)- 詳細解讀 RF 的變數和常量Framework變數
- 基於Python3.7 Robot Framework自動化框架搭建PythonFramework框架
- Robot Framework-Ride建立桌面快捷方式(最簡單!)FrameworkIDE
- robot framework 使用三:瀏覽器相容性自己主動化Framework瀏覽器
- 第一個jsp例項JS
- robot framework 使用三:他們主動瀏覽器的相容性Framework瀏覽器
- 張高興的 Entity Framework Core 即學即用:(一)建立第一個 EF Core 應用Framework
- Mac開發基礎04-第一個Mac專案Mac
- Windows10 & Python3 部署Robot FrameWork自動化測試框架WindowsPythonFramework框架
- CloudBase Framework丨第一個 Deno 部署工具是如何打造的?CloudFramework
- Robot Framework自動化測試Selenium2Library庫詳細用法Framework
- SharePoint Framework 構建你的第一個web部件(三)FrameworkWeb
- SharePoint Framework 構建你的第一個web部件(一)FrameworkWeb
- SharePoint Framework 構建你的第一個web部件(二)FrameworkWeb
- 第一個Cassandra應用
- Flutter 04: 圖解第一個程式遇到的安裝依賴問題Flutter圖解
- 用eclipes寫第一個HelloWorld
- 第一個 Angular 應用程式Angular
- GoLang設計模式04 - 單例模式Golang設計模式單例
- Intelligent RobotIntel
- Cheap Robot 題解
- 建立第一個基於Prism框架的WPF應用例項(含原始碼下載)框架原始碼
- [part 3] 第一個 Django 應用Django
- CSS匹配第一個li元素程式碼例項CSS
- robot framework 移動端自動化測試有沒有類似 WEB 端的 SikuliLibrary 庫FrameworkWeb
- iOS 9音訊應用播放音訊之第一個ios9音訊例項iOS音訊