一、运行Jmeter
参考上一篇博客:jmeter实战(1)- Mac环境安装
二、创建线程组
JMeter的线程组是进行负载测试的基本构建单元,它用于模拟多个用户对目标系统进行并发访问。线程组中的属性允许你控制测试的并发级别和执行模式。
1. 右键点击测试计划 > 添加 > 线程(用户)> 线程组
2. 线程组属性介绍:
- 线程数 (Number of Threads (users)):
这个值定义了线程组中并发执行的线程数量,每个线程模拟一个虚拟用户。例如,如果你设置线程数为100,那么JMeter将同时模拟100个用户并发访问。- Ramp-Up Period (in seconds):
这个属性定义了所有线程完全启动并开始执行测试所需的时间。例如,如果线程数为100,Ramp-Up时间为10秒,那么JMeter将在10秒内逐渐启动所有100个线程,意味着大约每秒启动10个线程。- Same user on each iteration:
每次迭代使用同一用户, 同一个线程将使用相同的用户身份进行操作.- 循环次数 (Loop count):
定义了每个线程重复执行测试计划中HTTP请求或其他采样器的次数。如果设置为1,则每个线程只执行一次测试计划;如果设置为更大的数字,比如10,那么每个线程将执行10次测试计划;如果选择"永远"(Forever),则线程将无限循环执行,直到测试被手动停止。- 调度器 (Scheduler):
如果启用,你可以设置线程组的持续时间或延迟启动时间。这允许你控制线程组何时开始执行以及执行多长时间。
- 持续时间 (Duration):
当启用调度器时,你可以指定线程组的持续时间。这意味着线程组将在指定的时间段内运行。- 延迟启动 (Start time):
同样,当启用调度器时,可以设置线程组的延迟启动时间,即线程组将在测试开始后多久才开始执行。
三、创建 HTTP 请求
JMeter的HTTP Request取样器是用于模拟HTTP请求的核心组件之一,它允许你向目标服务器发送各种类型的HTTP请求,包括GET、POST、PUT、DELETE等,以便测试Web应用程序的性能和功能。
1. 右键点击线程组 > 添加 > 取样器 > HTTP请求
2. HTTP请求属性介绍
- 协议 (Protocol)
HTTP或HTTPS协议的选择。- 服务器名称或IP (Server Name or IP)
指定目标服务器的域名或IP地址。- 端口 (Port)
目标服务器的端口号。默认情况下,对于HTTP请求是80,HTTPS请求是443。- 方法 (Method)
发送请求的方法,如GET、POST、PUT、DELETE等。- 路径 (Path)
请求的URL路径,例如/index.html。- Content Encoding (内容编码)
设置请求体的编码方式,如UTF-8。- Follow Redirects (自动重定向)
如果选中,JMeter会在遇到301或302重定向响应时自动重定向。注意,此选项通常仅适用于GET和HEAD方法。(不会记录中间的重定向步骤,只会显示最终的目标URL的响应。)- 跟随重定向 (Follow Redirects)
跟随重定向不仅限于GET和HEAD请求,它可以处理任何类型的HTTP请求。当遇到重定向时,JMeter会记录整个重定向过程中的每个步骤,包括每个重定向响应和请求。- Use KeepAlive (使用持久连接)
如果选中,JMeter将尝试使用HTTP的持久连接特性,这可以减少建立新连接的开销。- 对POST使用multipart/fom-data
通常是用来上传文件或者发送带有文件的表单数据- 与浏览器兼容的头(Browser-compatible headers)
为了使HTTP请求与浏览器的行为更加一致,添加一些与浏览器兼容的头部信息。
比如上面这个 HTTP 请求,最终发出去的是:GET https://blog.csdn.net/java_liuyuan?type=blog
四、添加结果树
结果树可以查看每个请求和响应的原始数据、HTTP头部、响应时间、状态码以及任何可能的重定向。
1. 右键点击 HTTP请求 > 添加 > 监听器 > 查看结果树
2. 查看每个请求和响应的原始数据、HTTP头部、响应时间、状态码以及任何可能的重定向。
五、添加聚合报告
结果树可以查看每个请求的数据,但是接口性能一般需要做全局分析。聚合报告可以查看整个测试运行的概览,包括总的样本数、平均响应时间、中位数响应时间、最小和最大响应时间、错误率等。