自動化項目的目錄結構:python
建議的目錄結構。。。web
以robot --pythonpath . tc命令執行tc用例下面全部的用例shell
builtin庫裏面的Run Keywords方法實現初始化測試
結構優化:- 合併重複的初始化和清除操做優化
- 去掉多餘的管理員登陸操做ui
- 合理重組目錄結構遞歸
RF用例的執行:開發
robot framework的命令格式: robot [options] data_sourcesit
* options命令的選項,能夠爲空自動化
* data_sources則是要執行的測試套件文件或目錄的路徑。能夠是絕對路徑,也能夠是相對路徑,至關於當前shell的工做的目錄。
robot tests.robot
robot path/to/my_tests/
robot c:\robot\tests.robot
* 若是指定的是測試套件文件,則執行該文件中全部的測試用例
* 若是指定的是測試套件目錄,則遞歸執行該目錄下包含的全部的子目錄裏面全部測試套件文件裏面的用例
* 能夠指定多個要執行的測試套件文件、目錄,甚至用通配符來表示多個測試,以下:
robot my_tests.robot your_tests.robot
robot --name Example path/tp/tests/pattern_*.robot
* 多個測試數據的狀況,本次測試的名稱就是把他們的名字相加
robot --pythonpass . --name 迴歸測試 tc
根據名稱選擇測試用例:
咱們能夠經過 --test --suite來指定執行哪些用例或者套件,並且還支持用通配符的方式
--test Example # 執行名爲example的用例
--test mytest --test your_test # 執行名爲mytest和yourtest的用例
--test example* # 執行名字以example開頭的用例
--suite mysuite # 執行名爲mysuite的套件
參數文件:
若是有時,參數太長,咱們一般可使用參數文件,咱們能夠把全部的參數都放在參數文件中,好比:
--pythonpath .
--name 迴歸測試
--test tc00001
--test tc00002
tc
就能夠執行 robot -A args.txt
RF用例標籤:
還有一種選擇用例的方法,,是根據用例的標籤。
咱們能夠給測試用例打上標籤,這樣在運行時,能夠經過標籤指定要運行那些用例,測試用例能夠有多個標籤,咱們根據任何一個標籤均可以過濾到該用例。
給用例打標籤有以下幾種方式:
① Settings表裏的Fore Tags
若咱們在測試套件文件裏Settings表設置了Fore Tags,那麼該套件裏的全部測試用例都具備了該標籤。
若咱們在測試套件目錄初始化文件的Settings表設置了Fore Tags,那麼該套件裏面全部的測試用例都具備了該標籤。
| *** Settings *** |
| Fore Tags | web test | my test|
| Default Tags | all test |
② 測試用例表裏的[Tags]配置
| *** Test Cases *** |
| case1 |
| | [Tags] | one |
| | log to console | default browser:${browser} |
| | baidu search | robot framework | Robot framework
③ Settings表裏的Default Tags
若咱們在測試套件文件的Settings表設置了Default Tags,那麼該套件裏面全部沒有[Tags]設置的測試用例,都具備了該Tag。
注意:測試目錄裏面的__init__.robot不支持Default Tags
根據標籤選擇測試用例:若是用例有了標籤,在執行自動化時,咱們能夠這樣指定執行哪些標籤的測試用例,如:
-- include foo # 執行包含標籤‘foo’的用例
-- exclude foo # 執行不包含標籤‘foo’的用例
-- include oneAND"web test" # 執行包含標籤‘one’,‘web test’的用例
-- include oneORtwo # 執行包含標籤‘one’和'two'的用例
-- include oneNOtwo # 執行包含標籤‘one’,可是不包含標籤‘two’的用例
舉例說明:robot --include web測試 "webtest"
robot --include "admin"AND"teacher" "webtest"
robot --include * "webtest"
指定關鍵測試用例:
若是本次測試中有關測試用例沒有經過,那麼整個測就被視爲測試不經過。反之, 整個測試就視爲經過。
缺省狀況下,RF執行測試時,每一個測試用例都被視爲關鍵測試用例
咱們能夠經過命令參數 ---critical (-c)和--noncritical (-n) 後面加Tag名稱來指定測試用例是否爲關鍵測試用例
--critical regression 指定 只有具備regression標籤的用例纔是關鍵用例
--noncritical not_readly 指定 不具備not_ready標籤的用例是關鍵用例,其餘用例都不是關鍵用例
--critical ok* --noncritical tbd* 指定 具備以ok開頭的標籤 且沒有以tbd開頭的標籤的用例都是關鍵用例,其餘用例都不是關鍵用例
一般咱們能夠在關鍵用例中打上標籤,好比basic表示是關鍵用例。
項目自動化現狀:
實際的自動化項目中,不能只是測試開發者作
應是QA+ 測試開發一塊兒
用例開發人員:是沒有開發經驗的QA,用例中使用複雜的流程會致使開發難度大大增長
但願測試庫的開發人員儘可能提供高抽象層級的關鍵字
不少團隊,主要用python而不是RF開發關鍵字
須要鍛鍊python開發測試庫的能力