MeterSphere使用指南

news/2024/11/16 19:33:11/文章来源:https://www.cnblogs.com/zgq123456/p/18295719

一、简介

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

https://github.com/metersphere

产品优势

开源:基于开源、兼容开源;按月发布新版本、日均下载安装超过100次、被大量客户验证;
一站式:一个产品全面涵盖测试跟踪、接口测试、性能测试等功能并形成联动:其中用例管理是底座需求、接口自动化测试是高频需求、性能测试是专家服务为主工具为辅;一个产品全满足从测试计划、测试执行到测试报告分析的全生命周期需求;
持续测试:能将测试融入持续交付和 DevOps 体系;无缝对接 Bug 管理工具和持续集成工具等;支持团队协作和资产沉淀。

主要功能

测试跟踪: 远超 TestLink 的使用体验,覆盖从编写用例到生成测试报告的完整流程;
接口测试: 集 Postman 的易用与 JMeter 的灵活于一体,接口管理、多协议支持(HTTP/TCP/SQL/DUBBO)、场景自动化;
性能测试: 兼容 JMeter,支持 Kubernetes 和云环境,轻松支持高并发、分布式的性能测试;
团队协作: 用户管理、租户管理、权限管理、资源管理,无论团队规模如何,总有适合的落地方式。

技术栈

后端: Spring Boot
前端: Vue.js
中间件: MySQL, Kafka
基础设施: Docker, Kubernetes
测试引擎: JMeter

二、整体架构

组件说明

  • Frontend: MeterSphere 的前端工程, 基于 vue.js 、Element组件库进行开发
  • Backend: MeterSphere 的后端工程, 基于 Spring Boot 进行开发, 为 MeterSphere 的功能主体
  • Chrome plugin: 浏览器插件, 录制 Web 访问请求生成 JMeter 脚本并导入到 MeterSphere 中用于接口测试及性能测试
  • Node controller: 为性能测试提供独立节点类型的测试资源池, 接收来自系统的性能测试任务, 动态的启动 JMeter 容器完成性能测试,基于 Spring Boot 进行开发
  • MySQL: MeterSphere 项目的主要数据均存储在 MySQL
  • Kafka: 接收 JMeter 产生的性能测试结果数据
  • Data streaming: 从 Kafka 中获取性能测试结果数据进行处理后存入 MySQL 数据库,基于 Spring Boot 进行开发
  • Docker engine: 为 Node Controller 提供 JMeter 容器运行环境
  • Jenkins-plugin:在 Jenkins 中安装该插件后可将 Jenkins 任务中添加 MeterSphere 构建环节,用户在该构建环节中配置 MeterSphere 平台的认证信息后,可选择指定项目下的接口/性能测试进行触发执行。

各个组件间的关系可参考下图

概念说明

MeterSphere 提供了多租户、多角色的管理模型, 用户可根据所在团队的实际情况进行灵活的租户体系映射

  • 系统: 每个独立部署的 MeterSphere 即称为一套系统
  • 系统级角色: 角色的权限范围为整个系统, 常见的角色如系统管理员, 可管理整个系统内的租户、用户及测试资源, 同时可变更修改系统级配置参数
  • 组织: MeterSphere 中的一级租户, 可映射为一个公司下的不同部门
  • 组织级角色: 角色的权限范围限定在某个组织当中, 常见的角色如组织管理员, 可管理整个组织内的成员、工作空间及成员等
  • 工作空间: MeterSphere 中的二级租户, 可映射为一个部门下的不同团队、项目组
  • 工作空间级角色: 角色的权限范围限定在某个工作空间当中, 常见的角色如工作空间管理员及普通用户, 可在工作空间中创建项目、发起测试、查看测试报告等
  • 不同的角色具有怎样的权限,请参考权限矩阵

三、安装部署

环境要求

部署服务器要求

  • 操作系统: 任何支持 Docker 的 Linux x64
  • CPU/内存: 4核8G
  • 磁盘空间: 20G
  • 可访问互联网

安装

执行安装脚本
以 root 用户 ssh 登录目标服务器, 执行如下命令

curl -sSL https://github.com/metersphere/metersphere/releases/latest/download/quick_start.sh | sh

安装脚本默认使用 /opt/metersphere 目录作为安装目录,MeterSphere 的配置文件、数据及日志等均存放在该安装目录

更新

如果您的服务器可以访问互联网, 可以通过以下命令直接升级 metersphere 至最新版本

# 升级至最新版本
msctl upgrade
# 查看 MeterSphere 状态
msctl status# 配置变动后重启
systemctl restart docker
msctl reload

自 MeterSphere v1.3.0 起之后的版本才提供 upgrade 命令

更新说明

https://metersphere.io/docs/about/changelog/

登录并使用

登录
安装成功后,通过浏览器访问如下页面登录 MeterSphere

地址: http://目标服务器IP地址:8081
用户名: admin
密码: metersphere

登录超时配置

vim /opt/metersphere/conf/metersphere.properties添加以下配置,单位秒
session.timeout=86400重启ms-data-streaming服务
docker restart CONTAINER ID

日志查询

docker logs ms-server
docker logs ms-data-streaming
docker logs ms-node-controller
docker logs mysql
docker logs kafka

四、接口测试

接口测试工作流

实际案例

  • 创建项目

  • 上传jar包

  • 项目环境配置

  • 接口定义-导入已有,支持多种数据格式导入

备注:jmeter中脚本编写不太规范的话,导入可能会提示找不到引用的jar包方法

  • 接口定义-手动创建

  • 添加接口用例

  • 完善用例(可根据接口定义增加接口异常流)

  • 接口用例可添加前后置脚本、断言、参数提取等

  • 前后置脚本,与Jmeter一样
import com.xdja.wch.DFSBase;
DFSBase dfsBase = new DFSBase();//获取fastdfs服务器系统时间
log.info("-----timestamp------:"+"${timestamp}");Long timestamp1 = Long.parseLong("${timestamp}");
//log.info("-----timestamp1------:"+ timestamp1);Long time = timestamp1 + 8460000;
String ts = String.valueOf(time);
vars.put("ts",ts);String data = "${name}" + ts + "${appId}";String sign = dfsBase.hamcsha1(data, "123456");
//log.info("-----sign------:"+sign);vars.put("sign",sign);

  • 接口自动化-创建场景

  • 接口自动化-场景中导入接口用例,建议引用方式,方便维护

  • 接口自动化-场景中用例调试,微调用例顺序

  • 接口自动化-复制场景用例(准生产环境复用测试环境接口场景用例)

五、Jenkins集成

安装插件

https://github.com/metersphere/jenkins-plugin

  • 下载jenkins-plugin插件metersphere-jenkins-plugin.hpi
  • Jenkins安装插件

  • 创建项目-API Keys由MeterSphere进行配置

  • API Keys

  • 执行方式-测试计划

  • 执行方式-性能测试场景、接口测试场景或者单接口定义

  • 开始执行

  • 邮件通知

  • 报告展示

六、性能测试

性能测试工作流

实际案例

  • 创建性能测试

  • 引用接口测试场景

  • 压力配置

  • 高级配置

  • 保存并执行,可再次执行、导出报告、下载JTL

  • 可查看请求统计、错误记录、日志详情等

七、问题处理

消息通知

  • 邮件测试连接可以正常收到通知邮件,但是接口自动化执行成功后未收到邮件
[root@xdja metersphere]# cd /opt/metersphere/logs/metersphere[root@xdja metersphere]# tail -2000f error.log# 发现如下报错信息
2021-04-15 10:55:01,122 [Async-Executor4] ERROR i.m.n.sender.impl.MailNoticeSender ? - Method[send][org.springframework.mail.MailSendException: Mail server connection failed; nested exception is javax.mail.MessagingException: STARTTLS is required but host does not support STARTTLS. Failed messages: javax.mail.MessagingException: STARTTLS is required but host does not support STARTTLS; message exceptions (1) are:
Failed message 1: javax.mail.MessagingException: STARTTLS is required but host does not support STARTTLS]
  • 系统设置-邮件设置,将开启TLS(如果SMTP端口是587,通畅需要启用TLS)勾选去掉,即可正常收取通知邮件

性能测试报错

  • 首次执行性能测试报如下错误

Check node-controller /etc/hosts, 127.0.0.1 ${hostname} must be contained. Please delete the report and rerun.
  • 在部署 node-controller 的机器上,使用hostname命令获取主机名
[root@xdja ~]# hostname
xdja[root@xdja ~]# vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
  • 将获取到的主机名xdja配置到 /etc/hosts 文件中,配置完成效果如下
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
127.0.0.1   xdja
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

性能测试结果偏差

  • MeterSphere与原生Jmeter对同一接口性能测试,结果差距较大

  • 已提交Issues

八、使用感受

  • 开源、高度集成、所使用的技术栈适合二次开发
  • 整套流程相对符合使用习惯,便于不同技术水平的同事上手
  • 可以将零散的Jmeter接口用例统一维护管理起来,便于协作、评审、复用,提升效能
  • 项目测试进度可视化,便于度量接口测试质量
  • 可以较好的集成Jenkins实现自动化
  • 部分页面易用性差
  • 性能测试结果与原生Jmeter存在差距

九、拓展功能

浏览器录制插件

Jenkins插件

消息服务

十、企业版及专业服务

企业版及专业服务

X-Pack增强包

# linux

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/742115.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pwnable.tw | 第2题orw

pwnable.tw第2题orw### 前言 pwnable.tw第二题 分析 IDA打开,发现是直接读入shellcode后执行orw_seccomp显然是限制了shellcode进行系统调用seccomp-tools查看到open\read\write这些系统调用没被禁用 利用 # -*- coding: utf-8 -*- from pwn import *io = remote("chall.…

pwnable.tw | 第二题orw

pwnable.tw之第二题orw### 前言 pwnable.tw第二题 分析 IDA打开,发现是直接读入shellcode后执行orw_seccomp显然是限制了shellcode进行系统调用seccomp-tools查看到open\read\write这些系统调用没被禁用 利用 # -*- coding: utf-8 -*- from pwn import *io = remote("cha…

Docker 因端口映射不一致出现的问题

问题描述 因为服务器原先已经安装了nginx(非容器安装),并且占用80端口; 而我方习惯使用容器进行安装应用,故用安装了一个容器ngixn; docker-compose.yml version: 3 services:nginx:restart: alwayscontainer_name: nginximage: nginxports:- 81:80- 443:443volumes:- /dat…

最开始学java时写的文档

最开始学java时写的的文档一,java基础 1.常用cmd窗口操作 E: 切换到e盘 dir 查看当前路径下的内容 cd 目录 进入单级目录 cd.. 退回到上一级目录 cd 目录1\目录2\ 进入多级目录 cls清屏但不会退出当前目录 exit关闭cmd窗口 想要在任意目录下都可以打开指定软件可以把软…

探索大模型:袋鼠云在 Text To SQL 上的实践与优化

Text To SQL 指的是将自然语言转化为能够在关系型数据库中执行的结构化查询语言(简称 SQL)。近年来,伴随人工智能大模型技术的不断进步,Text To SQL 任务的成功率显著提升,这得益于大模型的推理、理解以及指令遵循等能力。 对于大数据平台来说,集成 Text To SQL 功能意义…

jdk离线安装包下载

下载 华为云 https://repo.huaweicloud.com/java/jdk/ 小站点(比较全) https://www.injdk.cn/ 华为云,比较老旧小站点,推荐安装 rpm - *.rpm

PMP-生命周期

生命周期项目的起点是项目章程得到批准。解散资源是项目的结束点。 项目生命周期,阶段和阶段关口项目生命周期:指项目的启动到完成经历的一系列阶段。项目阶段:是一组具有逻辑关系的项目活动的集合。通常以一个或多个可交付成果为结束。阶段关口:在项目阶段结束时进行,将…

乘用车1-5月销量同比增长7%,火山引擎数据飞轮能帮车企盘活下半年增长吗?

火山引擎推出企业数智化升级新模式“数据飞轮”,并面向汽车行业输出覆盖智能营销、汽车联网等场景在内的全套解决方案,在历经一年的行业实践后,已经成为越来越多车企实现数智化升级的模式选择。对车企来说,更贴合市场趋势以及业务需求的数智化升级,或许是实现下半年进一步…

光猫改桥接 河南移动 ZXHN F663N

光猫改桥接 河南移动 ZXHN F663N 基本情况 本人地区 河南移动,光猫型号 中兴 ZXHN F663N 因为当前光猫密码已经被自动修改过,已经不是网上可以随便搜索到的管理员密码,所以获取密码直接找了咸鱼,几块钱搞定,查的很快 备份原有配置数据 在改桥接之前,我还是想备份一下配置…

WordPress将管理员用户主页修改网站首页

最近在做 WordPress 站群的一些项目测试,主题在调用作者的时候就会链接到作者主页,加上很多时候 WordPress 网站就只会使用一个账户来发布文章,虽然可以通过修改主题代码的方式将作者的链接直接链接到网站首页,但是作为一个优雅的 WordPress 开发者来说,肯定是不会轻易动主…

【学习笔记】四边形不等式优化 DP

命运是不可见的星辰,人们往往无法看见命运的全貌,却一直被它指引前行。从繁星点点中,梵天能够窥见命运的轨迹。决策单调性对于最优化问题 \(f_{i}=\min\limits_{j=1}^{i} \{ w_{j,i} \}\) 称 \(w(j,i)\) 为成本函数,参数为 \(i\) 的最优化问题称为问题 \(i\) ,记问题 \(i\…