變量表中宣告變數
變量表中宣告變數
首先我們要建立Variables表
***Variable***
${MgrloginUrl} http://localhost/mgr/login.html
${StudentLoginUrl} http://localhost/student/login/login.html
rf變數可以在用例裡面定義,也可以在變量表裡面定義
rf中的變數可以在測試套件檔案中宣告一個變量表。寫法就是這樣:Variables,對套件裡的所有的測試用例都是有效的
*** Settings *** *** Variables *** ${MgrloginUrl} http://localhost/mgr/login.html ${StudentLoginUrl} http://localhost/student/login/login.html *** Test Cases *** case1 log to console ${MgrloginUrl} log to console ${StudentLoginUrl} case2 log to console ${MgrloginUrl} log to console ${StudentLoginUrl}
定義好了之後,只要改變變數就行
rf支援4種類型的表
Settings表:配置表;
Test Case:用例表;
Keywords:關鍵字表;
Variable:變量表。
List變數
- @{database} 127.0.0.1 3306
Dict變數
- ${user1} name=auto pw=sdfsdfsdf
使用整個變數
*** Variables *** ${MgrloginUrl} http://localhost/mgr/login.html ${StudentLoginUrl} http://localhost/student/login/login.html @{database} 127.0.0.1 3306 &{adminuser} name=auto pw=sdfsdfsdf *** Test Cases *** case1 log to console ${database} #這樣使用整個列表$ log to console ${adminuser} #這樣寫使用整個字典
#結果:['127.0.0.1', '3306'] name=auto pw=sdfsdfsdf
如果只想使用變數裡面的單個的元素、
*** Variables *** ${MgrloginUrl} http://localhost/mgr/login.html ${StudentLoginUrl} http://localhost/student/login/login.html @{database} 127.0.0.1 3306 &{adminuser} name=auto pw=sdfsdfsdf *** Test Cases *** case1 log to console @{database}[1] #這樣使用單個的埠號 log to console &{adminuser}[name] #這樣寫使用單個名字
#結果:3306 auto
使用者關鍵字為什麼放到資原始檔裡面?就是複用性高,如果變數也是想在整個套件中使用。也可以放到資原始檔裡面
同樣也是要在*** Settings ***裡面Resource xx.robot 和關鍵字一樣在同一個檔案裡,關鍵字申明過了,就行了
(定義字典關鍵字的圖)
實際專案中可以弄一個使用者關鍵字的keyword.robot的配置檔案;在弄全域性配置項config.robot配置檔案。便於讀寫,便於維護
在用例的* Settings *表裡面申明兩個檔案
也可以把變數檔案寫在python檔案裡面,用關鍵字Variables 同一個路徑下面直接Variables xxx.py (也可以用絕對路徑,但是不建議使用)。Variables搜尋檔案的時候。會在用例的同級目錄下面找,如果找不到就在python的模組的搜尋路(標準庫,python.path)裡面找。目錄間的分割符是斜槓,不是點。
(有圖)
單獨加上來的
相對路徑最好不要相對當前的檔案的路徑,最好相對當前專案的根目錄。這時候所有的關鍵字檔案,變數檔案,都能找到。只要把rf專案的根目錄作為py的模組搜尋路徑,就能解決這樣的問題。不會因為層級的變化。而導致申明檔案失敗。所有的匯入路徑都是基於專案的根目錄。
使用相對路徑的時候,RF搜尋規則和資原始檔搜尋規則一樣:
先在相對當前檔案的目錄,匹配搜尋
在python的模組搜尋路徑中搜索,可以用–pythonpath引數 (意思就是在pythonpath裡面添加當前目錄的路徑)
Python擴充套件關鍵字
Python模組作為測試庫
模組檔名作為測試庫的名字
比如Python模組叫MyLibrary,對應的Python檔案是Library.py。那麼測試庫名字就是MyLibrary
定義在Python模組檔案中的函式,名稱前有_字首的不會作為關鍵字
def returnlist():
return[1,2]
def _returnlist(): #不會作為關鍵字的,有下劃線就不可以
return[1,2]
申明Library的時候,最好是用點形容路徑。
而Resourse,Variables都是用/表示