最近工作需要对web服务接口进行压力测试,由于完全没有测试相关经验,就只能走一步看一步了
由于主要是测试接口的并发性能,因而需要一个能并发产生请求的工具,最开始想到用postman,毕竟对这玩意儿比较了解,但是结果是,这个东西虽然能够在短时间内模拟出指定数量的请求,但貌似不是并发,而是阻塞排队…
然后网上知名度较高的就数Apache的JMeter,貌似是搞接口测试的居家必备,能够实现真正意义上的并发请求
搜索过程中发现另外一个工具:MeterSphere 这个是一个国内团队开发的一个开源接口测试工具,测试引擎用的是JMeter,优点是有中文环境,测试报告更美观(个人感觉)
安装JMeter 5.3
安装openjdk
JMeter 5.3要求有java 8+的环境,所以我这里安装了java 11
>>> sudo apt install openjdk-11-jre
下载二进制文件
apache-jmeter-5.3.zip
运行
解压后进入目录
>>> cd bin/
>>> ./jmeter
Aug 19, 2020 3:51:04 PM java.util.prefs.FileSystemPreferences$1 run
INFO: Created user preferences directory.
================================================================================
Don't use GUI mode for load testing !, only for Test creation and Test debugging.
For load testing, use CLI Mode (was NON GUI):
jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]
& increase Java Heap to meet your test requirements:
Modify current env variable HEAP="-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m" in the jmeter batch file
Check : https://jmeter.apache.org/usermanual/best-practices.html
================================================================================
Gtk-Message: 15:51:05.502: Failed to load module "canberra-gtk-module"
解决由于编码问题导致的中文乱码问题
>>> vim ./bin/jmeter.properties
# The encoding to be used if none is provided (default utf-8)
sampleresult.default.encoding=utf-8
重启JMeter
安装MeterSphere v1.1.2
安装
MeterSphere依赖docker和docker-compose,所以可以自己安装docker和docker-compose或者跟随安装脚本安装
# 进入超级用户
>>> sudo su
# 一键安装
>>> curl -sSL https://github.com/metersphere/metersphere/releases/latest/download/quick_start.sh | sh
运行
打开http://127.0.0.1:8081
默认账号admin 默认密码metersphere
默认安装路径/opt/metersphere
通过msctl命令可以控制MeterSphere运行
>>> msctl --help
MeterSphere 控制脚本
Usage:
./msctl.sh [COMMAND] [ARGS...]
./msctl.sh --help
Commands:
status 查看 MeterSphere 服务运行状态
start 启动 MeterSphere 服务
stop 停止 MeterSphere 服务
restart 重启 MeterSphere 服务
reload 重新加载 MeterSphere 服务
uninstall 卸载 MeterSphere 服务
version 查看 MeterSphere 版本信息