PS:給想做自動化平台同學一點思路。
AutoMagic 是一個基於WebUI的自動化管理平台。為什么叫AutoMagic呢?因為自動化(Automation)在執行起來的時候是一個很神奇的事情,它可以無人值守的模擬人的操作,就像魔術(Magic)一樣。 所以我給她取名叫AutoMagic。
AutoMagic從其工作分工應該分兩部分:
Web管理平台,它是基於Python Django框架+Mysql開發,主要用來管理自動化測試用例和設計自動化測試場景、存放界面元素標識,通過界面錄入存放在數據庫中進行管理,它是一個純粹基於Selenium關鍵字自動化原件管理平台。
客戶端執行腳本(seleniumkeyword ),AutoMagic的執行效果展示主要靠它來體現,它的執行依附於web平台存儲的用例和場景數據,seleniumkeyword可以不需要部署在服務器端,只要它能夠連接到服務器端的數據庫,部署在任何平台都可以執行。(這樣也方便我們做分布式執行測試用例)
安裝運行環境
在安裝python、selenium、 mysqldb 的環境下運行,其它python依賴包根據關鍵詞插件要求進行安裝
目錄腳本說明
TestSuite.py 測試用例執行腳本引擎是 ,它可以通過參數實現不同的執行方式
-t [taskid] 指定執行的AutoMagic任務
-u [userid] 指定執行腳本的用戶
-r [runid] 執行測試用例腳本要同步的TestRailRunid,它只有在執行 -t 參數時才會生效。
-c [caseid] 指定要執行的單個用例的編號
-p [projectid] 指定要執行的項目id,會依次執行項目中所有模塊和用例狀態是啟用的所有用例
-b [browser] 指定執行用例過程所使用瀏覽器,默認使用chrome瀏覽器,也可在執行case過程中通過openbrowser關鍵字重置
Exp:
python TestSuite.py -t 1 -u tsbc -r 1433 -b chrome
Base.py 是我們關鍵字維護腳本,class Action中重定義了python selenium的一些方法,其它部分均為自定義關鍵字。
自定義關鍵字示例:
@Action.add_action('InputText') def action_InputText(action_object, step_desc, value, loc): """ 文本框輸入內容 :param action_object: :param step_desc: :param value: text :param loc: :return: """ print loc, value action_object.send_keys(loc, value)
AddCase.py 同步用例到TestRail到腳本
-t [taskid] 指定執行同步的AutoMagic任務
-u [userid] 指定執行腳本的用戶
-s [sctionid] 執行同步case到TestRail的那個用例集(section_id代表所在用例集)
HTMLTestRunner.py 生成報告的腳本文件
RestApiUtil.py、RestApiUtil.py 是發包MW模擬安全事件和發送pcap發包接口
testrail.py TestRail的接口API
result目錄為報告接口目錄
data目錄執行上傳附件關鍵字時,附件存放目錄
nwjs-sdk-v0.19.3-win-x64 是node webkit應用chromedriver驅動
目錄結構:
生成測試報告效果(Fail截圖版本):
生成測試報告效果(Case視頻回放版本):視頻回放報告生成當前只支持在Linux環境下運行