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