RF簡介
Robot Framework是一個基於Python的,可擴展的關鍵字驅動的測試自動化框架,用於端到端驗收測試和驗收測試驅動開發(ATDD)。它可用於測試分佈式異構應用程序,其中驗證需要涉及多種技術和接口
爲何選擇Robot Framework
1、啓用易於使用的表格語法,以統一的方式創建測試用例
2、可以使用關鍵字驅動、數據驅動和行爲驅動開發完成
3、提供易於閱讀的結果報告和HTML格式的日誌
4、平臺和應用程序是獨立的
5、易於擴展,提供一個簡單的API,用於創建自定義測試庫,可以使用Python或Java本機實現
6、提供命令行界面和基於XML的輸出文件, 以便集成到現有構建基礎架構(持續集成系統)中
7、爲Selenium提供Web測試,Java GUI測試,運行進程,Telnet,SSH等支持
8、內置對變量的支持,特別適用於不同環境下的測試
9、提供標記以分類和選擇要執行的測試用例
10、實現與源代碼控制的輕鬆集成:測試套件只是可以使用生產代碼進行版本控制的文件和目錄
11、提供測試用例和測試套件級別的設置和拆卸
12、模塊化架構支持創建測試,即使對於具有多種不同接口的應用程
RIDE工具
1、RIDE作爲Robot Framework的“臉面”,直接面向用戶。創建和運行測試都是在該界面上進行的
2、RIDE的界面大致分了4個區域:菜單欄、工具欄、工程文件區、工作區
⑴菜單欄:RIDE所有的功能都在這裏面。如打開一個工程、創建一個工程等
⑵工具欄:比較常用的功能,可以快捷操作
⑶工程文件區:這裏是一個目錄一個目錄的樹形結構。主要是存放工程的:測試套件、測試用例、自定義資源、關鍵字等
⑷工作區:這裏主要是編輯用例、運行用例的操作區
菜單欄
RF的菜單欄才主要包括:File、Edit、Tools、Navigate、Macros、Help按鈕
File菜單
File菜單下主要的選項有以下按鈕。如果最近打開過工程,File菜單下還會展示最近打開的工程,最多展示4個,可以直接切換工程
名稱 | 描述 |
New Project | 新建工程 |
Open Test Suite | 打開測試套件 |
Open Directory | 打開目錄(一般打開測試項目都是選擇這項) |
Save | 保存 |
Save All | 保存全部 |
Exit | 退出 |
Edit菜單
1、File菜單下主要的選項有以下按鈕
2、如果是對測試用例腳本進行編輯的話,可以右鍵選擇需要操作的單元格(行)單元格,在彈出的對話框中快捷鍵操作
名稱 | 描述 |
Add Tag to selected | 對選中的案例增加Tag標籤,可批量增加 |
Clear Selected | 清除選中的案例 |
Undo | 撤銷 |
Redo | 重做 |
Cut | 剪切 |
Copy | 複製 |
Paste | 粘貼 |
Insert | 插入 |
Delete | 刪除 |
Comment | 註釋當前行,可批量操作 |
Uncomment | 取消當前行註釋,可批量操作 |
Insert Cells | 插入單元格 |
Delete Cells | 刪除單元格 |
Inset Rows | 插入行 |
Delete Rows | 刪除行 |
注:
這部分的操作可以在測試用例編輯區進行快捷操作
1、選中需要操作的行:進行行操作
2、選擇需要操作的單元格進行單元格操作
Tools菜單
Tools菜單下主要的選項有以下按鈕
名稱 | 描述 |
Test with Debug以debug | 形式運行測試案例 |
Run Tests | 運行測試案例 |
Stop Test Run | 停止案例運行 |
Search Tests | 搜索測試案例(可以通過名稱或Tag標籤搜索案例) |
Search Keywords | 搜索關鍵字(可使用快捷鍵F5) |
Search Unused Keywords | 搜索未使用過的關鍵字 |
Content Assistance | 內容助手(用來做腳本補全,不過感覺很不方便) |
Preview | 預覽(預覽測試套件的文件內容,可以選擇格式來查看或打印) |
Manage Plugins | 管理插件 |
View All Tags | 查看所有Tag |
Import Library Spec XML | 導入測試庫描述文件XML |
View RIDE Log | 查看RIDE日誌(如測試庫名寫錯時,可以通過該按鈕來排錯) |
Preferences | 參數配置(主要是一些個人喜愛設置) |
Navigate、Macros、Help菜單
名稱 | 描述 |
Go Back | 後退:跳轉到上一個訪問過的頁面 |
Go Forward | 前進:跳轉到下一個訪問過的頁面 |
Manage Run Configurations | 管理運行配置:可以增加或移除操作 |
hortcut keys | 快捷鍵列表 |
User Guide | 用戶指南 |
Report a Problem | 報告問題 |
Release notes | 更新日誌 |
About | 關於 |
工具欄
工具欄中的按鈕主要是菜單欄中一些按鈕的快捷按鈕,從左到右依次爲:後退、前進、打開測試套件、打開目錄、保存、保存全部、搜索關鍵字、搜索測試用例、運行用例、停止運行用例
工程文件區
1、工程文件區下主要是由工程、測試套件、測試用例、資源、關鍵字組成
⑴工程:就是我們包含我們全部文件的一個文件夾
⑵測試套件:即testSuit,測試集。跟Python中的Unittest單元測試框架中的概念一樣
⑶測試用例:在RF中表示由一系列關鍵字等構成的測試用例
⑷資源:二次封裝關鍵字構成的TXT文件(一個資源文件裏面可以含有多個關鍵字,將一些功能類似或有相同點的關鍵字放在一個TXT文件中)
⑸關鍵字:由Python處理函數封裝成的(其實就是由Python寫的一些處理函數,用於處理對應事件)
2、在RF中Python函數、關鍵字、資源、測試用例的關係爲:
⑴Python函數封裝成關鍵字->多個關鍵字構成資源文件->若干關鍵字構成測試用例(資源)(關鍵字也可以不放在資源文件中(可以單獨存在),只是這樣的話,可能看起來比較雜亂)
⑵創建測試用例時:需要在所在目錄的測試集中導入所需的資源文件或關鍵字
⑶創建關鍵字時:需要在所在目錄的資源文件或測試集中導入所需的PY文件
3、界面
右鍵工程名、測試套件名、測試用例名可以彈出二級頁面,進行下一步操作(每一級下的二級頁面按鈕會有點不一樣)
名稱 | 描述 |
New Suite | 新建測試套件 |
New Directory | 新建目錄測試套件 |
New Resource | 新建資源 |
New Test Case | 新建測試用例(測試套件下) |
New User Keyword | 新建用戶關鍵字 |
New Scalar | 新建變量 |
New List Variable | 新建列表型變量 |
New Dictionary Variable | 新建詞典變量 |
Change Format | 修改格式(可以修改工程的格式) |
Select All Tests | 選擇全部測試案例 |
Deselect All Tests | 取消選擇全部測試案例 |
Select Only Failed Tests | 只選擇失敗的測試案例 |
Select Only Passed Tests | 只選擇成功的測試案例 |
Expand all | 展開全部目錄 |
Collapse all | 摺疊全部目錄 |
工作區
工作區裏的內容很多,工程、測試套件、測試用例、資源關鍵字都有與其對應的"Edit"、"Text Edit"、"Run"界面,不同的層級對應的界面會有點不同,先把通用的介紹下
測試套件的Edit頁面
1、分別選擇測試項目、測試套件、資源文件後,分別查看其對應的Edit頁面,可以看出
⑴測試項目和測試套件所提供的Edit標籤的功能基本是一樣的
⑵資源的工作區Edit與測試套件的基本相同,只是資源工作區的Edit頁面中沒有元數據定義部分
⑶setUp用於設置初始化工作,在每一個測試用例前先被執行
⑷tearDown方法在每個測試方法執行後調用,這個方法用於完成測試用例執行後的清理工作,如執行“close browser”關閉瀏覽器等
名稱 | 描述 |
Source | 顯示當前套件的路徑 |
Settings | 單擊顯示 |
Documentation | 說明文檔,寫對當前工程的說明 |
Suite Setup | 測試套件初始化(跟Unittest裏面的初始化一樣) |
Suite Teardown | 測試套件結束 |
Test Setup | 測試案例初始化 |
Test Teardown | 測試案例結束 |
Force Tags | 強制標記,給當前測試套件下的每個測試案例都加上Tag,在測試案例上不能刪除,只能在設置的地方刪除 |
Default Tags | 表示當前測試套件下測試用例默認的標記 |
TimeOut | 用於設置用例的超時時間。如“1 min 10s”、“ 2 hours”等。 |
Template | 指定模板使用的關鍵字 |
Tags | 用於給用例添加標記 |
Library | 加載測試庫,默認是Python安裝目錄下的site-packages裏的測試庫(也可以自己導入包所在的絕對路徑) |
Resource | 加載資源(主要是工程相關的資源文件) |
Variables | 加載變量文件 |
Import Failed Help | 導入失敗的幫助 |
Add Scalar | 定義變量 |
Add List | 定義列表型變量 |
Add Dict | 定義詞典 |
Add Metadata | 定義元數據,定義之後Report和Log顯示定義好的內容 |
測試用例的Edit頁面
分別選擇一個測試用例和一個關鍵字的Edit頁面,可以看到用戶關鍵字的工作區Edit和測試用例的Edit頁面也基本一致,只是用戶關鍵字的界面多了一個Find Usages
Text Edit編輯頁面
這裏顯示的是測試用例、關鍵字等文件的真實內容了,它與Edit頁面時互通的
⑴測試用例的Edit頁面顯示的是當前用例的操作步驟等信息,Text Edit編輯頁面顯示的是當前測試套件下所有測試用例的操作步驟等信息
⑵TextEdit編輯頁面和Edit頁面是互通的。即:在Edit頁面編寫測試用例等後會同步到Text Edit頁面;在Text Edit編寫用例等後也會同步到Edit頁面(可以理解爲同一個東西的不同變現形式)
⑶Edit可視化的提供的按鈕輸入框,對於用戶來說更容易知道我要怎麼做;而在Text Edit中只是一個空當當的文本,我們跟本不知道如何下手
Run標籤頁面
該界面中主要是一些運行時的參數設置、日誌顯示等信息,Run標籤提供了豐富的操作和日誌
名稱 | 描述 |
Execution Profile | 選擇運行方式,裏面有pybot、jybot和custom script |
Start和Stop | 用例的運行和停止 |
Report和Log | 報告和日誌,要運行之後才能點擊 |
Autosave | 自動保存 |
Arguments | pybot的參數,可以在這裏輸入pybot的命令完成相應的操作 |
Show message log | 默認爲勾選(勾選後頁面會顯示運行時的log,反正只顯示執行結果) |
Only Run Tests with these Tags | 只運行這些標記的測試案例 |
Skip Tests with these Tags | 跳過這些標記的測試案例 |
注:
1、在選擇運行方式時:默認是用pybot來運行案例,pybot的運行Python編譯器完成。jybot需要安裝Jython的支持。custom script是選擇自定義的腳本來運行
2、Report和Log之間的區別:報告更多是結果上的展示,日誌更多是過程的記錄,在測試用例調試的過程中更多使用日誌來查看執行錯誤。當只想知道測試用例的最終執行情況時用報告
3、自動保存:如果不勾選,在修改了用例之後如果沒有保存的話,運行案例時會提示是否保存。勾選則在運行時自動保存了