[奇異果] 免斷言自動化測試工具 (如果 HTTP 外其他基礎工具全部服務化了,可以應用所有測試場景)
有問題歡迎討論
heygeo@163.com
外掛地址:
https://plugins.jetbrains.com/plugin/14283-actinidia
文件地址:
https://github.com/Felixlovechina/actinidia/blob/master/READM.md
一、簡介
1、解決的問題
所有測試能力服務化後,通過http協議作為基礎,書寫所有的業務用例。
用例內容採用json作為輸入輸出。
用例結果採用json結構diff+過濾的方式進行斷言。
在這個情境下,用例管理需要一個方便的互動執行介面,此工具應運而生。
另外降低研發同學執行復現的成本。
2、為什麼使用idea外掛的形式
(1)idea是一個普遍使用的ide工具平臺。
(2)集團的程式碼檢查外掛等,在idea上有了極佳的實踐
(3)idea外掛市場有很高的下載量,方便更廣泛的推廣。如,之前釋出的一個非常簡單的小工具就達到了2w+的下載量,足見其傳播力還是很驚人的。
![]
二、外掛安裝
1、若採用本地安裝
2、idea市場安裝
開啟連結:https://plugins.jetbrains.com/plugin/14283-actinidia
3、樣例資料
見附件demo.zip
三、互動使用方法
1、視訊版本
見附件:actinidia.mp4
2、截圖版本
三、用例書寫要求
1、命令檔案
(1)檔名
為“{序號}-{命令}-{用例說明等}.json”;
第一個短橫線與第二個短橫線之間的“命令”為約定的單詞,如httpj、sql、poi等,用於觸發對應的解析器;
當前版本,暫時只開放httpj命令。
(2)內容
json格式,說明當前http請求的相關資訊,包括:
{
////http方法post或get,檔案可以加註釋,四個斜線開頭
"method": "post",
////操作日常環境資料庫:使用域名poi-test.amap.test
"url": "http://poi-test.amap.test/moc/command",
////header
"header":{
"cookie": "session=zhangyi"
}
////queryString引數,json格式,可以為空
"queryString": {
"command": "sql"
},
////body體,可以為字串,或者json
"body": {
"xxxx":"xxxx"
}
}
(3)變數引用
場景:
-場景1,呼叫“A命令檔案”返回json中有x變數,希望在呼叫“B命令檔案”的時候使用到;
-場景2,A/B/C/D/E/F命令檔案希望共用一個變數,希望統一提出來配置到一個地方;
方法:
-在“xxxJSON格式的檔案”中設定一個變數
-在需要引用的檔案中配置:“@檔名jsonpath@”
如:
@0000-caseId.json$.case_id@
其中,“0000-caseId.json”為檔名(目前僅支援當前目錄下),“$.case_id”為要引用的變數的jsonpath。
可以配置在命令檔案的任務位置,包括在字串中間。程式處理的時候,通過正則進行匹配替換。
2、結果檔案
每個命令檔案在執行後生成同名的".new.json/.old.json/.diff.json"檔案;
(1)".old.json"檔案
如果已經存在此檔案,不會生成,也不會被覆蓋;
此檔案用於儲存“命令”的執行結果的對比“基線”;
檔案可以手工提前配置;
(2)".new.json"檔案
每次命令被執行,都會生成此檔案,如果存在則覆蓋;
此檔案用於跟".old.json"進行對比
3、diff結果檔案
(1)內容來源
如果之前沒有“.old.json”檔案,會跑通過,因為對比使用的是最新生成的.old.json和.new.json檔案;
如果用自己的".old.json"檔案,或者之前跑時生成的“.old.json”檔案,兩份json檔案可能會有差異,差異會當作diff報出,寫入到".diff.json"檔案中。
其中,“filter”是一個陣列,每條都是一個diff,
(2)欄位含義
operation:新json相對於老json,發生的變化,取值為update、remove、add
path:新json相對於老json,發生變化的json路徑(目前不是標準jsonpath格式,僅供參考)
value:新json中的結果
oldValue:老json中的結果
(3)快速過濾掉符合預期的diff
如果(2)中的diff結果,即filter中的diff符合預期,比如是時時變化的時間戳等,可以將此filter陣列,copy到當前報錯的“命令”json根節點下即可,下次執行變會過濾掉,copy方法,如:
四、其他計劃
1、支援模板檔案建立
2、支援更多的報表輸出
五、其他測試工具推薦
六、技術要點
1、idea的外掛開發技術
2、其他ui
所有ui控制元件中難度最大的應該是jtree,是數模分離的一個比較複雜的外掛。
核心在於對DefaultTreeModel的擴充。
3、jsondiff的能力
相關文章
- 自動化測試:Monkey工具實踐應用~
- 基於Dubbo的http自動測試工具分享HTTP
- 2019最好用的自動化測試工具Top 10,果斷收藏!
- 基於LangChain手工測試用例轉App自動化測試生成工具LangChainAPP
- 基於LangChain手工測試用例轉Web自動化測試生成工具LangChainWeb
- 基於LangChain手工測試用例轉介面自動化測試生成工具LangChain
- 自動化測試工具QTPQT
- http介面測試工具,cookie自動追加HTTPCookie
- 如何實現介面異常場景測試?測試方法探索與測試工具實現
- 【自動化測試】移動端測試輔助工具 - adb
- 如何設定自動化測試斷言?
- API自動化測試平臺,支援場景化的API測試API
- 使用go語言開發自動化API測試工具GoAPI
- 開源API測試工具 Hitchhiker v0.8 – 自動化測試結果統計API
- Windows桌面自動化測試工具:WinAppDriverWindowsAPP
- bats-Bash自動化測試工具BAT
- 微軟自動化測試工具palywright微軟
- iOS自動化測試驅動工具探索iOS
- 滲透測試與自動化安全測試工具比較
- 移動測試基礎 Android 應用測試總結Android
- 自動化測試中如何判斷測試是否透過?詳解 Pytest 測試框架的斷言用法框架
- airtest自動化測試工具快速入門AI
- Playwright自動化測試工具之高階使用
- appium uiautomator 移動端自動化測試工具APPUI
- python 桌面應用自動化測試Python
- 談軟體自動化測試工具的評測方法
- 漫談前端自動化測試演進之路及測試工具分析前端
- Tessy—支援複雜場景測試的單元整合測試工具
- 請問大家,自動化測試可以實現一個指令碼測試全部平臺嗎?指令碼
- YApi 服務端測試新增 globalCookie ,相容自動化觸發服務端測試功能API服務端Cookie
- python自動化測試工具selenium使用指南Python
- DevSecOps自動化安全測試常用工具dev
- 一次 Linux 桌面自動化測試工具的試用經歷分享Linux
- 2021年軟體測試工具大全(自動化、介面、效能、安全、測試管理)
- 自動化測試系列 —— UI自動化測試UI
- Flutter應用進行自動化測試Flutter
- 開發者測試(4)-採用精準測試工具對dubbo微服務應用進行測試微服務
- 【自動化測試入門】用Airtest - Selenium對Firefox進行自動化測試(0基礎也能學會)AIFirefox