1. 程式人生 > >變量表中宣告變數

變量表中宣告變數

變量表中宣告變數

首先我們要建立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都是用/表示