性能测试工具-JMeter

官网: https://jmeter.apache.org/

安装JMeter

Windows下安装

1.安装JDK
下载地址: https://www.oracle.com/java/technologies/downloads/#jdk22-windows
执行java -version查看版本

2.安装JMeter
下载地址: https://dlcdn.apache.org//jmeter/binaries/apache-jmeter-5.6.3.zip
下载到本地目录解压,到bin目录下,双击执行ApacheJMeter.jarjmeter.bat

Linux下安装

# 1.安装JDK
wget https://download.oracle.com/java/22/latest/jdk-22_linux-x64_bin.tar.gz
tar zxvf jdk-22_linux-x64_bin.tar.gz

vi .bashrc
export JAVA_HOME=/home/inst01/jdk-22.0.1
export PATH=$JAVA_HOME/bin:$PATH

source .bashrc
# 验证安装
java -version

# 2.安装JMeter
wget https://dlcdn.apache.org//jmeter/binaries/apache-jmeter-5.6.3.tgz
tar zxvf apache-jmeter-5.6.3.tgz

vi .bashrc
export JMETER_HOME=/home/inst01/apache-jmeter-5.6.3
export PATH=$PATH:$JMETER_HOME/bin

source .bashrc
# 验证安装
jmeter -v

简单性能测试

测试步骤:

  1. 构建测试计划
  2. 运行性能测试
  3. 分析性能测试

1.构建测试计划

先用flask构建一个api当作测试对象

from flask import Flask, jsonify

app = Flask(__name__)


@app.route('/api/test', methods=['POST'])
def api_test():
    return jsonify({'result': 'success'})


if __name__ == '__main__':
    app.run(debug=True, host='127.0.0.1', port=5166)

1. 测试计划-添加-线程(用户)-线程组

线程数,模拟的用户数。比如10个线程就代表10个用户。
Ramp-Up时间(秒),创建完所有线程的时间。比如10秒,就意味着JMeter在10内启动10个线程。
循环次数,每个线程的执行次数。比如10个线程,循环10次,总共会执行100次。

2. 线程组-添加-取样器-HTTP请求

web服务器
协议: http
服务器名称或IP: 127.0.0.1
端口号: 5166
HTTP请求:POST
路径: /api/test

3. 线程组-添加-监听器-查看结果树

单个请求的结果

4. 线程组-添加-监听器-汇总报告

总体请求的成功率

2.运行性能测试

点击"启动"进行测试

3.分析性能测试

可以在"查看结果树"和"汇总报告"看到结果。

其它常用

1.模拟多个用户

模拟多个用户并发请求

  1. 使用CSV Data Set Config

    • 在线程组右键-添加-配置元件-CSV数据文件设置
    • 选择包含用户数据的CSV文件
    • 变量名称设置成username
  2. 在HTTP请求中引用变量

    • 在HTTP请求中使用${username}引用CSV文件中的数据

2.参数传递

将前一个请求的响应数据传递给后一个请求

  1. 添加正则表达式提取器

    • 右键点击HTTP请求-添加-后置处理器-正则表达式提取器
    • 正则表达式,例如"sessionId":"(.*?)"
    • 引用名称,例如session_id
  2. 在后续请求中使用提取的变量

    • 在HTTP请求中使用${session_id}引用提取的会话ID

Linux环境下测试

先在本地创建测试计划,将测试计划文件上传到服务器上

jmeter -n -t test_plan.jmx -l result_file.jtl -e -o test_result_folder
# -n: 表示非GUI模式
# -t: 用于指定测试计划文件
# -l: 用于指定结果文件
# -e: 表示测试完成后生成报告
# -o: 指定报告生成的目录

JMeter配置成中文

修改jmeter.properties文件,将

#language=en

修改成

language=zh_CN

然后重启jmeter


参考资料:

1.https://github.com/Flying9001/Notes/blob/master/Software/DevelopTools/Windows/7.3.windows.jmeter.md

posted @ 2024-06-12 22:58  rustling  阅读(18)  评论(0编辑  收藏  举报