1. 程式人生 > >Robot Framework+RIDE+Selenium環境搭建配置及使用說明

Robot Framework+RIDE+Selenium環境搭建配置及使用說明

一 、Robot Framework+Selenium環境搭建


驗證python是否安裝成功

1.執行cmd命令:python點選回車鍵,介面如下:


2.如果提示python不是內部或外部命令時,檢查是否將python新增到path環境變數,主要將以下三個新增即可

D:\Python27;D:\Python27\Scripts;D:\Python27\Lib\site-packages;

RobotFramework安裝

1.完成以上步驟後,RobotFramework 的安裝工作已經完成,可以通過執行命令“pip list”檢視已經安裝的產品。

2.安裝完成後,驗證是否安裝成功:

執行cmd命令:ride.py點選回車鍵,介面如下:


2. 設定桌面快捷方式

D:\Python27\pythonw.exe -c "from robotide import main; main()"

 

 

二 、RIDE介面操作

1.建立

建立專案New Project

點選:File->New Project


注:選擇directory原因是,在directory的專案下可以建立測試套件,如果是tpye為file,則只能建立測試用例,這不利於用例的管理。

建立測試套件New Suite

右鍵專案Test,點選New Suite



注:選擇file原因是,在file的測試套件下可以建立測試用例,如果是tpye為directory,還得重新再繼續建file的測試套件,才能建立測試用例,因為測試用例只能在file型別下建立。


建立測試用例New Test Case

右鍵測試套件,點選New Test Case


建立完成後,最終介面如下


2.RIDE介面說明

【1】測試套件工作區

1.測試套件Edit區

大體分成4個部分:

(1)載入外部檔案

Library:載入測試庫,主要是[PYTHON目錄]\Lib\site-packages裡的測試庫

Resource:載入資源,主要是你工程相關的資原始檔

Variables:載入變數檔案,不怎麼用,可暫時忽略

(2)定義內部變數

Add Scalar:定義變數。

Add List:定義列表型變數

Add Dict:定義字典型變數

(3)元資料定義

Add Metadata:定義元資料

(4)settings

一般settings是隱藏的,點選settings按鈕,則會顯示

Documentation:文件,每一項都有。可以給當前的物件加入文件說明

Suite Setup指的是測試套件啟動的時候就執行某個關鍵字。(例:我在Suite Setup設定了Sleep | 5sec,表示等待5秒,要注意關鍵字的引數要使用 | 分隔)

Suite Teardown指的是測試套件結束的時候就執行某個關鍵字

Test Setup指的就是案例啟動的時候執行某個關鍵字

Test Teardown指的就是案例結束的時候執行某個關鍵字

Test Template:測試模版,這是可以指定某個關鍵字為這個測試套件下所有TestCase的模版,這樣所有的TestCase就只需要設定這個關鍵字的傳入引數即可

Test Timeout:設定每一個測試案例的超時時間,只要超過這個時間就會失敗,並停止案例執行。這是防止某些情況導致案例一直卡住不動,也不停止也不失敗

Force Tags:在檔案型Suite這裡還可以繼續給子元素增加Force Tags,但是他不能刪除父元素設定的tags

Default Tags:預設標記,其實和Force Tags沒啥區別的

Arguments:傳入引數

Return Value:返回值


2.測試套件Text Edit區

測試套件測試用例文字資訊


3.測試套件Run區

Execution Profile:選擇執行方式,裡面有pybot、jybot和custom script。預設pybot即可。

Start:執行案例。若該測試套件下的測試用例前無勾選,則預設執行該測試套件下所有的用例。若測試用例勾選,則執行該測試陶見下勾選的用例。

Stop:停止案例。

Report和Log: 報告和日誌,要執行之後才能點選。他們的區別,報告更多是結果上的展示,日誌更多是過程的記錄,更多使用的還是日誌。

Autosave: 自動儲存,如果不勾選,在修改了案例之後如果沒有儲存的話,執行案例時會提示是否儲存。勾選則在執行時自動儲存了。

Arguments: pybot的引數(或者jybot等)。完整版的引數可以在doc命令列輸入pybot.bat --help

Only Run Tests with these Tags: 只執行這些標記的測試案例。在case的setting裡可以新增tag。

Skip Tests with these Tags: 跳過這些標記的測試案例。在case的setting裡可以新增tag。


【2】測試用例工作區

1.測試用例Edit區

(1)settings

Documentation:文件,每一項都有。可以給當前的物件加入文件說明。

Setup指的就是案例啟動的時候執行某個關鍵字。

Teardown指的就是案例結束的時候執行某個關鍵字。

Tags:標記某個測試用例。在Run區中Only Run Tests with these TagsSkip Tests with these Tags,會通過這個標誌位來識別是否執行或跳過用例。

Timeout:設定每一個測試案例的超時時間,只要超過這個時間就會失敗,並停止案例執行。這是防止某些情況導致案例一直卡住不動,也不停止也不失敗。

Template:測試模版,這是可以指定某個關鍵字為這個測試套件下所有TestCase的模版,這樣所有的TestCase就只需要設定這個關鍵字的傳入引數即可。

(2)表格區

最重要的部分,編寫測試用例。

第一列一般寫的是關鍵詞,關鍵詞的來源包括BuiltIn庫,第三方匯入庫,自己編寫的匯入庫。

使用技巧:

通過ctrl+alt+space可以自動帶出相關關鍵字。以及相關用法,裡邊有對入參的說明。

Ctrl+滑鼠懸浮(即滑鼠在某個關鍵字上),可以直接顯示關鍵字的相關用法。

第二三四五列,一般是入參,紅色的表示必填的入參。淺灰色表示選填的入參。深灰色表示無需填寫。


輸入wait再同時按住ctrl+alt+space鍵,則可以自動帶出相關關鍵字,以及選中關鍵字的用法。



對於已輸入的關鍵字,忘了其用法,可以點選輸入框再同時按住ctrl+alt+space鍵,即可檢視該關鍵字的用法。


測試用例Text Edit區


測試用例Run區


三、Robot Framework庫

BuiltIn內建庫
首先先介紹下robotframework的庫,通過點選F5快捷鍵,目前只有內建的庫BuiltIn。


Evaluate 關鍵字:
如果你需要進行一些數值運算並得到結果,你就需要用到Evaluate關鍵字。Evaluate會把你想要計算的表示式直接傳遞給Python,並把Python的計算結果返回給你。這是最經常要用到的。

Should 系列關鍵字:
Should系列關鍵字是Should打頭的一系列關鍵字。

Should Be Empty
Should Be Equal

Should Be Equal As Integers 
Should Be Equal As Numbers

Should Be Equal As Strings
Should Be True

Should Contain
Should Contain X Times
Should End With
Should Match

Should Match Regexp 
Should Not Be Empty
Should Not Be Equal
Should Not Be Equal As Integers
Should Not Be Equal As Numbers
Should Not Be Equal As Strings
Should Not Be True
Should Not Contain
Should Not End With
Should Not Match 
Should Not Match Regexp
Should Not Start With
Should Start With
這些關鍵字都是用作判斷時用的,每個用例都會用到,比如我們的執行結果得到了一個字串,我們要判斷這個字串要與一個預期字串相等,否則用例就無法通過,這時候,肯定會用上Should Be Equal As String

關鍵字,其它關鍵字我們通過關鍵字的名字就能顧名思義,知道它的作用。點選F5可檢視某個函式的具體用法。

如Should Contain有兩個入參,下方還有具體的說明。
Should Contain item1 item2  :item2要在item1裡,比如說item1為hello  item2為he  則通過。


Convert To系列關鍵字:

Convert To Binary
Convert To Boolean
Convert To Hex 
Convert To Integer 
Convert To Number 
Convert To Octal 
Convert To String
做型別轉換,將某個值轉換為相對應的型別。


Run keyword系列關鍵字:

Run Keyword If
Run Keyword If All Critical Tests Passed
Run Keyword If All Tests Passed
Run Keyword If Any Critical Tests Failed
Run Keyword If Any Tests Failed
Run Keyword If Test Failed
Run Keyword If Test Passed
Run、Keyword If Timeout Occurred
這些關鍵字能根據一個判斷條件的真假來看是否執行關鍵字。一般使用這些關鍵字來實現高階語言中的ifelse功能。最常用的是Run Keyword If 和 Run Keyword unless 他們倆實現的效果正好相反。

Exit For Loop關鍵字:
用作退出迴圈,一般和Run Keyword If關鍵字聯合使用,來實現條件退出。


Wait Until Keyword Succeeds關鍵字:
這是一個將非同步呼叫變為同步呼叫的關鍵字。舉一個例子:如果call某個WebService,並且需要得到返回結果才能做下一部操作。我們就會用到這個關鍵字。


 
日期相關的關鍵字GetTime。
測試暫停的Sleep等。都相當有用。
RF目前僅有2個內建關鍵字:FOF 和 IN,來實現迴圈結構。功能還是比較弱的。
瞭解關鍵字的用法,直接點選F5,在Search term中,輸入關鍵字,按回車鍵,可以在下方對這個關鍵字的入參用法進行說明。

第三方庫

只有內建的庫往往還不能滿足需求,還可以匯入第三方庫,如操作頁面的Selenium2Library。第三方庫,主要是[PYTHON目錄]\Lib\site-packages裡的庫,一般安裝的庫會在此目錄下。在測試套件下的工作區的右方,點選Library,在彈出框的name欄輸入“Selenium2Library”,點選OK即可。
當工作區的Library那一行黑色顯示,說明匯入成功(如果顯示紅色說明匯入不成功,可自行百度解決)。
點選F5快捷鍵檢視,可檢視多了一個Selenium2Library的庫。




selenium2關鍵字:

1.Open Browser  開啟瀏覽器

2.Close Browser  關閉瀏覽器

3.Maximize Browser Window 瀏覽器最大化

4.Get Window Size設定瀏覽器寬 高

5.Get Window Position設定瀏覽器位置

6.Input Text 文字輸入

7.Click Button 按鈕點選

8.Click Element 點選元素

9.Wait Until Element Contains  等待元素出現

  需要傳入元素定位,等待時間以及錯誤資訊

10.Get Title 獲取當前頁面的title

11.Get Text 獲取文字資訊

12.Get Element Attribute 獲取元素屬性 Get Element Attribute  [email protected]     先定位元素然後獲取@後面的屬性的值

13.斷言:

可以看到有判斷是否為空,是否相等,是否為真,是否包含等等。

14.表單切換和退出

15.下拉框的相關關鍵字
有多選按鈕,表,按表下標,按表的值等等。

1.實用函式
關鍵字 含義 例項 備註
Click Button 點選按鈕 Click Button 登出 這裡“登出”的class屬性,必須是Button
Click Element 點選元素 Click Element [locator] Locator可以是resource-id,也可以是xpath;但必須是當前頁面唯一存在的;一般用該關鍵字可以完成所有元素點選
Click Text 點選文字 Click Text 我的 “我的”需要是當前頁面唯一存在的
Input Text 在指定元素中輸入文字 InputText [locator] 111111 Locator可以是resource-id,也可以是xpath
Swipe 滑動螢幕 Swipe 1000 1800 100 1800
Get Text 獲取某標籤內容 ${account}Get Text  [locator]   獲取內容後儲存到指定變數中,從而在後續指令碼中呼叫該內容

2.校驗函式

關鍵字 含義 例項
Element Should Be Enabled 檢查元素是否可用/可見 ElementShould Be Enabled  [locator]
Page Should Contain Element 檢查介面包含某些元素 Page Should Contain Element   [locator]
Page Should Contain Text 檢查介面包含某些文字資訊 Page Should Contain Text  預約掛號
Page Should Not Contain Element 檢查介面不包含某些元素 Page Should Not Contain Element  [locator]
Page Should Not Contain Text 檢查介面不包含某些文字資訊 Page Should Not Contain Text  預約掛號

3.等待函式

關鍵字 含義 例項 備註
Wait Until Page Contains 等待直到介面中包含某些文字,才進行下一步 Wait Until Page Contains  預約掛號 預設等待時間為5s
Wait Until Page Contains Element 等待直到介面中包含某些元素,才進行下一步 Wait Until Page Contains Element   [locator] locator可以是resource-id,也可以是xpath
Wait Until Page Does Not Contain 等待直到介面中不包含某些文字,才進行下一步 Wait Until Page Does Not Contain  預約掛號
Wait Until Page Does Not Contain Element 等待直到介面中不包含某些元素,才進行下一步 Wait Until Page Does Not Contain Element  [locator]

4.其他函式

條件判斷

關鍵字:Run Keyword If
用法:
Run Keyword If
…ELSE IF   
…ELSE

檢查某關鍵字的返回狀態
關鍵字:Run Keyword And Return Status
返回值:布林值,True False
通常和Run Keyword If關鍵字搭配使用 
${isMessage} Run Keyword And Return Status Wait Until Page Contains Element [locator]
Run Keyword If ${isMessage} do something
含義  :判斷當前介面中是否存在取消按鈕;如果存在,則do something

For迴圈
關鍵字:For
例項:
1)For迴圈單獨使用時

2)For迴圈巢狀Run Keyword If語句,退出迴圈

自定義關鍵字
建立方法:測試專案-New Resource-New User Keyword

匯入自己編寫的庫
比如說有些功能想自己編寫,比如說如下程式碼,想要匯入實現獲取驗證碼的功能,檔名為clay.py(英文格式命名),該檔案儲存在D:\Python27,此時需要將該路徑新增到[python安裝路徑]\Lib\site-packages下的字尾名為pth的檔案(英文格式命名)中。