Linux环境下的JMeter接口压测
1. Linux上部署Java应用
(1) SpringBoot 接口打包并本地启动
用jar包方式在控制台进行启动,启动之后就可以浏览器访问啦
1) 打包
mvn packag
//Mac安装和配置Maven
2) 启动打好的jar包
java -jar target/gs-spring-boot-0.1.0.jar
3) 浏览器访问
(2) 安装Linux虚拟机
1) 下载并安装VMware Fusion
2) 下载CentOs镜像
- 访问Linux官网下载CentOs地址,点击“mirrors”
- 选择镜像类型
- 选择阿里云版本
4.下载镜像
3) VMware中安装Linux
- 点击新建虚拟机 -> 选择“Install from disk or image” -> Continue
- 拖拽已下载的iso进安装向导面板 -> Continue
- 选择系统版本 -> Continue
- Continue -> Finish
5. 在Linux配置页面需要打开网络连接(如下图)和输入root账号的密码;其他必要配置使用默认的即可,即点开后直接点击“Done”
(3) 远程安装JDK
1) 下载
- Oracle官网下载最新版JDK
- 若要下载历史版本,直接百度搜索想要的版本再进入官网下载:
2) 上传
- ifconfig命令获取Linux的IP
- FileZilla连接Linux (FileZilla官网下载)
- 将jdk安装包拖拽进合适的路径
3) 安装
- 连接远程终端
ssh root@ip
- 解压jdk的tar包
tar -xvf jdk~.tar
//tar命令详解
- 配置环境变量
(1)vim /etc/profile
(2) 加入以下配置:export JAVA_HOME=/usr/local/softwares/jdk-12.0.2 //根据实际的java目录填写 export PATH=$PATH:$JAVA_HOME/bin export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export JAVA_HOME PATH CLASSPATH
- 让环境变量立刻生效
source /etc/profile
- 验证安装完成
java -version
(4) 远程部署jar包
1) 上传jar包
2) 启动jar包
守护进程
nohup java -jar ~.jar &
守护进程启动的jar包,即使退出终端,该jar包将仍为启动状态
3) 关闭防火墙
防火墙相关命令
1. 查看防火状态
systemctl status firewalld
service iptables status
2. 暂时关闭防火墙
//若只执行一个还是不能访问接口,可将这两条指令都执行
//背景:我执行了“systemctl stop firewalld”以关闭防火墙,可以被ping通,但通过浏览器和curl访问其接口时会被拒绝,又执行了“service iptables stop”就可以被访问了
systemctl stop firewalld
service iptables stop
4. 永久关闭防火墙
systemctl disable firewalld
chkconfig iptables off
5. 重启防火墙
systemctl enable firewalld
service iptables restart
6. 永久关闭后重启(未测试)
chkconfig iptables on
4) 远程访问
curl命令
curl <ip:port/api>
- 我在本地安装的两台Linux虚拟机在同一个局域网内,可以ping通,也可以通过curl命令访问在对方机器上启动的jar包
2. Linux上使用JMeter压测
用于压测的多台Linux在需要在同个局域网内,且在相同的无空格或中文的路径安装同个版本的jdk和jmeter
(1) 安装JMeter
1) 下载
wget https://dlcdn.apache.org//jmeter/binaries/apache-jmeter-<版本号>.tgz
- 该tgz链接通过如下方法取自官网下载页
2) 解压
tar -zxf apache-jmeter-<版本号>.tgz
启动JMeter GUI
(2) 非GUI压测
在Linux服务器上以非GUI界面去执行JMX压测脚本
1) 参数
全部参数可查阅JMeter命令行模式官方使用手册,以下为常用参数:
- -h 帮助
- -n 非GUI模式
- -t 指定要运行的 JMeter 测试脚本文件
- -l 记录结果的文件 每次运行之前,(要确保之前没有运行过,即xxx.jtl不存在,不然报错)
- -r 启动jmeter.properties文件中指定的所有远程服务器
- -e 在脚本运行结束后生成html报告
- -o 用于存放html报告的目录(目录要为空,不然报错)
2) 命令
jmeter -n -t <脚本文件名>.jmx -l <本不存在的结果文件名>.jtl -e -o <存放html报告的空目录>
- 若当前已在jmeter的bin目录下,jmeter前要加“./”,即“./jmeter -n -t ……”