在很多時候近到公司後,可能會發現已經有前人把專案建置完成,可能有前輩可以手把手教學、可能有留下的完整的文件可以閱讀 等等,這時候熟悉專案就會容易許多。
但其實在很多時候也會遇到 團隊剛成立
或者 技術轉型
階段
就會需要面臨從無到有的建構專案過程,就會需要了解 如何建置專案才是最適合團隊
的情況。
如果今天你是要從無到有的建置自動化框架架構的話
每間公司建置的專案檔案層級一定都不太一樣
這邊我先列出大致上 Robot framework 檔案層級方向,剩餘可再依照自己團隊內工作方式調整
- 你的專案名稱
- lib
- XXXXX.py
- keyword_XXXX.robot
- keyword_XXXX.robot
- ...
- res
- location
- xpath_XXXX.py
- ...
- src
- XXXXX.json
- XXXXX.png/jpg/gif
- ...
- tests
- XXXXX.robot
- ...
- report
- log.hmtl
- output.html
- report.html
- screenshot.png
- init.robot
- setting.py
- .gitignore
- README.md
主要是放各種客製化的 keywords、自製腳本。
客製化的 keywords 名稱前固定加 keywords_
是為了更好區分所有 .robot
有時候我們會使用搜尋一些 function name 的方式來快速 debug
這時候有檔名有 keywords_
我就比較可以快速分類出來。
XXXXX.py
為自製腳本
大多是為需要執行特殊的邏輯,主要是測試前的前置動作。
因為有時候有些測試透過 UI 在重新執行跑一次可能會太久,這時候就可以先用 自製腳本 先執行,最後再去測試我們主要驗證的部分。
基本上就是放置各種資料來源,這資料夾層級底下的檔案通常是不需要有邏輯。
都是固定資料為主居多。
location
xpath_
也是為了日後更好找到檔案。src
就是我們常寫測試的地方。
主要都是依照 測試案例 所撰寫的出來測試檔案,基本是都會引用各種 keywords 相組而成。
就是專門放測試 log、報表、截圖,都是 robot 執行完後會自動產生的結果。
只是將結果專門放置在同的層級中,會比較好管理。
這主要就是放所有的 Library、Resoure、Variables,等於把所有需要引入的東西都放在同一個這個 init.robot
檔案中
然後在各個測試的 .robot
中,直接引入 init.robot
這樣日若需要新增或移除套件時,就統一在這份檔案修改即可
就不需要每個檔案都要更改,增加維護成本。
引入方式大致上如下
*** Settings ***
Library SeleniumLibrary
Library BuilInt
Resoure ./lib/keyword_XXXXX.robot
Resoure ./lib/keyword_XXXXX.robot
Variables ./res/location/xpath_XXXXXX.py
Variables ./res/location/xpath_XXXXXX.py
放置全局的共用參數,大多是都固定的參數。
e.g. 測試網址、測試帳號/密碼
就是選擇不要上傳到 git 的檔案。
e.g. 測試報表、假資料、本地安裝的套件 等
主要可以說明該專案的目的、安裝方式、coding style、執行方式 等等。
想成像是操作手冊也行。
這些層級並不是參考書一樣,只有照著做才是對的,最終還是可能要依照團隊需求而有所改變。
但至少有個範本當參考也是不錯的,也當作是在幫自己釐清一遍。
上方的架構也都是與現在團隊一同討論及參考各種資料而定義出來的
其實也還有蠻多檔案沒打上去的,畢竟不太可能把公司專案 po 上來XDD
但先把大致上的基礎概念整理出來
也希望可以幫助大家