測試平台MeterSphere源碼入門


前端代碼結構
├── 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配置類

性能測試運行后端代碼簡析

  1. 前端點擊【保存並運行】
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) => {
      ......
  1. 請求后端/performance/run
backend/src/main/java/io/metersphere/performance/controller/PerformanceTestController.java

image

# 啟動前會檢查kafka是否可用
PerformanceTestService.checkKafka()
# 守護進程等待壓測任務完成,刷新數據庫數據
PerformanceNoticeTask.registerNoticeTask(LoadTestReportWithBLOBs) 
  1. 請求node-controller
#使用jmeter容器發起壓測請求,結果數據會保存到kafka
PerformanceTestService.startEngine(LoadTestWithBLOBs, Engine, String)
DockerTestEngine.start() 
    ......
    String uri = String.format(BASE_URL + "/jmeter/container/start", nodeIp, port);
    ......

image

  1. 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 文件

掃一掃,關注我


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM