Robot Framework-3

Robot Framework組成Test Case的要素:
(1)Action(步驟) - Keyword, 存在2大類Keyword
    • External Libraries
      • SeleniumLibrary
      • SwingLibrary
      • 自定義的libraries - http://robotframework.googlecode.com/svn/tags/robotframework-2.5.6/doc/userguide/RobotFrameworkUserGuide.html#creating-test-libraries
  • User keywords - 通過Keyword table創建,來源是Library keywords, user keywords可以與test case位於同一文件內或是作爲單獨的一個文件導入到test case的文件中;
    • 這類的Keyword可以想像成把若干Library keywords集合到一起,形成一個新的keyword,新keyword可以完成一步或幾步action,其作用類似於編程中的函數或類
  • 在接下來的文章中,主要是針對SeleniumLibrary及BuiltinLibrary進行介紹。

(2)Argument - 可以是變量或常量
  • Argument與任何語言中的參數作用是一樣的,其主要的目的就是爲keywords傳遞數據。
  • 一個keyword可以有0個或多個Arguments。
  • Robot中參數類型有以下幾種,這種分類是從Python中借鑑而來的:
    • Required Argument =(Positional Arrangement位置參數)以正確的定位順序及數量來傳入函數的,順序改變了或數量不正確就不能完成參數的傳遞
      • Examples: - Login
***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個,分別是*pathsbase
*path意味可以傳遞任意數量的變量; base只是傳遞一個變量
  • 以上類型的參數可以同時存在,但是有一定規則:
    • Required Argument(位置參數)必須放在Named Argument(關鍵字參數)之前
    • Required Argument(位置參數)必須出現在任何一個默認參數之前
    • 如果參數一個對象(即列表或元組),則其必須放在Required Argument(位置參數)和Default Argument(默認參數)之後

發佈了40 篇原創文章 · 獲贊 22 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章