Robot Framework (六)變量和常量


 

018-08-30  08:39:52

一、變量與常量基礎

1.變量標識符

  每一個變量都可以用    變量標識符{變量名}   來表示。

  Scalar變量    ${var}  單值變量  單值並不僅僅是像字符串、數值這樣的,還有可能是個對象或者字典

  List變量   @{var}    多值變量  只有帶@的變量才能夠確認是List型變量,帶$的變量取決於它的變量值,才能確定是什么變量,因為變量之間是可以相互轉換的

2.變量聲明

  RF的底層是Python,變量不需要特別聲明,只要有初始化賦值即可。

  在Test Suite下面可以通過“Add Scale", "Add List"來初始化賦值。

  在Test Case中用Log, Log many 來打印Scalar, List變量。如圖:

  

  

  

  

  

  

  

3.變量的作用域

  默認情況下,變量的作用域為:

  • 一個case里的變量,作用域在這個case內部
  • 一個File  Suite里的變量,作用域在這個Suite內部
  • 一個userkeyword里的變量,作用於在這個Userkeyword內部

  變量的作用域是可以改變的,通過關鍵字的處理:

  • Set Global Variable 設定全局級變量。作用域在所有的測試用例和測試套件里都有效
  • Set Suite Variable 設定File Suite級變量。作用域在當前的File Suite里有效
  • Set Test Variable 設定Case級變量。作用域在當前Case內有有效

4.常量

  1)環境變量:標識符為 % ,無論是Windows系統還是Mac系統都可定義自己的環境變量,RF可以打印出Windows or Mac系統的環境變量,但是不可更改

  

  

 

  2)數值常量:

  在RIDE里所有字符都會被當作字符串,打印出來是u'2.6', u'ABC' 這樣子unicode字符串

  如果想讓一個數字以數值的形式存在,要寫成 ${2.6} ,如圖:

  

  

  說明:這里其實是定義了一個 list 變量,用 scalar 的形式展現出來,所以說單值變量的變量類型取決於變量值。

  3)特殊字符常量、系統保留常量

  在Case里雙擊一下空白的單元格,按“Ctrl+Alt+空格”,如下圖:

  

  特殊字符常量主要有${/}  ${:}  ${EMPTY}  ${Space}  ${False}   ${True}   ${None}   ${null}  ,其余都是系統保留常量

  這里面每個常量的值都可以在右邊的提示框里看到其Value, 如果值為空的(除了EMPTY) 在運行時才有它的值。

 

二、Scalar變量

  1.變量賦值

  1)Set Variable, Set Variable If

  

  

  Set Variable If 判斷 ${var2} 和 abcd 的值,如果相等,則賦值 ${varif2} 為efgh, 如果不相等,則賦值  ${varif2} 為ace

  2) Get Length, Get Time

  Get length 是獲取字符串的長度, Get Time 是獲取時間,如圖:

  

  

  3)命令行賦值

  在Run界面的 Arguments里加上一行:-v val1:running, 然后再 Log ${val1}, 看運行結果(從value變成了running)

  

  

  

  2.變量的使用

  1)在判斷中使用,Run Keyword If

  若判斷條件成立,則運行后面的關鍵字,若判斷條件不成立,則不會做任何操作

  如圖1,2為成立,圖3,4為不成立

  

  

  

  

  

  

  2)當字符串使用

  字符串的連接,如: Log     123${var1}efgh

  字符串的截取,如:想截取 ${var2} 的第三個字符,和第一到三個字符,寫成 Log   ${var2[2]},   Log   ${var2[0:3]}, 字符串的索引下標是從0開始的

  

  

  3)參與運算, Evaluate

  

  

  

  

  

三、List變量

  1.變量賦值 Create List

  

  

  2.變量的使用

  F5查看關鍵字 Run Keyword 的使用說明,對於可傳入的參數前面有*(*args 代表不定長參數),就可以用List變量,或者要求傳入多個參數的關鍵字,也可以用List變量,但是List元素個數必須滿足關鍵字所需要的最少參數個數。

  Run Keyword 關鍵字的使用:后面接關鍵字名,所用的關鍵字需要傳入的參數

  

  

  

  3.List 元素的使用

  @{list}[index], 元素的下標從0開始

  ${scalar[index]}, 總結:list 元素的下標在外面, scalar 元素的下標在里面

  

  

 

四、變量的轉換

  系統會默認 @{var2} 是 ${var2} list 形式, ${var2} 是 @{var2} 的scalar 形式。

  轉換的限制:被轉換的變量要進行賦值(初始化)后,才能進行轉換。如果沒有進行過賦值,在RIDE里會用”紫色“表示。

 

五、其他變量

  Dictionary 變量:每個元素是一對值,一個Key 對應一個 Value, Key 不能重復。鍵值對用逗號隔開。

          例如:{key1:value1, key2:value2 }

  對象變量:將在接口測試 Request 測試庫里用到, 假設 ${return} 是接口返回的對象,更多時候使用的是對象的屬性值,例如:${return.STATUS}   對象的狀態   ${return.CONTENT}  對象的內容

 

 六、變量文件

  前面介紹了如何在 Suite 中導入 Library, Resource, 其實還可以導入 Variables 變量文件, 變量文件只支持導入Python的py文件。

  

  例如:

  import random 

  __all__=['scalar', 'LIST__var', 'interger']

  scalar= 'hello world'

  LIST__var=['hello', 'list', 'world']

  interger=random.randint(1,10)

  有幾點要注意的,__all__是用來列出這里有哪幾個變量的,LIST__var 真實的變量名是var, 只是用LIST__來標明是個list變量, 其他的都是Scalar變量

  

 


免責聲明!

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



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