一、JMeter介绍与安装
1、JMeter介绍
JMeter是一款能够模拟多个用户并发请求的测试工具;不仅支持性能测试(多用户并发),单用户模式时可作为接口测试工具使用
2、JMeter安装
安装网站:Jmeter安装URL
安装方式:JMeter是解压即用软件,解压后无需额外安装步骤
存放位置:我放在了D盘
3、配置Java环境变量并修改JMeter语言
前提条件:JMeter需要Java运行环境,必须提前配置好Java环境变量

双击jmeter.bat,打开JMeter

修改JMeter语言
用记事本打开

把其中"#language=en"换成"language=zh_CN",Ctrl+S保存

二、性能测试案例
1、准备工作
python
import pymysql
from flack import Flask,request
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World!'
@app.route('/hello')
def hello_world1():
return 'Hello World! aaa'
@app.route('/hello/<username>')
def hello_world2(username):
print(username)
return 'Hello World! aaa' + username
@app.route('/hello/args/<username>')
def hello_world3(username):
print(username)
key = request.args.get('key', '')
value = request.args.get('value', '')
print(key)
print(value)
return 'Hello World! aaa' + username + ':::' + key + '::' + value
@app.route("/mypost", methods=['post'])
def my_post():
return "post request"
@app.route("/mypost1", methods=['post'])
def my_post1():
# 表单数据类型
username = request.form['username']
sex = request.form['sex']
print(username)
print(sex)
return "post request" + username + "::" + sex
@app.route("/mypost2", methods=['post'])
def my_post2():
# json数据格式
request_data = request.get_json()
print(request_data)
print(request_data['user'])
return "post request" + str(request_data)
if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0', port=5000)
2、使用JMeter发送get请求





3、使用JMeter发送post请求
(1)发送post请求

(2)发送JSON格式post请求

注意:HTTP信息头管理器配置

(3)多线程组解决方案
- 隔离方案:
- 为不同格式请求创建独立线程组
- 每个线程组可配置专属HTTP信息头管理器
- 表单参数特殊处理:
- 勾选"对POST使用multipart/form-data"选项
- 或使用独立线程组避免头信息冲突
4、响应数据乱码问题
- 在内容编码处明确指定utf−8
- 保持"自动重定向"选项不勾选
- 这样能确保请求和响应中的中文字符都能正确显示
三、JMeter模拟多用户同时发送请求
1、用户定义变量与逻辑分支控制
(1)用户定义变量


(2)逻辑分支控制

可以添加变量ifrun------true( 第一种情况,直接写一个变量值${ifrun})

第二种情况

将post3放到if控制器下面

2、JMeter模拟多用户的并发请求
(1)线程数
- 定义:表示模拟的用户数量,如设置为2则表示2个用户同时执行测试脚本。
- 验证方法:在查看结果树中可以看到每个用户执行的请求记录,如2个用户会分别执行post1、post2、post3请求。
- 实际应用:测试时可根据需要设置为10个或更多用户,后端服务会接收到对应数量的请求。


(2)Ramp-Up时间
- 定义:控制所有并发用户启动的时间间隔,如10个用户设置10秒表示每秒启动1个用户。
- 效果对比:
- 设置1秒:所有用户快速启动
- 设置20秒:用户缓慢启动,每2秒启动1个
- 测试建议:通常保持默认1秒设置,让用户尽快启动进
(3)循环次数
- 默认值:1表示每个用户只执行1次脚本
- 多次循环:设置为2时,每个用户会执行2次完整脚本
- 持续压测:勾选"永远"选项会让脚本无限循环执行,直到手动停止
- 观察方法:通过后端服务日志可以查看持续接收的请求情况
(4)在取样器错误后要执行的动作

- 选项说明:
- 继续:默认选项,出错后继续执行
- 启动下一进程循环:重新执行当前循环
- 停止线程:停止当前出错线程
- 停止测试/立即停止测试:完全终止测试
- 错误示例:当后端服务处理能力不足时,会出现"Address already in use"等连接错误
- 测试建议:保持默认"继续"设置以完整测试系统稳定性