MeterSphere学习笔记

项目介绍

MeterSphere 是一站式的开源企业级持续测试平台,涵盖测试跟踪、接口测试、性能测试、团队协作等功能,兼容JMeter 等开源标准,有效助力开发和测试团队充分利用云弹性进行高度可扩展的自动化测试,加速高质量软件的交付。

具体怎么安装使用这里就不介绍了,请阅读官方文档,文档非常详细。

系统架构

  • Frontend: MeterSphere 的前端工程, 基于 vue.js 进行开发
  • Backend: MeterSphere 的后端后称, 基于 Sprint boot 进行开发, 为 MeterSphere 的功能主体
  • Chrome plugin: 浏览器插件, 录制 web 访问请求生成 JMeter 脚本并导入到 MeterSphere 中用于接口测试及性能测试
  • Node controller: 为性能测试提供独立节点类型的测试资源池, 接收来自系统的性能测试任务, 动态的启动 JMeter 容器完成性能测试
  • MySQL: MeterSphere 项目的主要数据均存储在 MySQL
  • Kafka: 接收 JMeter 产生的性能测试结果数据
  • Data streaming: 从 Kafka 中获取性能测试结果数据进行处理后存入 MySQL 数据库
  • Docker engine: 为 Node Controller 提供 JMeter 容器运行环境
  • 原理

    1.前端UI操作创建测试场景,在前端转成JMX(JMeter文件)文件,传给后端。JMX文件本身其实一个xml文件。可以前端用JS拼出来

    2.后端把JMX文件保存到MySql。

    3.当单独执行接口自动化时,直接使用LocalRunner去执行。LocalRunner其实就是JMeter的StandardJMeterEngine执行引擎。

    4.然后使用APIBackendListenerClient收集测试数据生成 告。

    5.当执行性能测试时,就不会用LocalRunner执行了,而是和真正的JMeter容器去执行。

    6.Node controller接收测试任务,然后使用一个docker api动态创建JMeter容器运行环境。在创建容器过程中也把JMX文件和测试数据文件也复制进去。

    7.在JMeter中执行时,会使用jmeter-backend-listener-kafka把测试数据发给Kafka

    8.Data streaming从 Kafka 中获取性能测试结果数据进行处理后存入 MySQL 数据库。

    容器

    1.ms-server是使用metersphere-server项目下的dockerfile生成的镜像。打包时把frontend和backend打包在一起了。

    如果看dockerfile,可能会有疑问为什么只复制后端jar包,没有看到前端的。

    前端文件其实是在backend的pom文件复制过来的。

    2. node-controller是一个单独项目,它用docker-java动态创建JMeter容器。很多同学找不到JMeter的dockerfile。其实在metersphere-server下。

    Jmeter-base在做什么?

    下载JMeter,安装各种组件包括kafka-backend-listener.

    JMeter-master在做什么?

    其实这里最重要一点儿,执行run-test.sh

    其实就是以命令方式执行JMeter测试任务。

    3.zookeeper和kafka是配套的,所以有这两个容器。Data-streaming这个容器会去订阅kafka的topic,处理测试数据存入mysql。

    4.安装过程使用install.sh文件,调用docker-compose一键安装。

    怎么在windows下调试

    Windows下只跑接口测试比较简单,如果要做性能测试就比较麻烦,需要安装zookeeper、kafka。我只是在本机安装一个mysql,只调试接口测试。

    除了参考官方文档之外还是做以下事情:

    1.安装mysql,创建一个数据库叫metersphere_dev

    2.创建配置文件C:optmetersphereconfmetersphere.properties

    3.metersphere-server 服务依赖的 Jmeter 核心类库需要加载 jmeter 配置文件,默认加载 c:/opt/jmeter 下的配置文件。开发者需要先创建好对应文件夹,并将工程目录中 backend/src/main/resources/jmeter/bin 目录下的配置文件拷贝到 c:/opt/jmeter/bin 目录

    4.读取配置文件

    5.Backend直接用idea启动就好

    6.前端使用npm install和npm run serve启动。

    7.为什么不用手工创建数据库表?因为项目当中使用了mybatis和flyway,当项目运行时会自动化创建表。

    声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

    上一篇 2020年9月27日
    下一篇 2020年9月27日

    相关推荐