前端代碼結構
├── package.json #Vue的模塊依賴定義
├── pom.xml #Maven前后端打包的定義與依賴
├── public
├── src #前端核心代碼
│ ├── assets #靜態圖片資源
│ ├── business
│ │ ├── App.vue #根組件
│ │ ├── components #功能頁面目錄
│ │ │ ├── api #接口測試
│ │ │ ├── common #公共和主框架
│ │ │ ├── performance #性能測試
│ │ │ ├── project #項目管理
│ │ │ ├── settings #系統設置
│ │ │ ├── track #測試跟蹤
│ │ │ └── xpack #商業化功能
│ │ ├── index.html #主頁,項目入口
│ │ ├── main.js #入口文件
│ │ ├── permission.js
│ │ └── store.js
│ ├── common #靜態資源
│ │ ├── css
│ │ └── js
│ ├── i18n #國際化
│ └── login #登錄
│ ├── Login.vue
│ ├── login.html
│ └── login.js
├── vue.config.js #vue配置類
性能測試運行后端代碼簡析
- 前端點擊【保存並運行】
frontend/src/business/components/performance/test/EditPerformanceTest.vue
saveAndRun() {
......
this.result = this.$request(options, (response) => {
this.test.id = response.data;
this.$success(this.$t('commons.save_success'));
this.result = this.$post(this.runPath, {id: this.test.id, triggerMode: 'MANUAL'}, (response) => {
......
- 請求后端/performance/run
backend/src/main/java/io/metersphere/performance/controller/PerformanceTestController.java
# 啟動前會檢查kafka是否可用
PerformanceTestService.checkKafka()
# 守護進程等待壓測任務完成,刷新數據庫數據
PerformanceNoticeTask.registerNoticeTask(LoadTestReportWithBLOBs)
- 請求node-controller
#使用jmeter容器發起壓測請求,結果數據會保存到kafka
PerformanceTestService.startEngine(LoadTestWithBLOBs, Engine, String)
DockerTestEngine.start()
......
String uri = String.format(BASE_URL + "/jmeter/container/start", nodeIp, port);
......
- data-streaming項目消費kafka數據
生成測試結果數據 load_test_report_detail和load_test_report_result
修改數據庫中testId的測試狀態
registerNoticeTask輪休數據庫狀態變化完成壓力測試
官方代碼結構
├── Dockerfile # 構建容器鏡像使用的 dockerfile
├── LICENSE
├── README.md
├── ROADMAP.md
├── backend # 后端項目主目錄
│ ├── backend.iml
│ ├── pom.xml # 后端 maven 項目使用的 pom 文件
│ └── src # 后端代碼目錄
├── frontend # 前端項目主目錄
├── babel.config.js
│ ├── frontend.iml
│ ├── node
│ ├── node_modules
│ ├── package-lock.json
│ ├── package.json
│ ├── pom.xml # 前端 maven 項目使用的 pom 文件
│ ├── public
│ └── src # 前端代碼目錄
├── metersphere-server.iml
└── pom.xml # 整體 maven 項目使用的 pom 文件
掃一掃,關注我