項目簡介
japi項目,是一個接口自動化平台開發項目,由【測試開發剛哥交流群】招人共建,基于JMeter,參考MeterSphere,以學習為目的,完成一個SpringBoot+Vue技術棧的純粹的接口自動化平台開發。
項目成員
經過"填寫人員分工表"以後,最終有38人參與了本次項目:
剛哥、布魯、嘉宥、守正、大剛、風雨、奉孝、大姚、暢月、漁夫、小禹、钰琪、天湖、迷龍、肥涵、胖子、局長、呼呼、明亮、安甯、木棉、番茄、玥玥、哈瑞、虛竹、十五、阿新、卡羅、大白、庫昊、左右、小湧、古風、玉潔、小韓、小卷、千凝、昆明。
随着項目進行,後續“送出學習總結”等環節層層遞進,真正留下來的項目成員,會在GitHub的README中署名。
在填表時收集了大家的曆史經驗,這裡彙總整理了一下,供參考:
“Vue+Django寫過測試平台;SpringBoot寫過後端應用;Python小工具開發;Python+Pytest+Requests搭建接口自動化架構;Python+Unittest或Pytest自動化測試架構搭建及腳本開發;各類開源自動化測試平台搭建,如:HttpRunnerManager、流馬、Yapi、Sonic等;js+Django2實作UI自動化測試平台;使Testng架構進行接口測試;Vue+fastapi寫過測試平台;python+selenium UI自動化;python+httprunner,接口文檔解析自動生成字段校驗用例;python+RobotFramework做過UI;Java做過單元測試,熟悉基礎文法;學過JavaSE,JavaEE,實戰經驗不多;Python Pyqt GUI工具開發;Python 接口自動化、APP自動化架構設計及編碼;獨立負責主導Python+Locust性能測試;三方庫和标準庫:unittest、pytest、appium、selenium、request、httprunner;畫過簡單的html、css;App UI自動化架構搭建:pytest+appium+allure+jenkins接口自動化架構搭建:pytest+request+allure+jenkins二次開發及維護過flask+vue接口測試平台;二次開發及維護過springboot+angularUI測試平台;Pytest+Playwright UI自動化腳本編寫;”
我總結了幾個關鍵字:Vue、Django、SpringBoot、Flask、FastAPI、ElementUI、RobotFramework、腳本開發、工具開發、平台開發、接口自動化、UI自動化、APP自動化。
項目計劃
招募,人員分工,需求分析,設計,編碼,測試,上線。
由于是以學習為目的,加上都是業餘時間投入,也有其他事情要忙,是以該項目不會像真正項目那樣,設定裡程碑和傳遞節點,會給足夠的學習時間,戰線拉得比較長,過程大于結果。
需求分析
MeterSphere官方給出的功能清單,接口自動化相關的子產品有接口定義和接口自動化。
接口定義包括以下功能:
線上添加并編輯接口定義;
以樹狀形式展示項目的子產品及對應接口;
支援HTTP、Dubbo、SQL、TCP類型接口請求;
支援通過MeterSphere Json、Postman、Swagger 等多種格式檔案快速導入接口,Swagger可通過URL定時同步;
支援接口快捷調試;
根據接口定義快速配置HTTP、TCP協定Mock服務;
API清單、CASE清單、文檔模式多種模式靈活切換;
接口頁面API、TEST、CASE、MOCK多種操作靈活切換;
測試環境資訊管理功能;
單接口用例支援引用環境;
支援正則比對、jsonpath、xpath等多種類型的斷言規則;
支援正則比對、jsonpath、xpath等多種類型的參數提取;
支援BeanShell、Python、Groovy、JavaScript等多種語言的前後置腳本;
支援前置SQL、後置SQL;
支援上傳并引用自定義Jar包;
支援檢視接口及用例變更曆史;
手動執行、定時任務、Jenkins插件觸發等多種執行方式;
API、CASE一鍵複制;
CASE一鍵建立性能測試;
接口定義依賴關系設定;
接口自動化包括以下功能:
建立多接口串聯的場景化測試;
從接口清單中快速導入接口或接口用例;
跨項目的場景引用功能;
用戶端SSL證書認證配置;
場景用例支援引用環境;
支援條件、循環、事務、等待等多種類型的控制器;
支援正則比對、jsonpath、xpath等多種類型的斷言規則;
支援正則比對、jsonpath、xpath等多種類型的參數提取;
支援BeanShell、Python、Groovy、JavaScript等多種語言的前後置腳本;
場景變量提供多種類型;
提供Mock資料和JMeter變量表達式;
環境配置增加區分子產品、路徑兩種方式添加域名;
增加全局前置腳本、全局後置腳本;
基于插件機制實作其他協定;
支援上傳并引用自定義Jar包;
支援檢視場景用例變更曆史;
手動執行、定時任務、Jenkins插件觸發等多種執行方式;
串行、并行兩種批量執行方式自由選擇;
支援指定測試資源池遠端執行;
可多場景串行、并行執行;
場景一鍵建立性能測試;
場景一鍵複制;
場景批量執行可自由選擇獨立報告或集合報告;
場景一鍵添加到測試計劃;
除此之外還有:
支援消息通知(微信、釘釘、飛書、郵件);
本項目要做的,基本就是這些功能。