一站式开源持续测试平台Metersphere初探

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 Tair(兼容Redis),内存型 2GB
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
简介: MeterSphere 是一款一站式开源持续测试平台, 涵盖测试跟踪、接口测试、UI 测试和性能测试等,全面兼容 JMeter、Selenium 等主流开源标准。本篇文章为【开源持续测试平台横向测评系列】的第一篇正式文章,旨在从安装部署、接口测试、使用体验等多方面对MS开展评测,力争以真实的实战体验,对比各个平台的优缺点。

声明:以下文章内容所涉及的任何工具及平台均出自本人日常工作使用,或兴趣爱好研究。没有收到任何机构或组织充值,不存在任何广告行为。喜欢的点个赞、收藏、转发就好。

前言

前段时间满怀信心地发表了《开源测试平台横向测评系列》的预告篇,准备就Metersphere、Yapi、teprunner、流马、sonic等各大开源测试平台从安装、试用等多个维度开展对比、总结,并记录成文档发表在文章上。原计划是分多篇来写:部署篇、使用篇、拓展篇、总结篇,中间有个群友建议可以只写一篇万字长文,这样也方便大家统一收藏和转载。想想也觉得挺有道理,就改变了原计划。一直以来,这件事情也在有条不紊地进行着,虽然进度比较慢。可就在前几天,已经写了一半,部署各大测试平台的那台服务器突然中病毒挂掉了,不得不重新安装系统,真是欲哭无泪。

趁着这个周末,我正在慢慢地将各个服务恢复,刚好也借着这个机会,把各个平台的部署、用法又重新梳理了一遍,准备还是按原计划分多篇进行,稍有不同的是,会分成每个平台写一篇文章,最后再写一篇总结对比。这样,写一篇发一篇,进度可能还会快一些,免得攒了好久最后还得推倒重来、前功尽弃。

本篇可以算作是这个系列的第一篇正式文章,主要介绍一站式开源持续测试平台Metersphere,以下简称MS。内容大概分为以下几个方面:

  • MS简介
  • 安装部署
  • 接口测试
  • 性能测试
  • 使用总结

一、简介

1.项目介绍

项目地址:https://github.com/metersphere/metersphere

使用文档:https://metersphere.io/docs/

MeterSphere 是一款一站式开源持续测试平台, 涵盖测试跟踪、接口测试、UI 测试和性能测试等,全面兼容 JMeter、Selenium 等主流开源标准,能够有效助力开发和测试团队在线共享协作,实现端到端的测试管理跟踪可视化、自动化测试、性能测试及融入持续交付 DevOps 体系,并充分利用云弹性进行高度可扩展的自动化测试,从而加速高质量的软件交付,推动中国测试行业整体效率的提升。(官方简介)

2.产品优势

  • 开源:基于开源、兼容开源;按月发布新版本、日均下载安装超过100次、被大量客户验证;
  • 一站式:一个产品全面涵盖测试跟踪、接口测试、UI测试、性能测试并打通联动;
  • 全生命周期:一个产品满足从测试计划、测试执行到测试报告分析的全生命周期需求;
  • 持续测试:无缝对接 Bug 管理工具和持续集成工具等,能将测试融入持续交付和 DevOps 体系;
  • 团队协作:在线 Web 门户、分权分域,在线共享协作管理资产沉淀资产,支持建立公司级门户,无论团队规模如何,总有适合的落地方式。

3.主要功能

  • 测试跟踪: 对接主流项目管理平台,测试过程全链路跟踪管理;列表脑图模式自由切换,用例编写更简单、测试报告更清晰;
  • 接口测试: 比 JMeter 易用,比 PostMan 强大; API 管理、Mock 服务、场景编排、多协议支持,你想要的全都有;
  • UI 测试: 基于 Selenium 浏览器自动化,高度可复用的测试脚本;无需复杂的代码编写,人人都可开展的低代码自动化测试(企业版支持,社区版不支持);
  • 性能测试: 兼容 JMeter 的同时补足其分布式、监控与报告以及管理短板; 轻松帮助团队实现高并发、分布式的性能压测,完成压测任务的统一调度与管理。

4.界面展示

测试跟踪首页

接口测试首页

二、安装部署

1.下载离线安装包

由于项目较为庞大,且在线安装是通过GitHub下载,速度较慢,因此采用离线安装的方式较为妥当。离线安装的另一好处就是可以在安装前自由配置各个组件的端口号。

项目地址:https://github.com/metersphere/metersphere/releases

官方文档:https://metersphere.io/docs/installation/offline_installation/

下载地址:https://community.fit2cloud.com/#/download/metersphere/v2-0-0

我下载的是最新版2.0的安装包,解压安装包:

tar -xvf metersphere-offline-installer-v2.0.0.tar.gz

2.目录结构

通过解压后的目录文件可以看出:

  • docker目录:主要存放docker及docker-compose相关的命令脚本,由于我的服务器已经安装过,所以后续安装过程会跳过docker及docker-compose的安装(安装日志中可以看出)
  • images:目录主要存放MS各个组件的相关镜像文件(用于创建各个组件对应的容器)
  • metersphere:目录主要存放MS各个组件的docker-compose的yml配置文件(docker-compose根据对应的yml文件安装各个组件、容器编排)
  • install.conf:为安装配置文件(install.sh安装时会读取此配置文件)
  • install.sh:为MS整个项目的安装脚本
  • msctl:为MS项目的管理命令工具,类似gitlab的gitlab-ctl命令

3.修改安装配置文件

修改配置文件install.conf,如果一些端口已被其他服务占用,需要提前修改好端口号,比如mysql的3306、redis的6379等

# 基础配置## 安装路径, MeterSphere 配置及数据文件默认将安装在 ${MS_BASE}/metersphere 目录下MS_BASE=/opt
## MeterSphere 使用的 docker 网络网段信息MS_DOCKER_SUBNET=172.30.10.0/24
## 镜像前缀, MeterSphere 相关组件使用的 Docker 镜像前缀, 例如 registry.cn-qingdao.aliyuncs.com/metersphereMS_IMAGE_PREFIX=registry.cn-qingdao.aliyuncs.com/metersphere
## 镜像标签, MeterSphere 相关组件使用的 Docker 镜像标签MS_IMAGE_TAG=v2.0.0
## 性能测试使用的 JMeter 镜像MS_JMETER_IMAGE=${MS_IMAGE_PREFIX}/jmeter-master:5.5-ms1-jdk11
## 安装模式MS_INSTALL_MODE=allinone
## MeterSphere 主程序的 HTTP 服务监听端口MS_SERVER_PORT=8081MS_SERVER_HTTPS_PORT=8444## MeterSphere Node-Controller 组件的 HTTP 服务监听端口MS_NODE_CONTROLLER_PORT=8082MS_NODEEXPORTER_PORT=9100# 数据库配置## 是否使用外部数据库MS_EXTERNAL_MYSQL=false## 数据库地址MS_MYSQL_HOST=mysql
## 数据库端口MS_MYSQL_PORT=3307## 数据库库名MS_MYSQL_DB=metersphere
## 数据库用户名MS_MYSQL_USER=root
## 数据库密码MS_MYSQL_PASSWORD=Password123@mysql
# Prometheus 配置## 是否使用外部PrometheusMS_EXTERNAL_PROM=falseMS_PROMETHEUS_PORT=9090# Redis 配置## 是否使用外部RedisMS_EXTERNAL_REDIS=false## Redis 端口MS_REDIS_PORT=6380## Redis 密码MS_REDIS_PASSWORD=Password123@redis
## Redis地址MS_REDIS_HOST=$(hostname -I|cut -d" " -f 1)# Kafka 配置## 是否使用外部 KafkaMS_EXTERNAL_KAFKA=false## Kafka 地址MS_KAFKA_HOST=192.168.1.122
## Kafka 端口MS_KAFKA_PORT=9092## 性能测试结果数据使用的 Kafka TopicMS_KAFKA_TOPIC=JMETER_METRICS
## 性能测试日志数据使用的 Kafka TopicMS_KAFKA_LOG_TOPIC=JMETER_LOGS
## 性能测试定时任务通知使用的 Kafka TopicMS_KAFKA_TEST_TOPIC=LOAD_TESTS
## 重构后性能测试结果数据使用的 Kafka TopicMS_KAFKA_REPORT_TOPIC=JMETER_REPORTS
# TCP MOCK 端口范围MS_TCP_MOCK_PORT=10000-10010# seleniarm 容器配置## 是否启动seleniarm容器MS_SELENIARM_ENABLED=false

4.安装MS

/bin/bash install.sh

安装过程log:

注意:MS安装和运行依赖docker和docker-compose,如果识别到系统中不存在docker的话,安装MS过程中会先安装docker和docker-compose,如果识别到已经安装,则会跳过安装。

存在已安装的 MeterSphere, 安装目录为 /opt/metersphere, 执行升级流程

[MeterSphere Log]: 拷贝安装文件到目标目录 
‘./metersphere/docker-compose-kafka.yml’ -> ‘/opt/metersphere/docker-compose-kafka.yml’ (backup: ‘/opt/metersphere/docker-compose-kafka.yml.20220803-1415’)
‘./metersphere/docker-compose-redis.yml’ -> ‘/opt/metersphere/docker-compose-redis.yml’
‘./metersphere/docker-compose-prometheus.yml’ -> ‘/opt/metersphere/docker-compose-prometheus.yml’ (backup: ‘/opt/metersphere/docker-compose-prometheus.yml.20220803-1415’)
‘./metersphere/docker-compose-node-controller.yml’ -> ‘/opt/metersphere/docker-compose-node-controller.yml’ (backup: ‘/opt/metersphere/docker-compose-node-controller.yml.20220803-1415’)
‘./metersphere/docker-compose-mysql.yml’ -> ‘/opt/metersphere/docker-compose-mysql.yml’ (backup: ‘/opt/metersphere/docker-compose-mysql.yml.20220803-1415’)
‘./metersphere/conf/my.cnf’ -> ‘/opt/metersphere/conf/my.cnf’ (backup: ‘/opt/metersphere/conf/my.cnf.20220803-1415’)
‘./metersphere/conf/version’ -> ‘/opt/metersphere/conf/version’ (backup: ‘/opt/metersphere/conf/version.20220803-1415’)
‘./metersphere/conf/redis.conf’ -> ‘/opt/metersphere/conf/redis.conf’
‘./metersphere/conf/prometheus/prometheus.yml’ -> ‘/opt/metersphere/conf/prometheus/prometheus.yml’ (backup: ‘/opt/metersphere/conf/prometheus/prometheus.yml.20220803-1415’)
‘./metersphere/conf/metersphere.properties’ -> ‘/opt/metersphere/conf/metersphere.properties’ (backup: ‘/opt/metersphere/conf/metersphere.properties.20220803-1415’)
‘./metersphere/version’ -> ‘/opt/metersphere/version’ (backup: ‘/opt/metersphere/version.20220803-1415’)
‘./metersphere/docker-compose-seleniarm.yml’ -> ‘/opt/metersphere/docker-compose-seleniarm.yml’
‘./metersphere/docker-compose-base.yml’ -> ‘/opt/metersphere/docker-compose-base.yml’ (backup: ‘/opt/metersphere/docker-compose-base.yml.20220803-1415’)
‘./metersphere/docker-compose-server.yml’ -> ‘/opt/metersphere/docker-compose-server.yml’ (backup: ‘/opt/metersphere/docker-compose-server.yml.20220803-1415’)
‘./metersphere/logs/README.md’ -> ‘/opt/metersphere/logs/README.md’ (backup: ‘/opt/metersphere/logs/README.md.20220803-1415’)
[MeterSphere Log]: ======================= 开始安装 =======================[MeterSphere Log]: 检测到 Docker 已安装,跳过安装步骤 
[MeterSphere Log]: 启动 Docker  
Redirecting to /bin/systemctl start docker.service
[MeterSphere Log]: 检测到 Docker Compose 已安装,跳过安装步骤 
[MeterSphere Log]: 加载镜像 
Loaded image: registry.cn-qingdao.aliyuncs.com/metersphere/jmeter-master:5.5-ms1-jdk11
Loaded image: registry.cn-qingdao.aliyuncs.com/metersphere/kafka:3.2.0
Loaded image: registry.cn-qingdao.aliyuncs.com/metersphere/metersphere:v2.0.0
Loaded image: registry.cn-qingdao.aliyuncs.com/metersphere/ms-data-streaming:v2.0.0
Loaded image: registry.cn-qingdao.aliyuncs.com/metersphere/ms-node-controller:v2.0.0
Loaded image: registry.cn-qingdao.aliyuncs.com/metersphere/mysql:8.0.28
Loaded image: registry.cn-qingdao.aliyuncs.com/metersphere/node-exporter:latest
Loaded image: registry.cn-qingdao.aliyuncs.com/metersphere/prometheus:latest
Loaded image: registry.cn-qingdao.aliyuncs.com/metersphere/redis:6.2.6
Loaded image: registry.cn-qingdao.aliyuncs.com/metersphere/seleniarm-grid-all:4.1.4-20220519
[MeterSphere Log]: 启动服务 
Removing network metersphere_ms-network
Network metersphere_ms-network not found.
Removing volume metersphere_ms-conf
Volume metersphere_ms-conf not found.
Removing volume metersphere_ms-logs
Volume metersphere_ms-logs not found.
Removing volume metersphere_ms-data
Volume metersphere_ms-data not found.
Removing volume metersphere_ms-mysql-data
Volume metersphere_ms-mysql-data not found.
Removing volume metersphere_ms-prometheus-data
Volume metersphere_ms-prometheus-data not found.
Removing volume metersphere_ms-prometheus-conf
Volume metersphere_ms-prometheus-conf not found.
Removing volume metersphere_ms-redis-data
Volume metersphere_ms-redis-data not found.
Creating network "metersphere_ms-network" with driver "bridge"Creating volume "metersphere_ms-conf" with default driver
Creating volume "metersphere_ms-logs" with default driver
Creating volume "metersphere_ms-data" with default driver
Creating volume "metersphere_ms-mysql-data" with default driver
Creating volume "metersphere_ms-prometheus-data" with default driver
Creating volume "metersphere_ms-prometheus-conf" with default driver
Creating volume "metersphere_ms-redis-data" with default driver
Creating mysql ... 
Creating ms-prometheus ... 
Creating ms-node-controller ... 
Creating redis              ... 
Creating kafka              ... 
Creating kafka              ... doneCreating ms-prometheus      ... doneCreating mysql              ... doneCreating ms-node-controller ... doneCreating redis              ... doneCreating nodeexporter       ... 
Creating nodeexporter       ... doneCreating ms-data-streaming  ... 
Creating ms-data-streaming  ... doneCreating ms-server          ... 
Host is already in use by another container
Creating ms-server          ... error
ERROR: for ms-server  Cannot startservice ms-server: driver failed programming external connectivity on endpoint ms-server (52b0506605c32dc29746d636c3a11716044629df45c84791420753001770cb68): Error starting userland proxy: listen tcp4 0.0.0.0:8443: bind: address already in use
ERROR: for ms-server  Cannot startservice ms-server: driver failed programming external connectivity on endpoint ms-server (52b0506605c32dc29746d636c3a11716044629df45c84791420753001770cb68): Error starting userland proxy: listen tcp4 0.0.0.0:8443: bind: address already in use
Encountered errors while bringing up the project.
       Name                     Command                  State                                             Ports                                       
-------------------------------------------------------------------------------------------------------------------------------------------------------kafka                /opt/bitnami/scripts/kafka ...   Up (healthy)   0.0.0.0:9092->9092/tcp,:::9092->9092/tcp                                          
ms-data-streaming    /deployments/run-java.sh         Up (healthy)                                                                                     
ms-node-controller   /deployments/run-java.sh         Up (healthy)   0.0.0.0:8082->8082/tcp,:::8082->8082/tcp, 0.0.0.0:9100->9100/tcp,:::9100->9100/tcp
ms-prometheus        /bin/prometheus --config.f ...   Up (healthy)   0.0.0.0:9090->9090/tcp,:::9090->9090/tcp                                          
ms-server            /deployments/run-java.sh         Exit 128mysql                docker-entrypoint.sh mysqld      Up (healthy)   0.0.0.0:3307->3306/tcp,:::3307->3306/tcp, 33060/tcp                               
nodeexporter         /bin/node_exporter --path. ...   Up (healthy)                                                                                     
redis                docker-entrypoint.sh redis ...   Up (healthy)   0.0.0.0:6380->6379/tcp,:::6380->6379/tcp                                          
======================= 安装完成 =======================请通过以下方式访问:
 URL: http://$LOCAL_IP:8181
 用户名: admin
 初始密码: metersphere
 您可以使用命令 'msctl status' 检查服务运行情况.

根据安装日志,发现ms-server这个容器启动失败了,因为8443端口已被其他服务占用。当然如果你本地这个端口没有被占用的话,安装过程就会顺利些。所以最好在安装前提前确认好install.conf中默认的各个端口有没有被占用,或是提前修改为其他端口。

ms-server容器报错日志如下

原因:metersphere工作人员说是“flyway执行sql出错了”

解决方法:

① 进入mysql数据库,找到metersphere_version表里最后一条success值为0的数据,查看该条数据的script字段值,例如:V92_v1.11.2_release.sql

https://github.com/metersphere/metersphere/tree/master/backend/src/main/resources/db/migration上找到与第一步中script值相对应的sql文件,将文件中的sql语句复制到metersphere数据库中再执行一遍;

③ 执行完后,将该条数据的success字段值改为1

④ 重启ms-server容器

docker restart ms-server

再次查看各个组件状态,各个组件的相关容器均已启动:

msctl status

5.msctl命令

msctl命令是MS自带的管理工具,类似于Gitlab的gitlabctl命令。安装完成后,后续即可借助msctl统一管理MS相关的容器服务,例如:重启、停止、卸载等。我们可以查看帮助命令,了解其具体用法:

msctl --help
MeterSphere 控制脚本
Usage: 
  ./msctl.sh [COMMAND] [ARGS...]
  ./msctl.sh --helpCommands: 
  status    查看 MeterSphere 服务运行状态
start     启动 MeterSphere 服务
stop      停止 MeterSphere 服务
restart   重启 MeterSphere 服务
  reload    重新加载 MeterSphere 服务
  upgrade   升级 MeterSphere 至最新版本
  upgrade [RELEASE]  根据版本号搜索离线包,升级 MeterSphere 至对应版本
  uninstall 卸载 MeterSphere 服务
  version   查看 MeterSphere 版本信息

6.登录系统

http://192.168.1.122:8181/,账号:admin,初始密码:metersphere

三、接口测试

由于我安装的是社区版,不支持UI测试(企业版支持),所以重点以接口测试作为案例进行介绍。MS的接口测试引擎是Jmeter,相当于在Jmeter的基础上深度定制化。

1.接口定义

① 选择接口协议

点击左上角【HTTP】下拉框,可切换接口协议,目前支持HTTP、TCP、SQL和DUBBO四种协议。

② 创建模块树

接口定义可以分模块管理,按照测试项目实际功能划分为多级模块进行管理,最多可分八级。鼠标悬浮在模块顶部,点击【+】创建一级模块。

  • 模块支持重命名、添加子模块、删除、展开/收起子模块等操作,选中目录可进行拖拽调整。
  • 支持通过模块名称进行模糊查询。

③ 快速创建接口

接口定义详情页面,可填写基础信息、请求参数、响应内容等信息进行接口定义创建。

在API页面中可以对接口的基础信息、请求及响应定义、依赖关系进行详细编辑。

对已有的接口,更改接口地址、请求头、请求参数等内容,点击保存时,会弹出同步更新设置确认框。

接口编辑页面由四个功能Tab页组成:
1.【API】:接口定义详情页面
2.【TEST】:接口的调试信息页面
3.【CASE】:接口用例管理页面
4.【Mock】:接口Mock服务管理页面

请求头

MeterSphere提供默认请求头变量。

QUERY参数

QUERY参数是在接口地址栏中跟在?后面的参数,如 updateapi?id=11。

REST参数

REST参数是在接口地址栏中被【/】分隔的参数,如updateapi/{id}。

请求体

请求体参数支持多种形式:form-data,x-www-form-urlencoded,json,xml,raw,binary。

  • 请求体是 form-data 和 x-www-form-urlencoded 格式时,可以选择参数类型。不同的参数类型,系统会提供默认属性。

  • 请求体是 json 格式时,系统默认提供两种形式维护 json 格式。

认证配置

可支持 Basic Auth 的认证方式和对数据加密。

其他设置

可设置证书、跟随重定向、连接超时、响应超时时间等。

2.设置和使用环境变量

在MeterSphere中,可以设置“环境变量”,给使用指定同一测试环境参数测试的接口测试、场景自动化测试用例使用。 下表为在请求参数的QUERY参数、REST参数、请求体、前后置BeanShell脚本、前后置Python脚本中引用、设置变量的方法,以及调试时打印变量值且能够到控制台查看、转换变量类型的常用方法。

1.在“项目环境”页面中,如图,可以选择“创建环境”,在“创建环境”对话框“通用配置”选项卡下配置环境变量:

  • 通用配置中可以配置一些全局变量,如要登录的用户名、登录密码、或是其他一些常量;

  • HTTP配置中,可以配置项目的请求URL,一些固定不变的请求头等。后续测试过程中,可以直接选择此环境

运行测试

tab切换到TEST,注意:如果配置了全局环境,则需要在测试页面中选择配置的环境,我配置的环境名为rs_env,点击“测试”,如下:登录成功,返回response

3.接口参数传递

提取参数

在测试过程中,我们通常不止测试单一接口,还会测试接口的业务流程,这个时候就会用到“提取上一个接口的返回值、传递给后面的接口使用”。MS的参数提取与传递与Jmeter一致,可以使用Jsonpath方式提取:

例如:我当前B获取用户信息接口需要用到A登录接口返回体中的b字段(user_id),那么则可以在A登录接口的后置操作中添加其他参数的操作:取名为提取user_id,变量名为user_id,jsonpath表达式为$.b

引用参数

在B获取用户信息接口中,需要在接口请求头传入user_id,直接通过${user_id}引用:

4.创建接口流程

新增场景模块

在接口测试-接口自动化中,创建“场景”文件夹,例如:登录,随后新增一个场景,例如:登录流程。

导入接口

右侧“+”号展开后,可以选择从接口列表中选择之前创建的接口导入:

导入完成后,即可在登录流程这个场景中看到导入的接口作为步骤,拖动接口上下滑动可以调整步骤顺序。

用例导入

支持导入第三方测试用例,如Postman、Jmeter文件,以及Har格式等。

执行测试

在调试前,需要先选择运行环境

随后点击右侧调试按钮即可运行测试。通过下图可以看出,这个场景中包含的两个接口均执行通过。通过A接口传递过来的user_id,B接口成功获取到了用户信息:

测试报告

测试报告比较简洁,没那么多花里胡哨的东西,就是一些测试结果的展示,底部能看到相关响应信息

四、性能测试

1.新建测试

支持分布式部署,以Jmeter为测试引擎,可以导入执行Jmx脚本,也可以导入接口用例。对于场景、压力等配置,通过可视化界面就可以实现,比较人性化。

2.报告查看

对于性能测试我研究得不多,本次仅仅是导入了一个接口测试用例作为简单示例:

测试概览

服务器监控

五、使用总结

1.优点

① 功能强大且全面

MS的定位是一体化测试平台,除了提供上述介绍的接口测试和性能测试,还提供:

  1. UI自动化测试(社区版不支持)
  2. 测试跟踪:用例管理、缺陷跟踪(也可以集成jira、tapd等)
  3. 报表统计

功能基本上覆盖到了测试的方方面面。

② 用户手册详细

总体来说MS的用户手册及教程文档非常详细,只要花点功夫、大多数问题都能在上面找到答案。在部署和使用过程中,我基本都是参照官方使用手册。除了有少数找不到答案的问题,是在微信群里提问。

③ 社区活跃度高,关注用户

经过多年发展,粉丝基数也比较大(我加的微信群是47群)。社区活跃度高,活跃度高就意味着被大家认可和接受。粉丝提交issue和建议也是促进其不断优化迭代的基础。另外有一点,我做的比较好的,就是会有专门的MS方面的人沟通维系用户群体,跟进使用感受,收集意见反馈。

2.缺点

部署有一定难度

有优点也就有缺点,从我个人角度看,第一个缺点我觉得就是软件比较重带来部署难度问题。虽然它支持一键部署,但如果部署过程中出现问题,排查还是稍有困难。比如:

① 上述文中提到的端口占用问题,如果我事先就是没有一一排查端口占用,部署完成后服务起不来,如果不是专业人士,根本不知道要改数据库里的哪些东西;

② 我在部署过程中,修改了配置文件、使用外部Redis数据库,部署成功后,服务起不来,后来修改配置使用内部数据库,再次安装没有创建Redis容器(确认数据库配置没问题),最后卸载、删除所有相关目录,再次安装好了。

当然,以上并非完全是MS的问题。我只是强调根据个人水平和排查解决问题能力的不同,难度也会不同。如果用一个纯净版的服务器安装,可能会好很多。

不支持UI自动化测试

MS定位是一站式测试平台,但社区版并不支持UI自动化测试,企业版支持,没体验过,可能需要付费。UI自动化不是什么新鲜的东西了,很多中小型开源平台都支持,不太明白那么大、那么成熟的平台为啥要有所保留。

3.总结评分

由于篇幅、个人时间以及能力限制,只罗列了上述有限的功能和使用细节。简单对MS做个评分总结,评分过程中可能稍带有主观色彩,毕竟我也是用户,但会尽量本着客观公众的原则。评测还是基于之前预告篇中的维度:

测评维度

详细说明

评分(星级越高,得分越高)

环境搭建

1.依赖环境:多,不过可以一键部署

2.搭建难度:稍有难度,推荐使用纯净版服务器安装

☆☆☆☆

用例管理

1.是否支持导入用例:支持多种平台及格式导入

2.用例执行顺序编排:支持,可以拖动

☆☆☆☆☆

接口测试

1.单接口测试:支持,可以导入CSV参数化和数据驱动

2.接口流程测试:支持,多种参数提取方式

3.测试报告:支持,简洁

☆☆☆☆☆

UI自动化测试

1.APP:社区版不支持

2.Web:社区版不支持

性能测试

支持,分布式、可视化压力配置、定时任务、导入Jmeter文件

☆☆☆☆☆

扩展功能

1.是否支持二开:支持

2.是否支持定时任务:支持

3.是否支持接入CICD:支持

4.是否支持测试结果度量:支持

5.用户权限配置:支持,不同用户不同权限

6.测试管理:支持,XMind、普通用例,也可以导入

7.缺陷跟踪:支持,也可以集成jira、tapd等

☆☆☆☆☆

其他

1.文档支持(部署教程、操作手册):详细

2.代码更新维护频率:高,长期维护、明确的发版计划

3.社区活跃度:高

☆☆☆☆☆

一句话总结:MS功能强大,覆盖全面,可以满足你各种不同需求;功能比较多,简单使用不成问题,但如果想要玩得精、玩得溜,也需要一定的学习和摸索成本。任何测试框架、测试平台,重要的是为测试团队赋能,解决测试过程中的问题,提升测试效率,MS或许是一个不错的选择。

相关文章
|
11天前
|
监控 安全 测试技术
构建高效的精准测试平台:设计与实现指南
在软件开发过程中,精准测试是确保产品质量和性能的关键环节。一个精准的测试平台能够自动化测试流程,提高测试效率,缩短测试周期,并提供准确的测试结果。本文将分享如何设计和实现一个精准测试平台,从需求分析到技术选型,再到具体的实现步骤。
47 1
|
19天前
|
编解码 人工智能 自然语言处理
迈向多语言医疗大模型:大规模预训练语料、开源模型与全面基准测试
【10月更文挑战第23天】Oryx 是一种新型多模态架构,能够灵活处理各种分辨率的图像和视频数据,无需标准化。其核心创新包括任意分辨率编码和动态压缩器模块,适用于从微小图标到长时间视频的多种应用场景。Oryx 在长上下文检索和空间感知数据方面表现出色,并且已开源,为多模态研究提供了强大工具。然而,选择合适的分辨率和压缩率仍需谨慎,以平衡处理效率和识别精度。论文地址:https://www.nature.com/articles/s41467-024-52417-z
41 2
|
5天前
|
开发框架 安全 .NET
.NET使用Moq开源模拟库简化单元测试
.NET使用Moq开源模拟库简化单元测试~
|
29天前
|
人工智能 监控 测试技术
云应用开发平台测试
云应用开发平台测试
46 2
|
11天前
|
监控 安全 测试技术
构建高效精准测试平台:设计与实现全攻略
在软件开发过程中,精准测试是确保产品质量的关键环节。一个高效、精准的测试平台能够自动化测试流程,提高测试覆盖率,缩短测试周期。本文将分享如何设计和实现一个精准测试平台,从需求分析到技术选型,再到具体的实现步骤。
33 0
|
14天前
|
NoSQL 测试技术 Go
自动化测试在 Go 开源库中的应用与实践
本文介绍了 Go 语言的自动化测试及其在 `go mongox` 库中的实践。Go 语言通过 `testing` 库和 `go test` 命令提供了简洁高效的测试框架,支持单元测试、集成测试和基准测试。`go mongox` 库通过单元测试和集成测试确保与 MongoDB 交互的正确性和稳定性,使用 Docker Compose 快速搭建测试环境。文章还探讨了表驱动测试、覆盖率检查和 Mock 工具的使用,强调了自动化测试在开源库中的重要性。
|
7天前
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
37 3
|
1月前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
59 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
|
2月前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
239 7
Jmeter实现WebSocket协议的接口测试方法
|
2月前
|
JSON 移动开发 监控
快速上手|HTTP 接口功能自动化测试
HTTP接口功能测试对于确保Web应用和H5应用的数据正确性至关重要。这类测试主要针对后台HTTP接口,通过构造不同参数输入值并获取JSON格式的输出结果来进行验证。HTTP协议基于TCP连接,包括请求与响应模式。请求由请求行、消息报头和请求正文组成,响应则包含状态行、消息报头及响应正文。常用的请求方法有GET、POST等,而响应状态码如2xx代表成功。测试过程使用Python语言和pycurl模块调用接口,并通过断言机制比对实际与预期结果,确保功能正确性。
247 3
快速上手|HTTP 接口功能自动化测试