框架目錄:
整體思路:
采用excle數據驅動維護用例,數據依賴:兩種實現方法case依賴與sql依賴,優先使用case依賴,
最終運行的用例是:
維護用例在datacase目錄下:
涉及到用例信息新增/修改時,請先執行此腳本,目的是合並所有用例至run/datacase_all.xlsx
1.使用caseID關聯,通過caseId找到對應的excle函數執行,並返回項目數據,通過dependkey:對象是json表達式,獲取響應數據中對應的內容,最后組裝為dict,與請求數據進行交互完成請求參數替換
2.sql依賴:在excle中維護對應的sql語句,框架會自動執行對應行的sql,然后使查詢結果與請求數據進行交互,完成參數替換
流程圖如下:
3.斷言分為普通的字符串斷言與sql斷言,sql斷言將sql的執行結果與當前用例的執行結果進行交互,完成最終的斷言處理
相關代碼實現:
用到的核心第三庫:
openpyxl、demjson、jsonpath_rw、xlsxwriter、pandas、codecs、redis、pymongo、pymysql、request、ruamel.yaml
框架是作者業務時間的興趣愛好完成的,也還有很多不完善的地方,例如用例依賴目前沒做成實時的,現在是通過腳本先把所有的依賴數據全部生成好了在執行的,
框架某些模塊借用了網上的其他框架,感謝提供的相關思路
項目已上傳github:
地址 https://github.com/qtclm/AutoInterfaceTest_Datadepend
運行用例時,會詢問是否需要執行數據依賴寫入,需結合實際情況是否需要完成詞操作,這個操作相對比較耗時,后續考慮使用多線程實現
2020.4.11最近更新:支持多種content_type:application/json,application/x-www-form-urlencoded,text/html,multipart/form-data,XMLHttpRequest,excle用例增加對應支持,支持自定義關鍵字,在對應的content下維護對應的關鍵字即可
注意:關鍵字不能重復,關鍵字不能重復,關鍵字不能重復
關鍵字維護文件config.yaml,示例:
如需新增content_type,則需要改動對應代碼和維護config.yaml(同上):
如果對自動化測試有興趣,歡迎一起交流,qq:248313385