前端代码结构
├── 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

# 启动前会检查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);
......

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

扫一扫,关注我

最新文章

  1. cocos2dx中的ScrollView
  2. 从日常开发说起,浅谈HTTP协议是做什么的。
  3. Ruby1.9.3-下载网络图片至本地,并按编号保存。
  4. System.Linq.Dynamic
  5. [转] 使用memc-nginx和srcache-nginx模块构建高效透明的缓存机制
  6. JavaScript习题
  7. mysql HA方案: MHA
  8. hdu2712(贪心)
  9. Linux中Nginx反向代理下的tomcat集群
  10. JavaWeb(五)Filter过滤器
  11. mysql5.7在windows不能启动的方法及查看数据库大小命令
  12. redis 梳理笔记(二)
  13. find 命令的误差估值与单位调整
  14. vue不是内部或外部命令,配置一个Path系统变量就可以解决
  15. 关于select的使用感受~大坑~select不能添加点击事件触发~
  16. 【EF6学习笔记】(七)读取关联数据
  17. laravel管理员表中的模型
  18. Simple Web API Server in Golang (2)
  19. CSS非ASCII字符最佳实践
  20. Quartz.net 的 FAQ

热门文章

  1. unity官网安装教程
  2. DRF的ModelSerializer的使用
  3. 喝完可乐桶后程序员回归本源,开源Spring基础内容
  4. intelliJ IDEA 鼠标光标消失问题
  5. MySQL索引(二):建索引的原则
  6. PyQt(Python+Qt)学习随笔:QTreeWidgetItem项下子项的指示符展示原则childIndicatorPolicy
  7. PyQt学习随笔:截获窗口Widget组件的关闭事件
  8. PyQt(Python+Qt)学习随笔:布局控件layoutStretch属性
  9. msfvenom命令自动补全工具下载=>msfvenom-zsh-completion
  10. C语言网络编程(Linux && Windows)(1)