每個變數都可以用變數識別符號
來進行表示,變數識別符號在之前使用者關鍵字的地方介紹了一下,scalar變數用 $ 作為識別符號,list型變數用 @ 作為識別符號,不過這只能作為乙個初步的區分,因為同樣在之前的文章裡,大家應該也看到了,使用$ 的變數,實際上也可以在接收list值後轉化成list變數。轉化的內容會在list變數裡介紹。
其實這裡沒有什麼特別的變數宣告,因為rf底層是python,所以他的語法也有些類似,變數不需要特定宣告,只要有初始化賦值即可使用。
如果硬要說有宣告,那可以把我們在testsuite下面手動新增的變數理解為宣告吧。比如我們可以在testsuite上點右鍵或者在edit區點add scalar或add list來新增變數。
實際上也可以看做另一種形式的變數賦值,一般相當於使用set variable進行初始化賦值。
賦值也是有幾種的,根據自己的需求進行處理吧。
通常這種方式主要使用set variable或類似的使用了set的關鍵字對變數進行賦值。例如:
主要用於返回值上,包括系統關鍵字的返回值和使用者關鍵字的返回值(從廣義上說,set那個也是返回值),例如:
之前的使用者關鍵字裡也有很多例子。
詳見流程與資料分離最後一篇,使用小v 的argument。
特別注意:如果乙個變數沒有經過賦值,使用時會報錯的。
通常情況下,每個變數預設都是區域性變數。
乙個case裡的變數,作用域在這個case內部;
乙個userkeyword裡的變數,作用域在這個userkeyword內部;
乙個檔案型suite裡的變數,作用域在這個suite內部,所有下面的case也都可以使用。
乙個目錄型suite裡的變數,作用域在這個目錄內,他下面的檔案型suite是無法使用的,所以一般在目錄下新增變數沒有太大意義。
作用域是可以修改的,即通過一些系統關鍵字,對變數進行作用域的設定,常用的關鍵字有:
set global variable ——設定全域性級變數
set suite variable ——設定suite級變數
set test variable ——設定case級變數
其實使用變數我覺得不需要說太多了,變數的賦值可以看一下使用者關鍵字的返回值部分,裡面的單個返回值和多個返回值其實就是給單個變數賦值和多個變數賦值的例子了。
這裡再列幾種之前沒有寫過的例子吧。
例如這樣寫,在第二行的判斷中可以直接寫判斷條件,現在的條件成立,於是執行結果如下:
如果想把變數作為乙個字串的一部分,可以直接這樣寫
執行結果如下:
實際上預設情況下rf裡的變數都是字元型的,並且兩個字串連線不要加什麼符號,直接連起來就行了。
如果你寫成aaa+$bbb,最終結果就是aaa+123bbb,他會把你寫的任何內容都當作字串的。
看了上面的例子之後,可能有人說我想用123作為數值進行計算該怎麼用。
這裡要用到乙個關鍵字evaluate。先看個例子:
執行結果如下:
他的作用是可以讓你載入python的一些庫,依賴於python的語法,相當於直接執行對應的python語句得到結果。
像上面的例子沒有載入庫,因為加減乘除這些是python基本庫就有的。下面放乙個載入python庫的,如下圖,他載入了random和sys兩個庫,並使用相應的語句生成乙個隨機數。
使用let宣告變數
es5宣告變數的問題 1.全域性變數掛載到全域性物件 全域性物件成員汙染問題。let宣告的變數不會掛載到全域性物件。2.允許重複的變數宣告,導致變數被覆蓋。let宣告的變數不允許當前作用域範圍內重複宣告。3.變數提公升 怪異的資料訪問,閉包問題。使用let不會有變數提公升,因此,不能在定義變數之前使...
python變數與宣告
變數的宣告 python中變數的宣告需要遵循一下幾點 1 字母 數字 下劃線 2 首字母不能為數字 3 不能有空格,大小寫敏感。比如 合理的變數宣告 my name python name 1 pypi my name python n1ame 123無效的宣告 2things this is sp...
變數宣告提前與函式宣告提前
變數的宣告提前 在全域性作用域中,使用var關鍵字宣告的變數會在所有的 執行之前被宣告,但是不會賦值。所以我們可以在變數宣告前使用變數。但是不使用var關鍵字宣告的變數不會被宣告提前。在函式作用域中,也具有該特性,使用var關鍵字宣告的變數會在函式所有的 執行前被宣告,如果沒有使用var關鍵字宣告變...