声明:以下文章内容所涉及的任何工具及平台均出自本人日常工作使用,或兴趣爱好研究。没有收到任何机构或组织充值,不存在任何广告行为。
前言
前段时间满怀信心地发表了《开源测试平台横向测评系列》的预告篇,准备就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的安装包,解压安装包:
代码语言:javascript复制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等
代码语言:javascript复制# 基础配置
## 安装路径, MeterSphere 配置及数据文件默认将安装在 ${MS_BASE}/metersphere 目录下
MS_BASE=/opt
## MeterSphere 使用的 docker 网络网段信息
MS_DOCKER_SUBNET=172.30.10.0/24
## 镜像前缀, MeterSphere 相关组件使用的 Docker 镜像前缀, 例如 registry.cn-qingdao.aliyuncs.com/metersphere
MS_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=8081
MS_SERVER_HTTPS_PORT=8444
## MeterSphere Node-Controller 组件的 HTTP 服务监听端口
MS_NODE_CONTROLLER_PORT=8082
MS_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 配置
## 是否使用外部Prometheus
MS_EXTERNAL_PROM=false
MS_PROMETHEUS_PORT=9090
# Redis 配置
## 是否使用外部Redis
MS_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 配置
## 是否使用外部 Kafka
MS_EXTERNAL_KAFKA=false
## Kafka 地址
MS_KAFKA_HOST=192.168.1.122
## Kafka 端口
MS_KAFKA_PORT=9092
## 性能测试结果数据使用的 Kafka Topic
MS_KAFKA_TOPIC=JMETER_METRICS
## 性能测试日志数据使用的 Kafka Topic
MS_KAFKA_LOG_TOPIC=JMETER_LOGS
## 性能测试定时任务通知使用的 Kafka Topic
MS_KAFKA_TEST_TOPIC=LOAD_TESTS
## 重构后性能测试结果数据使用的 Kafka Topic
MS_KAFKA_REPORT_TOPIC=JMETER_REPORTS
# TCP MOCK 端口范围
MS_TCP_MOCK_PORT=10000-10010
# seleniarm 容器配置
## 是否启动seleniarm容器
MS_SELENIARM_ENABLED=false
4.安装MS
代码语言:javascript复制/bin/bash install.sh
安装过程log:
注意:MS安装和运行依赖docker和docker-compose,如果识别到系统中不存在docker的话,安装MS过程中会先安装docker和docker-compose,如果识别到已经安装,则会跳过安装。
代码语言:javascript复制存在已安装的 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 ... done
Creating ms-prometheus ... done
Creating mysql ... done
Creating ms-node-controller ... done
Creating redis ... done
Creating nodeexporter ...
Creating nodeexporter ... done
Creating ms-data-streaming ...
Creating ms-data-streaming ... done
Creating ms-server ...
Host is already in use by another container
Creating ms-server ... error
ERROR: for ms-server Cannot start service 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 start service 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 128
mysql 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容器
代码语言:javascript复制docker restart ms-server
再次查看各个组件状态,各个组件的相关容器均已启动:
代码语言:javascript复制msctl status
5.msctl命令
msctl命令是MS自带的管理工具,类似于Gitlab的gitlabctl命令。安装完成后,后续即可借助msctl统一管理MS相关的容器服务,例如:重启、停止、卸载等。我们可以查看帮助命令,了解其具体用法:
代码语言:javascript复制msctl --help
返回如下内容:
代码语言:javascript复制MeterSphere 控制脚本
Usage:
./msctl.sh [COMMAND] [ARGS...]
./msctl.sh --help
Commands:
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的定位是一体化测试平台,除了提供上述介绍的接口测试和性能测试,还提供:
- UI自动化测试(社区版不支持)
- 测试跟踪:用例管理、缺陷跟踪(也可以集成jira、tapd等)
- 报表统计
功能基本上覆盖到了测试的方方面面。
② 用户手册详细
总体来说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或许是一个不错的选择。