(1)Action(步驟) - Keyword, 存在2大類Keyword
- Librarykeywords - 通常來自標準類庫或第三方類庫
- Standard Libraries
- External Libraries
- SeleniumLibrary
- SwingLibrary
- 自定義的libraries - http://robotframework.googlecode.com/svn/tags/robotframework-2.5.6/doc/userguide/RobotFrameworkUserGuide.html#creating-test-libraries
- External Libraries
- User keywords - 通過Keyword table創建,來源是Library keywords, user keywords可以與test case位於同一文件內或是作爲單獨的一個文件導入到test case的文件中;
- 這類的Keyword可以想像成把若干Library keywords集合到一起,形成一個新的keyword,新keyword可以完成一步或幾步action,其作用類似於編程中的函數或類。
- 這類的Keyword可以想像成把若干Library keywords集合到一起,形成一個新的keyword,新keyword可以完成一步或幾步action,其作用類似於編程中的函數或類。
- 在接下來的文章中,主要是針對SeleniumLibrary及BuiltinLibrary進行介紹。
(2)Argument - 可以是變量或常量
- Argument與任何語言中的參數作用是一樣的,其主要的目的就是爲keywords傳遞數據。
- 一個keyword可以有0個或多個Arguments。
- Robot中參數類型有以下幾種,這種分類是從Python中借鑑而來的:
- Required Argument =(Positional Arrangement位置參數)以正確的定位順序及數量來傳入函數的,順序改變了或數量不正確就不能完成參數的傳遞
- Examples: - Login
- Examples: - Login
- Required Argument =(Positional Arrangement位置參數)以正確的定位順序及數量來傳入函數的,順序改變了或數量不正確就不能完成參數的傳遞
***Test Case*** TC1 [Documentation] User can create an account and log in Create Valid User username1 password123 Attempt to Input with Credentials username1 password123 Status Should Be Logged In |
- username1/password123/Logged In 都是位置參數
- 有些Keyword也可以沒有參數
- Named Argument(關鍵字參數)- 如果命名了參數,可以不按順序傳遞參數
***Test Case*** TC2 [Documentation] Named Argument Example Keyword arg2=xxx arg3=yyy |
- Default Argument - 默認參數是一個已經賦值的關鍵字參數,如果在函數調用時沒有給出值,那麼這個賦值就會被傳遞。
如:OperatingSystemlibrary中有一個關鍵字Create File,這個關鍵字有3個參數path, content=,encoding=UTF-8 當使用這個關鍵字時,path參數必須存在,content及enconding可以不輸入,如果不輸入則意味着content爲空,encoding是UTF-8;如果輸入了則按輸入的值傳遞 ***Test Case*** TC3 [Documentation] Default Argument Create File ${TEMPDIR}/empty.txt Create File ${TEMPDIR}/utf-8.txt Hyvä esimerkki Create File ${TEMPDIR}/iso-8859-1.txt Hyvä esimerkki ISO-8859-1 |
- Argument可以是常量也可以是變量
如上述 Create File Keyword, encoding可以是常量如ISO-8859-1,也可是使用變量。 假設我現在有一個encoding的列表,列表中的值有ISO-8859-1,UTF-8,GBK等等,每次取值都是不一樣的。 在Robot中,我們可以將encodning定義爲列表 @{encoding}=ISO-8859-1 UTF-8 GBK 當調用Create File這個Keyword時,我們需要傳一個變量,即@{encoding}[0],@{encoding}[1] |
- Argument接收的變量可以是一個值,也可是一個對象
Python及C中均有*varargs概念 Robot中的Join Paths keyword,其Argument有2個,分別是*paths,base *path意味可以傳遞任意數量的變量; base只是傳遞一個變量 |
- 以上類型的參數可以同時存在,但是有一定規則:
- Required Argument(位置參數)必須放在Named Argument(關鍵字參數)之前
- Required Argument(位置參數)必須出現在任何一個默認參數之前
- 如果參數一個對象(即列表或元組),則其必須放在Required Argument(位置參數)和Default Argument(默認參數)之後