robot frame基礎知識--變量


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的參數因為變量文件

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM