日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【转】Robot Framework 快速入门

發布時間:2025/7/14 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【转】Robot Framework 快速入门 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

介紹

概述

安裝

運行demo

介紹樣例應用程序

測試用例

第一個測試用例

高級別測試用例

數據驅動測試用例

關鍵詞keywords

內置關鍵詞

庫關鍵詞

用戶定義關鍵詞

變量

定義變量

使用變量

組織測試用例

測試套件

啟動和卸載

使用標簽

創建測試庫

?

?

?

介紹

概述

Robot Framework?是一個關鍵詞驅動的自動測試框架。測試用例位于HTML或者TSV(以tab分隔值)文件,使用在測試庫中實現的關鍵詞來在測試中運行程序。因為Robot Framework?是靈活和可擴展的,所以它很合適用于測試具有多種接口的復雜軟件:用戶接口,命令行,web service,編程接口等。

Robot Framework?是開源軟件和安裝包,源碼和相關文檔可通過http://robotframework.org獲得。本篇指南計劃介紹Robot Framework?的基本概念。如果需要詳細的技術描述,請查閱Robot Framework User Guide.

安裝

安裝Robot Framework?的前提是Python被安裝。另外,需要使用用Java編寫的測試庫,?Jython?必須被安裝。對使用本篇快速入門來說Pyhon已經足夠了。

共有三種不同的安裝Robot Framework?的方法,從而可以選擇最合適你的方式。詳細安裝說明可以在project web pages上找到.

  • 有用于windows平臺的二進制安裝包。雙擊安裝包按照提示安裝即可。
  • 在所有平臺上Robot Framework?都可以從源碼安裝。想要安裝源碼,解壓源碼發行包運行命令python setup.py install??。
  • 如果Python包管理系統Easy Install?可以使用, Robot Framework?可以通過命令easy_install robotframework?安裝。在windows下你可以手動運行robot_postinstall.py?腳本。
  • 框架安裝好后,將包含有啟動腳本的安裝目錄添加到PATH環境變量中。在UNIX-like?系統中應該可以自動完成,但在windows系統必須從?Control?Panel?>?System?>?Advanced?>?EnvironmentVariables?添加如下例子.?C:/Python25/Scripts?to?PATH.

    安裝成功后可以用命令pybot –version測試,應該輸出如下:

    $ pybot --version

    Robot Framework 2.0.3 (Python 2.5.2 on linux2)

    運行demo

    本篇快速入門指南使用一個可執行的demo。為了運行它啟動一個命令shell,cd到本文件目錄,在命令行輸入下面的命令:

    pybot quickstart.html

    在本文件內的測試將被執行并產生如下報告:

    report.html

    測試結果概述

    log.html

    測試結果細節

    output.xml

    以輕型XML保存的測試結果,便于與其他工具集成

    在瀏覽器中打開?report.html?(此鏈接只有在本指南被執行后才能工作),?然后打開此鏈接查看結果。report.html?文件鏈接著?log.html?文件。

    有一些命令行選項可以用來控制測試執行和產生的結果。完整列表可以使用pybot –help?來顯示。例如如下命令修改了日志文件和頂層測試套件的名字:

    pybot --log mylog.html --name My_Fine_Tests quickstart.html

    注意

    使用jybot啟動腳本執行本快速入門指南不能與Jython 2.2工作。使用Jython2.5執行需要使用-Dsys.executable?選項設置可執行文件。

    介紹樣例應用程序

    本篇指南的樣例應用程序是一個經典登陸樣例的變種:?它是一個使用Python編寫的基于命令行的認證服務器。 樣例應用允許用戶做三件事情:

    • 使用有效的密碼創建一個用戶。
    • 使用有效的用戶名和密碼登陸。
    • 修改已存在賬戶的密碼。

    應用程序在sut目錄下,可以使用命令python sut/login.py?來執行。嘗試使用不存在的用戶賬戶或者錯誤密碼登錄將會長生同樣的錯誤信息:

    > python sut/login.py login nobody P4ssw0rd

    Access Denied

    在使用有效的密碼創建一個用戶賬戶后成功登錄:

    > python sut/login.py create fred P4ssw0rd

    SUCCESS

    ?

    > python sut/login.py login fred P4ssw0rd

    Logged In

    一個有效的密碼必須滿足兩個要求:?它必須是7-12?字符長,?它必須包含大寫或者小寫字母和數字,但是不能包含特殊字符。嘗試使用非法的密碼創建用戶會失敗:

    > python sut/login.py create fred short

    Creating user failed: Password must be 7-12 characters long

    ?

    > python sut/login.py create fred invalid

    Creating user failed: Password must be a combination of lowercase and

    uppercase letters and numbers

    使用非法信任狀修改密碼會產生和使用非法信任狀登錄一樣的錯誤。新密碼的有效性將會被驗證,如果不合法如下錯誤信息會被顯示:

    > python sut/login.py change-password fred wrong NewP4ss

    Changing password failed: Access Denied

    ?

    > python sut/login.py change-password fred P4ssw0rd short

    Changing password failed: Password must be 7-12 characters long

    ?

    > python sut/login.py change-password fred P4ssw0rd NewP4ss

    SUCCESS

    本應用程序使用一個簡單的數據庫文件來追蹤用戶的狀態。文件在操作西洞庭的臨時文件目錄。

    測試用例

    第一個測試用例

    Robot Framework?測試用例使用一種簡單表格語法。下表含有兩個樣例:

    • 用戶可以創建賬戶并登入
    • 用戶使用錯誤密碼無法登入

    Test Case

    Action

    Argument

    Argument

    User can create an account and log in

    Create Valid User

    fred

    P4ssw0rd

    ?

    Attempt to Login with Credentials

    fred

    P4ssw0rd

    ?

    Status Should Be

    Logged In

    ?

    ?

    ?

    ?

    ?

    User cannot log in with bad password

    Create Valid User

    betty

    P4ssw0rd

    ?

    Attempt to Login with Credentials

    betty

    wrong

    ?

    Status Should Be

    Access Denied

    ?

    注意 這些測試比起自動測試用例更像用英語手工寫的測試。Robot Framework?使用關鍵詞驅動的方式,支持用自然語言來編寫可以抓住動作和期望值的本質的測試。測試用例由關鍵詞(通常在第二列)和它們可能的參數組成。

    高級別測試用例

    測試用例也可以通過使用不攜帶參數的高級別關鍵詞來創建。這種風格允許使用完全的自由文本以便于進行交流,即使是和非技術人員或者其他利益相關者。T Robot Framework?不強制使用任何風格來編寫測試用例,它可以用于行為驅動開發behavior-driven development?(BDD)推薦的given-when-then?格式的樣例,如下所示。

    Test Case

    Steps

    User can change password

    Given a user has a valid account

    ?

    when she changes her password

    ?

    then she can log in with the new password

    ?

    and she cannot use the old password anymore

    這種測試用例或者用戶故事風格的測試用例的類型很適合用于acceptance test-driven development?(ATDD).?在?ATDD?中接收測試在實現實際產品特性前編寫并且他們反映了需求。

    數據驅動測試用例

    通常部分測試用例除了部分不同的輸入或者輸出數據外都.在這些情況下數據驅動,如下面六個測試用例,允許在不復制工作流的情況下改變測試數據 。

    ?

    Test Case

    Action

    Password

    Expected error message

    Too short password

    Creating user with invalid password should fail

    abCD5

    ${PWD INVALID LENGTH}

    Too long password

    Creating user with invalid password should fail

    abCD567890123

    ${PWD INVALID LENGTH}

    Password without lowercase letters

    Creating user with invalid password should fail

    123DEFG

    ${PWD INVALID CONTENT}

    Password without capital letters

    Creating user with invalid password should fail

    abcd56789

    ${PWD INVALID CONTENT}

    Password without numbers

    Creating user with invalid password should fail

    AbCdEfGh

    ${PWD INVALID CONTENT}

    Password with special characters

    Creating user with invalid password should fail

    abCD56+

    ${PWD INVALID CONTENT}

    在這些測試中每個測試用例只有一個關鍵詞,它用于用給定的密碼創建用戶并檢查創建過程失敗返回的錯誤信息。注意錯誤信息使用variables?變量指定。

    關鍵詞keywords

    測試用例使用關鍵詞創建,關鍵詞可以從三種來源得到:總是可用的built-in keywords?內置關鍵詞,從導入的測試庫中得到的library keywords?庫關鍵詞和使用同樣表格語法創建的用于創造測試用例的user keywords?用戶關鍵詞。

    內置關鍵詞

    一些常見有用的關鍵詞如Get Time?和?Should Be Equal?總是可用的。技術上來說這些關鍵詞來自于BuiltIn?測試庫,你可以通過它的文檔查看到所有可用的關鍵詞的列表。

    庫關鍵詞

    所有最底層的關鍵詞都是在測試庫中定義的,它們通過使用標準編程語言實現。?Robot Framework本身具有部分庫,包括用于支持常見的操作系統函數的OperatingSystem?庫,和用于捕捉屏幕焦點的Screenshot?庫。在這些標準庫之外,還有其他的庫分布在不同的開源項目中,例如SeleniumLibrary?用于?Web?測試。當 沒有合適的庫可用時實現自己的庫implement your own libraries也是很容易的。

    想要使用一個測試庫提供的關鍵詞,這個庫必須被啟用。本文件中的測試需要從標準OperatingSystem?庫?(例如,Remove File)和用戶自定義LoginLibrary庫(例如Attempt to login with credentials)中定義的關鍵詞。這兩個庫都是使用下面叫做setting?表的表格導入。

    Setting

    Value

    Library

    OperatingSystem

    Library

    testlibs/LoginLibrary.py

    Meta: Version

    1.0

    用戶定義關鍵詞

    Robot Framework?最有用的特性之一就是很容易的從其他關鍵詞中創建新的高級別關鍵詞。創建用戶定義關鍵詞,簡稱用戶關鍵詞,的語法和創建測試用例的語法很相似。前面測試用例用到的所有高級別關鍵詞都是在下面keyword?表中定義的。

    ?

    Keyword

    Action

    Argument

    Argument

    Clear login database

    Remove file

    ${DATABASE FILE}

    ?

    ?

    ?

    ?

    ?

    Create valid user

    [Arguments]

    ${username}

    ${password}

    ?

    Create user

    ${username}

    ${password}

    ?

    Status should be

    SUCCESS

    ?

    ?

    ?

    ?

    ?

    Creating user with invalid password should fail

    [Arguments]

    ${password}

    ${error}

    ?

    Create user

    example

    ${password}

    ?

    Status should be

    Creating user failed: ${error}

    ?

    ?

    ?

    ?

    ?

    Login

    [Arguments]

    ${username}

    ${password}

    ?

    Attempt to login with credentials

    ${username}

    ${password}

    ?

    Status should be

    Logged In

    ?

    ?

    ?

    ?

    ?

    # Used by BDD test cases (this is a comment)

    ?

    ?

    ?

    Given a user has a valid account

    Create valid user

    ${USERNAME}

    ${PASSWORD}

    When she changes her password

    Change password

    ${USERNAME}

    ${PASSWORD}

    ?

    ...

    ${NEW PASSWORD}

    ?

    ?

    Status should be

    SUCCESS

    ?

    Then she can log in with the new password

    Login

    ${USERNAME}

    ${NEW PASSWORD}

    And she cannot use the old password anymore

    Attempt to login with credentials

    ${USERNAME}

    ${PASSWORD}

    ?

    Status should be

    Access Denied

    ?

    用戶定一個經常可以包含從其他用戶定義關鍵詞,內置關鍵詞或者庫關鍵詞定義的動作。如在本例中所示,用戶定義關鍵詞可以攜帶參數。它們可以返回值設置包括FOR循環。現在重要的是用戶定義關鍵詞使測試創建者能夠為常用的動作序列創建可重用的步驟。用戶定義關鍵詞還可以幫助測試作者在不同的環境下盡可能保持測試測試可讀性和使用恰當的抽象級別。

    變量

    定義變量

    變量是Robot Framework?的組成部分。通常在測試中的可能變化的數據最好定義為變量。定義變量的語法非常簡單,如下表所示:

    Variable

    Value

    ${USERNAME}

    janedoe

    ${PASSWORD}

    J4n3D0e

    ${NEW PASSWORD}

    e0D3n4J

    ?

    ?

    ${DATABASE FILE}

    ${TEMPDIR}${/}robotframework-quickstart-db.txt

    ?

    ?

    ${PWD INVALID LENGTH}

    Password must be 7-12 characters long

    ${PWD INVALID CONTENT}

    Password must be a combination of lowercase and uppercase letters and numbers

    變量也可以從命令行給定,以便于測試需要在不同的環境中執行。例如本demo可以像下面一樣執行:

    pybot --variable USERNAME:johndoe --variable PASSWORD:J0hnD0e quickstart.html

    除了用戶定義變量之外,還有一些內置變量也很有用。這些變量包括在上表中使用的${TEMPDIR}?和${/}?。

    使用變量

    變量可以在測試數據的大部分地方使用。如下面的測試用例所示它們最常用作關鍵詞的參數。關鍵詞的返回值也可以復制給變量以便在后面使用。例如下面的Database Should Contain?用戶關鍵詞設置數據庫內容給${database}?變量,然后使用內置關鍵詞Should Contain??驗證內容。庫和用戶定義關鍵詞口可以返回值。

    Test Case

    Action

    Argument

    Argument

    Argument

    User status is stored in database

    [Tags]

    variables

    database

    ?

    ?

    Create Valid User

    ${USERNAME}

    ${PASSWORD}

    ?

    ?

    Database Should Contain

    ${USERNAME}

    ${PASSWORD}

    Inactive

    ?

    Login

    ${USERNAME}

    ${PASSWORD}

    ?

    ?

    Database Should Contain

    ${USERNAME}

    ${PASSWORD}

    Active

    ?

    Keyword

    Action

    Argument

    Argument

    Argument

    Database Should Contain

    [Arguments]

    ${username}

    ${password}

    ${status}

    ?

    ${database} =

    Get File

    ${DATABASE FILE}

    ?

    ?

    Should Contain

    ${database}

    ${username}/t${password}/t${status}

    ?

    組織測試用例

    測試套件

    在Robot Framework中測試用例的集合叫做測試套件。每個包含測試用例的輸入文件組成一個測試套件。當運行本demo時,可以在控制臺輸出上看見測試套件Quickstart?。這個名字來自于文件名并且在報告和日志都可見。

    可以通過將測試用例文件放置在目錄中并將這些目錄放在其他目錄中來組織測試用例的層次。所有這些目錄自動創建以目錄名命名的高層次測試套件。因為測試套件知識文件和目錄,它們很容易放置到任何版本管理系統中。

    你可以通過在本指南的目錄下運行如下命令來測試運行一個目錄作為一個測試套件:

    pybot .

    啟動和卸載

    如果你希望讓一系列動作在每個測試執行之前或之后發生,使用Test Setup?和?Test Teardown?設置如下:

    Setting

    Value

    Test Setup

    Clear Login Database

    Test Teardown

    ?

    同樣你也可以使用Suite Setup?和?Suite Teardown?設置來指定在整個測試套件執行之前和之后執行的動作。

    使用標簽

    Robot Framework?允許為測試用例設置標簽以便給他們自由的元數據。allows setting tags for test cases to give them free metadata.?標簽可以使用如下表中Default Tags?和?Force Tags??settings為一個文件中的所有測試用例設置。也可以像前面User status is stored in database?測試中那樣為單獨的測試用例設置標簽。

    Setting

    Value

    Value

    Force Tags

    quickstart

    ?

    Default Tags

    example

    smoke

    當你在一個測試執行后查看報告時,可以發現測試與標簽相關聯并且按照標簽同級生成。標簽還可用于很多其他目的,其中一個很重要的就是用于選擇想要執行什么測試。你可以嘗試下面的命令:

    pybot --include smoke quickstart.html

    pybot --exclude database quickstart.html

    創建測試庫

    Robot Framework?為創建測試庫提供了一個簡單的API,包括Python?和?Java。?user guide包括有具有例子的詳細說明。

    下面是本文中LoginLibrary?的源碼。可以看到關鍵詞Create User?是如何映射到方法create_user?的實際實現。

    import?os

    import?sys

    ?

    ?

    class?LoginLibrary:

    ?

    ????def?__init__(self):

    ????????self._sut_path?=?os.path.join(os.path.dirname(__file__),

    ??????????????????????????????????????'..',?'sut',?'login.py')

    ????????self._status?=?''

    ?

    ????def?create_user(self, username, password):

    ????????self._run_command('create', username, password)

    ?

    ????def?change_password(self, username, old_pwd, new_pwd):

    ????????self._run_command('change-password', username, old_pwd, new_pwd)

    ?

    ????def?attempt_to_login_with_credentials(self, username, password):

    ????????self._run_command('login', username, password)

    ?

    ????def?status_should_be(self, expected_status):

    ????????if?expected_status?!=?self._status:

    ????????????raise?AssertionError("Expected status to be '%s' but was '%s'"

    ??????????????????????????????????%?(expected_status,?self._status))

    ?

    ????def?_run_command(self, command,?*args):

    ????????command?=?'"%s"?%s?%s'?%?(self._sut_path, command,?' '.join(args))

    ????????process?=?os.popen(command)

    ????????self._status?=?process.read().strip()

    ????????process.close()

    ?

    自動化測試資訊平臺 http://www.AutomationQA.com 本文轉自:http://www.cnblogs.com/testware/archive/2011/10/31/2230236.html

    轉載于:https://www.cnblogs.com/tianyaxue/p/3420947.html

    總結

    以上是生活随笔為你收集整理的【转】Robot Framework 快速入门的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。