robot frame基礎知識--變量
一、變量與常量基礎
1、變量標識符:(1)Scalar 用$做標識符 ${val} (2)List:用@做標識符 @{lval}
2、變量聲明:RF變量一般不需要特別聲明,只要有初始值即可使用,硬要有聲明可以在TestSuite中手動添加變量聲明。操作步驟,在TestSuite中右鍵點擊“Add Scalar”或者‘AddList’按鈕來添加如圖:其實實際上也是變量賦值的一種形式
3、打印變量:log/log many分別適用於Scalar變量跟List變量
4、變量作用域:
(1)case的變量作用域在case內 (2)userkeyword的變量作用域在userkeyword內 (3)文件型suite變量作用域在該suite內,包含其下所有case
(4)目錄型suite,作用域在該目錄下但只在目錄內,其下的文件型suite是無法使用的,所以一般不再目錄suite添加變量
5、改變作用域:
(1)Set Global Variable:設定全局變量,作用於所有的測試案例跟測試套件
(2)Set Suite Variable:設定File Suite級變量,在當前file suite 內有效
(3)Set Test Variable:設定case級變量,在當前case有效
6、常量
常量有:環境變量。數值常量、特殊字符常量、系統保留常量,其中環境變量的標識符為:%,其他都為:$
運行結果:
備注:常用的特殊字符常量有:${/}、${:}、${EMPTY}、${False}、${None}、${null}、${SPACE}、${True}、
二、Scalar變量
1、Set賦值:Set Variable關鍵字賦值,及其Set相關帶Variable的關鍵字也可以進行賦值
示例1:第一個變量${val2}賦值為:abcd 示例2:${valif2}判斷如果${val2}的值和abcd相等,就將efgh賦值給${valif2},不相等則賦值:ace
2、Get賦值:主要用於返回值,包括系統關鍵字的返回值和用戶關鍵字的返回值
示例1:獲取變量${val2}的長度 示例2:獲取時間
3、命令賦值:使用 “-v” 的參數給變量賦值
在run界面的Arguments輸入:-v val1:running 表示val1賦值為running,那么打印結果就是running而不是前面原先定義的value
4、變量使用
(1)在判斷中使用:
${valif2}判斷如果${val2}的值和abcd相等,就將123456賦值給${valif2},條件不成立,則不會有任何操作
(2)字符串使用:
1、字符串拼接 : hwt${val2}test,字符串拼接不需要加“+”號
2、字符串截取:${val2[2]},${val2[0:2]},打印結果為:c,ab
3、參與運算:Evaluate
(1)數值計算
結果:
(2)字符串形式的數值
結果:
三、List變量
1、變量賦值:可用Set Variable賦值,但正式的賦值還是 Create List
結果:
2、變量的使用:
在使用上,最直觀的看關鍵字的參數是Scalar還是List,區別就是看變量名前面是否有*號,可以通過Run Keyword關鍵字演示體現,如下圖:
這個關鍵字有兩個參數,name、*args。name就是支持傳入Scalar變量的參數,*args就是支持可以傳入List變量的。Run Keyword這個關鍵字的作用就是傳一個name的參數,這是要執行關鍵字的名字,*args就是要執行關鍵字的參數,因為每個關鍵字所需要的參數個數是不定的,所以這里用了可變個數的參數。
List變量其實是不定個數的,它有幾個元素,就相當於有幾個Scalar變量。下面結合log 關鍵字:
備注:並不是說沒有星號就不能用List變量,只要是變量個數和List變量里元素的個數相同,就可以用List傳值。比如像Log這個關鍵字,它有2個Scalar型的傳入參數,如果想傳入List也是可以的,但是必須是一個有2個元素的List。另外,因為Log的第二個參數有默認值,所以如果傳入1個元素的List也是可以的。
綜上,對於有多個參數的關鍵字,可以按照需要傳入多個Scalar變量,也可以傳入List變量,但是List的元素個數必須要滿足關鍵字需要的最少參數個數,根據自己的需要選擇合適的方式。
3、List元素的使用
(1)List變量元素獲取方式:1、@{變量名}[index] 2、${變量名[index]}
一維List:
結果:
(2)二維List:
結果:
注意:為啥@{listC}[1][1]的結果是: [u'dajiahao', u'xiexie'][1],而不是xiexie,因為多維List的正確寫法是:@{listC[1]}[1]
四、變量的轉換
1、List變量轉換成Scalar變量:@{argval4} 換成 ${argval4}
2、Scalar變量轉換成 List變量:
3、變量轉換的限制:一個變量要轉換成另一類變量,只要目標變量值沒有初始化或者賦值過,就可以進行轉換,如果目標變量已經初始化或者賦值過,就無法進行轉換。
五、其他變量:
Dictionary變量:跟List類似,List是每個元素是一個值,而Dictionary每個元素是一對值例如:{key:value,key1:value1,key2:value2},一個key對應一個value,key不能重復
對象變量:對象變量在接口測試中的Request測試庫,假設${return}是接口返回的對象,對象的狀態是${return.STATUS},對象內容就是${return.CONTENT}
六、變量文件:
變量文件只支持Python的.py文件
引入變量文件方式:
1、跟添加Library、Resource變量一樣添加Variable文件 2、在Suit的Import引入變量文件 3、通過-V的參數因為變量文件