(04)Robot Framework第一個用例

weixin_34321977發表於2018-02-23

建立測試專案Project

選擇選單欄file----->new Project

1683050-c2fb7818ffbec8f0.png
image.png

Name 輸入專案名稱,會在該路徑下生成一個對應的資料夾,Type 選擇Directory。

1683050-92c29795ea9543b7.png
image.png

左側 :工程名、父目錄、建立路徑。

從Tpye上來說,分為檔案和目錄兩種,區別嘛,看你的工程定,如果內容很簡單,File型別的就可以,如果內容較多,從方便管理的角度來說,選Directory的比較合適。

從Format上來說,分為ROBOT、txt、tsv、html,比較推薦robot和txt,在安裝vs code的外掛後檢視.robot文件會自動語法高亮,也便於維護和版本管理,後續的案例。

建立測試套件Suite

右鍵點選“test01”選擇new Suite 選項,建立一個測試套件

1683050-728335dc78007578.png
image.png
1683050-c8ae32deb35b569e.png
image.png

Name 輸入專案名稱。

Type 選擇File。


看到這個圖,比較一下和前面New Project的圖有區別麼?

其實,從根本上說,Project和Test Suite是一樣的,如果硬要區分一下的話,我的意見是目錄型的是Project,檔案型的是Test Suite。

借用一下吳博PPT裡的關係圖來說明一下:

1683050-7da9544aec1513cf.png
image.png

圖中,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

1683050-deaa3ec75d5bd43e.png
image.png
1683050-f120a9efa72442f2.png
image.png

用例只需要輸入用例name ,點選OK即可。

1683050-b59ce0b2e37ab320.png
image.png

看到測試套件前面多了個*麼?這表示他是有了新的修改,還沒有儲存。我們先儲存一下。

匯入selenium2library庫

因為RF框架編寫基於web 的測試用例,所以,我們需要selenium 的庫支援。所以,我們在使用的過程中需要載入selenium2library庫。

1683050-1fb38679b7f48fcc.png
image.png
1683050-24344ef39c87655a.png
image.png

點選Settings可以切換頁面,方便後續匯入selenium2library

可以直接在Name中輸入Selenium2Library

1683050-db94155e30c46282.png
image.png

或者直接通過Browse匯入,一般路徑是在F:\Python27\Lib\site-packages

1683050-d382147322edd6b2.png
image.png

在“測試套件”的Edit標籤頁,點選“Library”按鈕,彈出輸入框,Name輸入:Selenium2Library ,點選OK 完。

如果匯入的庫顯示為紅色,表示匯入的庫不存在。如果是黑色則表示匯入成功。

1683050-e126bc3ef73dfa17.png
image.png

編寫用例

下面就可以開始寫我們的用例了,可是怎麼寫呢?我們可以通過按F5 快捷鍵來查詢指令碼的關鍵字。如果你接觸過QTP 或 selenium IDE 等自動化工具的話,應該會有一些思路。

1683050-448d1005767724c6..png
img

如上圖,自動化指令碼從開啟瀏覽器開發,如上圖,我想開啟一個瀏覽器,想的是“open”為關鍵字進行搜尋,結果找到了一個“Open Browser”的關鍵字,點選這個關鍵字,想顯示它的用法和說明。

記得可以通過Ctrl + Alt + 空格 來聯想看有哪些關鍵字喔~

1683050-51e3ed0c9b21bc34.png
image.png

根據說明,我們來嘗試建立這個開啟瀏覽器的操作吧:

1683050-aa11114eaa85ad6d.png
image.png

“Open Browser”變藍了,說明它是一個合法的關鍵字,後面有一個方框是紅色的,表示這個引數不能預設的。通過說明資訊中,我發現它需要一個url 地址是必填的,當然還需要指定browser (預設不填為 friefox)

更多關鍵的使用,請參考相關API 文件。這裡不過多介紹。按照上面的方法。建立百度搜尋用例如下:

1683050-b66b414a9235ecdc.png
image.png

執行測試用例

勾選當前需要執行的測試用例,點選工具欄執行按鈕,如果只執行單個用例的話,也可以切換到用例的Run標籤頁,點選“start”按鈕。

1683050-53ed4694df49b5e0.png
image.png

執行資訊:

1683050-d8bfec3bb35898ca.png
image.png

執行資訊顯示會生成三個檔案:Output.xml、Log.html、Report.html

我們重點檢視Log.html和Report.html ,Log.html更關注指令碼的執行過程的記錄,Report.html更關注指令碼的執行結果的展示。

​ 趕快開啟你的測試報告看看效果吧!

1683050-0dbbc0a33d55277d.png
image.png

Q&A

但是奇怪的是ride沒有顯示Message log,而執行的時候明明已經把✔選中了

檢視log發現有這樣的報錯

1683050-da6ed40fdfb2537c.png
image.png
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

原始碼如下:

1683050-329f8be9fdb40db7.png
image.png

於是我又把檔案還原(tips:記得養成好習慣,把原檔案備份好),在sublime中Ctrl+B執行一下testrunner.py,重新啟動ride就可以顯示Message log,沒想明白為啥,神奇。。

1683050-206579a52532ca18.png
image.png

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 不是內部命令,說明環境變數設定有問題。

1683050-962338f7609f3a9b..png
img

參考

http://blog.csdn.net/tulituqi/article/details/7585387

http://www.cnblogs.com/fnng/p/3871712.html

相關文章