Jmeter压力测试
Posted ryhonour
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jmeter压力测试相关的知识,希望对你有一定的参考价值。
压测设置
- 线程数:并发数量,能跑多少量。具体说是一次存在多少用户同时访问
- Rame-Up Period(in seconds):表示在多长时间内启动完上述的线程数。
- 循环次数:这个设置不会改变并发数,可以延长并发时间。总请求数=线程数*循环次数
- 调度器:设置压测的启动时间、结束时间、持续时间和启动延迟时间。
压测结果查看
- Samples:表示一共发出的请求数
- Average:平均响应时间,默认情况下是单个Request的平均响应时间(ms)
- Error%:测试出现的错误请求数量百分比。若出现错误就要看服务端的日志,配合开发查找定位原因
- Throughput:简称tps,吞吐量,默认情况下表示每秒处理的请求数,也就是指服务器处理能力,tps越高说明服务器处理能力越好。
压测结果分析
- 有错误率同开发确认,确定是否允许错误的发生或者错误率允许在多大的范围内;
- Throughput吞吐量每秒请求的数大于并发数,则可以慢慢的往上面增加;若在压测的机器性能很好的情况下,出现吞吐量小于并发数,说明并发数不能再增加了,可以慢慢的往下减,找到最佳的并发数;
- 压测结束,·登陆相应的web服务器查看CPU等性能指标,进行数据的分析;
- 最大的tps:不断的增加并发数,加到tps达到一定值开始出现下降,那么那个值就是最大的tps。
- 最大的并发数:最大的并发数和最大的tps是不同的概率,一般不断增加并发数,达到一个值后,服务器出现请求超时,则可认为该值为最大的并发数。
- 压测过程出现性能瓶颈,若压力机任务管理器查看到的cpu、网络和cpu都正常,未达到90%以上,则可以说明服务器有问题,压力机没有问题。
- 影响性能考虑点包括:数据库、应用程序、中间件(tomact、nginx)、网络和操作系统等方面。
CLI模式(no-GUI)运行
-
在cmd中,CD到目标文件夹
-
运行命令
jmeter -n -t [jmx file] -l [result file] -e -o [Path to output folder]
参数说明:
- jmx file:测试计划的文件名称,默认从当前文件夹中寻找(.jmx格式)
- result file:输出文件路径(.jtl格式)
- Path to output folder:要保存的report文件路径
- -n:非GUI模式执行Jmeter
- -t:执行测试文件所在的位置
- -l:指定生成测试结果的保存文件(该文件必须不存在),jtl文件格式
- -e:测试结束后生成测试报告
- -o:指定测试报告的存放位置,文件夹必须不存在或为空
-
输出结果解释(html文件中的数据解释),在reportgenerator.properties配置文件中修改Html图表中的相关设置。
-
Dashboard中:
- Test and Report informations:指的是测试和报告信息
- APDEX(Application Performance Index):应用程序性能满意度的标准,范围在0-1之间,1表示达到所有用户均满意,越接近1满意度越高
- Requests Summary:请求的通过率(OK)与失败率(KO),百分比显示
- Statistics:数据分析,基本将Summary Report和Aggrerate Report的结果合并
- Errors:错误情况,依据不同的错误类型,将所有错误结果展示
-
Charts:用图表的形式展示测试数据,让测试报告更加直观
主要有如下特点:
(1)将测试过程中经常使用的数据,用图表的形式展示,让测试结果更加直观
(2)每个图表数据,有两种展示形式
(3)支持请求样例过滤显示
(4)支持导出PNG图片格式Over Time Charts:
- Response Times Over Time:每秒钟响应时间,X轴表示的是系统运行的时刻,Y轴表示的是响应时间,F(X,Y)表示系统随着时间的推移,系统的响应时间的变化,可以看出响应时间稳定性
- Response Time Percentiles Over Time (successful responses):随时间变化的响应时间百分比
- Active Threads Over Time:每秒的活动线程数
- Bytes Throughput Over Time:字节接收与发送的数量,每秒传输字节吞吐量,表明Jmeter在测试时,随着时间推移发送和接收的字节数
- Latencies Over Time:延迟时间
- Connect Time Over Time:连接时间
Throughput Charts:
- Hits Per Second: 每秒点击率
- Codes Per Second:每秒状态码数量
- Transactions Per Second:每秒事务量
- Response Time Vs Request:响应时间点请求的成功与失败数
- Latency Vs Request:延迟时间点请求的成功与失败数
Response Times Charts:
- Response Time Percentiles:响应时间百分比
- Response Time Overview:响应时间概述
- Time Vs Threads:响应时间用户数, X轴表示的是活动线程数,也就是并发访问的用户数,Y轴表示的是响应时间,F(X,Y)表示在某种并发量的情况下,系统的响应时间是多少
- Response Time Distribution:响应时间分布
-
以上是关于Jmeter压力测试的主要内容,如果未能解决你的问题,请参考以下文章