RF申明變量:python
首先咱們要建立Variables表api
*** Settings ***less
${LoginUrl} http://cloud.innovpowerf.com/Account/Login
函數
${StudentLoginUrl} http://localhost/student/login測試
@{database} 127.0.0.1 3306 ----------------List變量命令行
&{user} name=username pw=password ------------------Dict變量資源
使用變量文件:get
能夠使用python模塊文件提供公共變量給RF使用,只須要直接定義變量就能夠了。語法徹底就是python語法。如:class
StudentLoginUrl = 'http://localhsot/studfent/login'import
RF申明使用變量文件:
*** Setings ***
Variables ../cfg/cfg.py
*注意* :變量文件申明時,能夠使用絕對路徑,也能夠使用相對路徑。
使用相對路徑時RF搜索規則和資源文件搜索規則同樣:
- 先在相對當前文件的目錄 匹配搜索;
- 在python的模塊搜索路徑中搜索,能夠用 --python參數 如:robot --python .tc/t1.robot
命令行參數指定變量文件:robot --variablefile cfg\cfg.py tc/t1.robot
也能夠設置全局變量而後執行(寫成全局的配置文件):
set pythonpath=.
robot tc/t1.robot
python擴展關鍵字:
python模塊做爲關鍵字:模塊文件名做爲測試庫的名字
好比 python模塊叫MyLibrary,對應的python文件就是MyLibrary.py,那麼測試庫的名字就是MyLibrary
定義在python模塊文件中的函數,名稱前有_前綴的不會做爲關鍵字
def returnList1():
return[1, 2]
def _returnList2():
return[1, 2]
要保證其在python模塊的搜索路徑中,這樣RF才能找到它。
* 直接設置環境變量
* 用 --python參數 如:robot --pythonpath lesson1 lesson1/tmp.robot
若是在lesson裏面的某個目錄中執行呢? 如 robot --pythonpath .. ../tmp2.robot
RF使用關鍵字的時候: - 中間能夠加上任意的空格
- 大小寫也能夠任意
本身定義關鍵字的時候:以下
from robot.api.deco import keyword # 裝飾器
@keyword
def returnList():
return[1, 2]
python類做爲測試庫:
* 好比:python文件是tlib2.py
class SubLibrary:
def returnInt(self):
return 3
def _returnInt(self)
return 4
* 申明
*** Settings ***
Library tlib2.SubLibrary
* 該類中的成員方法,名稱前有_前綴的不會做爲關鍵字
* 導入時的參數,對應類的初始化方法
* 若是類和模塊文件同名,申明的時候就能夠省略後面的類名
python 擴展庫的搜索規則:
徹底是按照python的模塊的搜索規則來的
- 若是在包內,pylib/login/rightpass.py
*** Settings ***
Library pylib.login.rightpass
---------------------------------------------------------------------
Library pylib/login/rightpass.py
- 在Settings中 申明資源文件和變量文件:
路徑、目錄之間的分隔符,不用點 . 而是用斜槓 /
- 在Settings申明測試庫:
路徑、目錄之間的分隔符,能夠用點 . 也能夠用斜槓 /
路徑分隔符 用點後面不加py,用斜槓後面加.py