简介:
JMeter静默压测(即无界面压测)是一种常用的性能测试方法,用于模拟多个用户同时访问系统并测量系统的响应时间和吞吐量等关键性能指标。在JMeter静默压测中,常用的压测参数及其解释如下:
一、基本压测参数
- 线程数(Threads):
定义:并发用户的数量,即模拟同时访问系统的用户数量。
解释:线程数越多,表示同时访问系统的用户越多,系统的负载也就越大。 - Ramp-Up Period:
定义:线程启动的时间间隔,即所有线程在多少秒内全部启动。
解释:如果设置为1秒,则表示所有线程在1秒内依次启动;如果设置为0,则表示所有线程同时启动。这个参数的设置会影响压测的平滑性,避免瞬间产生大量并发请求。 - 循环次数(Loop Count):
定义:每个线程发送请求的次数。
解释:如果设置为一个具体的数字,则表示每个线程发送指定次数的请求后停止;如果设置为“永远”,则表示线程会一直发送请求直到压测结束。 - 调度器(Scheduler):
定义:用于设置压测的启动时间、结束时间、持续时间和启动延迟时间等参数。
解释:通过调度器可以更精确地控制压测的开始和结束时间,以及压测的持续时间。
二、性能衡量指标
- Samples:
定义:在压测过程中发出的请求总数。
解释:这个指标反映了压测期间系统接收到的请求数量。 - Average:
定义:平均响应时间,即服务器处理一个请求所需的平均时间(单位:毫秒)。
解释:这个指标反映了系统的平均响应速度,是评估系统性能的重要指标之一。 - Median:
定义:响应时间的中位数,即所有请求的响应时间排序后位于中间的值。
解释:这个指标提供了响应时间的分布情况,有助于了解大多数请求的响应时间。 - 90% Line、95% Line、99% Line:
定义:分别表示90%、95%、99%的用户请求响应时间不超过某个值。
解释:这些指标有助于了解系统在不同百分位下的响应时间,从而评估系统的稳定性和可靠性。 - Min:
定义:最小响应时间,即所有请求中响应时间最短的那个值。
解释:这个指标反映了系统在最佳情况下的响应速度。 - Max:
定义:最大响应时间,即所有请求中响应时间最长的那个值。
解释:这个指标反映了系统在最坏情况下的响应速度,有助于发现系统的瓶颈和潜在问题。 - Error%:
定义:错误率,即测试过程中出现的错误请求数量占请求总数的百分比。
解释:这个指标反映了系统的稳定性和准确性,是评估系统性能的重要指标之一。 - Throughput(TPS):
定义:吞吐量,即服务器每秒处理的请求数。
解释:这个指标反映了系统的处理能力,是评估系统性能的关键指标之一。吞吐量越高,表示系统的处理能力越强。
三、其他参数
- 参数化:
定义:将请求中的某些参数设置为变量,以便在压测过程中动态生成不同的请求。
解释:参数化可以模拟真实用户的行为,提高压测的准确性和可信度。 - 断言:
- 定义:在请求中添加条件判断,用于验证服务器返回的结果是否符合预期。
解释:断言可以帮助发现系统中的错误和异常,提高压测的有效性。 - 监听器:
定义:用于收集和展示压测过程中的各种性能数据。
解释:监听器可以实时显示系统的响应时间、吞吐量等关键指标,有助于及时发现和解决性能问题。 - 综上所述,JMeter静默压测中的常用压测参数包括线程数、Ramp-Up Period、循环次数、调度器以及性能衡量指标如Samples、Average、Median、90% Line、95% Line、99% Line、Min、Max、Error%和Throughput等。这些参数共同构成了JMeter压测的核心内容,有助于全面评估系统的性能表现。
jmeter.bat(Windows)/jmeter.sh(Linux) -n -t test-file [-p property-file] [-l results-file] [-j log-file] -e -o [Path to output folder] -Jthread number-name
eg:${JMETER_HOME}/bin/jmeter -n -t ${jmx_file} -l ${jtl_name} -e -o ${report_path_name} -Jthread=${num}
- -n: 指定以非GUI(图形用户界面)模式运行JMeter。这意味着JMeter将在命令行中执行测试计划,而不会打开图形界面。
- -t test-file: 指定要运行的测试文件(.jmx文件)。test-file是一个动态参数,需要替换为实际的.jmx文件路径。这个文件包含了测试计划的配置和脚本。
动态值:您需要将test-file替换为包含.jmx文件的实际路径,例如-t /path/to/your/testplan.jmx。 - [-p property-file]: 可选参数,指定属性文件,用于加载JMeter的配置。property-file是一个动态参数,需要替换为实际的属性文件路径。属性文件可以包含自定义的配置参数。
- 动态值:如果需要使用自定义属性文件,请将property-file替换为属性文件的实际路径,例如-p /path/to/your/jmeter.properties。如果不使用此参数,JMeter将使用默认的配置。
- [-l results-file]: 可选参数,指定结果文件的路径和名称,用于保存测试结果。results-file是一个动态参数,需要替换为实际的结果文件路径。测试结束后,JMeter将结果保存为.jtl格式的文件。
- 动态值:您需要将results-file替换为希望保存测试结果的实际路径和文件名,例如-l /path/to/your/results.jtl。
- [-j log-file]: 可选参数,指定日志文件的路径和名称,用于记录JMeter的日志信息。log-file是一个动态参数,需要替换为实际的日志文件路径。
动态值:您需要将log-file替换为希望保存日志信息的实际路径和文件名,例如-j /path/to/your/jmeter.log。 - -e -o [Path to output folder]: 这组参数用于生成HTML格式的测试结果报告。-e表示生成报告,-o后面跟的是报告的输出目录。[Path to output folder]是一个动态参数,需要替换为实际的输出目录路径。这个目录将包含生成的HTML报告文件。
- -Jthread :通过自定义函数P功能定义的动态线程数量
动态值:您需要将[Path to output folder]替换为希望保存报告的实际目录路径,例如-o /path/to/your/report-folder。请注意,指定的输出文件夹必须存在且为空文件夹,因为JMeter会在该文件夹中生成报告文件。