1. 程式人生 > >Robot Framework (六)變量和常量

Robot Framework (六)變量和常量

http 變量名 技術 ctr 圖1 true stat 處理 mac系統

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變量

  

Robot Framework (六)變量和常量