jmeter压力测试报告
XXX压力测试报告
时间:2015-08-04 测试人员:xxx
目录
XXX压力测试报告... 1
一 测试内容... 2
二 测试方法... 2
三 测试目标... 2
四 测试环境... 2
五 系统部署... 3
5.1 物理部署... 3
5.2 网络访问... 3
六 性能测试结果与分析... 4
6.1 jmeter集群压测(5进程-每个进行10线程)... 4
6.2 jmeter集群压测(10进程-每个进行5线程)... 7
6.3 jmeter集群压测(10进程-每个进行10线程)... 11
七 结果汇总分析... 13
一 测试内容
本次测试是针对xxx系统进行的压力测试,在交易接口中,只对交易接口进行压力测试,其中涵盖数据验签与签名功能。
二 测试方法
本次采用apache的开源测试工具jmeter,采用本地动态拼装请求数据并通过http协议post方式发送支付请求。并采用650张测试银行卡测试,其中大概有30张存在“无足够的存款”和“受限制的卡”情况。
三 测试目标
1) 获取在单机部署情况下最大TPS值
2) 是否可以达到原来预期值TPS:50
四 测试环境
环境 |
机器型号 |
操作系统 |
硬件cpu |
硬件mem |
客户端 |
server2008虚拟机 |
windows |
32核 |
32G |
服务端 |
HP DL580 |
linux |
64核 |
126G |
由于客户端与服务端的机器性能优秀,暂不会对压测形成瓶颈,该方面影响可以忽略
五 系统部署
5.1 物理部署
5.2 网络访问
六 性能测试结果与分析
6.1 jmeter集群压测(5进程-每个进行10线程)
启5个进程,每个进程启动10个线程,并发为50,项目日志开启info状态
6.1.1 聚合报告
Label |
#Samples |
Average |
Median |
90%Line |
95%Line |
99%Line |
Min |
Max |
Error% |
TPS |
KB/sec |
1 |
22805 |
547 |
366 |
512 |
636 |
5218 |
150 |
30003 |
0.26 |
65.3 |
96.5 |
2 |
33605 |
519 |
362 |
503 |
618 |
5200 |
150 |
30003 |
0.21 |
66.5 |
98.5 |
3 |
43505 |
536 |
365 |
508 |
621 |
5210 |
150 |
34899 |
0.26 |
65.6 |
97.1 |
4 |
48205 |
527 |
365 |
507 |
618 |
5206 |
150 |
34899 |
0.24 |
65.1 |
96.3 |
5 |
49005 |
535 |
364 |
507 |
616 |
5211 |
150 |
34899 |
0.27 |
63.9 |
94.5 |
6 |
49901 |
532 |
364 |
505 |
614 |
5207 |
150 |
34899 |
0.27 |
61.0 |
90.2 |
7 |
50000 |
531 |
363 |
504 |
613 |
5207 |
150 |
34899 |
0.27% |
60.9 |
90.1 |
6.1.2 每秒的响应分布图
6.1.3 响应时间分布图
6.1.4 请求失败与成功分布图
6.1.5 结果分析
总笔数 |
Jmeter错误笔数 |
请求前置响应超长笔数 |
服务本地处理超长笔数和404 |
50000 |
135 |
120 |
15 |
- 在使用jmeter压测请求被F5转发到apache server代理上,由于交易处理过程中处理时间过长造成长时间无响应,代理返回502 Proxy Error错误。
- 其中请求前置响应超长笔数在向前置获取结果返回的耗时超过3分钟,其余耗时均低于5s,前置接收到的晚,初步判定网络堵塞
- 本地业务处理的错误原因为签名、验签、获取数据及请求时404等
6.2 jmeter集群压测(10进程-每个进行5线程)
启10个进程,每个进程启动5个线程,并发为50,项目日志开启info状态
6.2.1 聚合报告
Label |
#Samples |
Average |
Median |
90%Line |
95%Line |
99%Line |
Min |
Max |
Error% |
TPS |
KB/sec |
1 |
11010 |
555 |
348 |
495 |
605 |
5196 |
148 |
30003 |
0.26 |
68.7 |
101.5 |
2 |
28910 |
507 |
333 |
473 |
568 |
5178 |
55 |
30015 |
0.25 |
76.3 |
121.9 |
3 |
36310 |
501 |
332 |
475 |
575 |
5176 |
55 |
30031 |
0.24 |
77.1 |
114.0 |
4 |
46310 |
485 |
331 |
466 |
557 |
5172 |
55 |
30031 |
0.21 |
78.6 |
116.3 |
5 |
50000 |
478 |
326 |
460 |
551 |
5166 |
55 |
30031 |
0.21 |
72.1 |
106.7 |
6.2.2 每秒的响应分布图
6.2.3 响应时间分布图
6.2.4 请求失败与成功分布图
6.2.5 应用系统状态
6.2.6 结果分析
总笔数 |
Jmeter错误笔数 |
请求前置响应超长笔数 |
服务本地处理超长笔数和404 |
50000 |
105 |
92 |
13 |
1 在使用jmeter压测请求被F5转发到apache server代理上,由于交易处理过程中处理时间过长造成长时间无响应,代理返回502 Proxy Error错误。
2 其中请求前置响应超长笔数在向前置获取结果返回的耗时超过3分钟,其余耗时均低于5s,前置接收到的晚,初步判定网络堵塞
3 本地业务处理的错误原因为签名、验签、获取数据及请求时404等
6.3 jmeter集群压测(10进程-每个进行10线程)
启10个进程,每个进程启动10个线程,并发为100,项目日志开启info状态
6.3.1 聚合报告
Label |
#Samples |
Average |
Median |
90%Line |
95%Line |
99%Line |
Min |
Max |
Error% |
TPS |
KB/sec |
1 |
50000 |
1219 |
896 |
1665 |
2692 |
5808 |
209 |
38306 |
0.30 |
68.0 |
100.5 |
6.3.2 每秒的响应分布图
6.3.3 响应时间分布图
6.3.4 请求失败与成功分布图
6.3.5 结果分析
总笔数 |
Jmeter错误笔数 |
请求前置响应超长笔数 |
服务本地处理超长笔数和404 |
50000 |
150 |
119 |
31 |
1 在使用jmeter压测请求被F5转发到apache server代理上,由于交易处理过程中处理时间过长造成长时间无响应,代理返回502 Proxy Error错误。
2 其中请求前置响应超长笔数在向前置获取结果返回的耗时超过3分钟,其余耗时均低于5s,前置接收到的晚,初步判定网络堵塞
3 本地业务处理的错误原因为签名、验签、获取数据及请求时404等
6.4 jmeter集群压测(30进程-每个进行5线程)
启30个进程,每个进程启动5个线程,并发为150,项目日志开启info状态
6.4.1 聚合报告
Label |
#Samples |
Average |
Median |
90%Line |
95%Line |
99%Line |
Min |
Max |
Error% |
TPS |
KB/sec |
1 |
150000 |
1473 |
1924 |
1733 |
1959 |
6156 |
222 |
35107 |
0.21 |
89.5 |
132.2 |
6.4.2 每秒的响应分布图
6.4.3 响应时间分布图
6.4.4 应用系统状态
6.4.5 客户端系统状态
6.4.6 结果分析
暂未统计
6.5 jmeter集群压测(20进程-每个进行5线程)
启20个进程,每个进程启动5个线程,并发为100,项目日志开启info状态,超时时间2000ms
6.5.1 聚合报告
Label |
#Samples |
Average |
Median |
90%Line |
95%Line |
99%Line |
Min |
Max |
Error% |
TPS |
KB/sec |
1 |
200000 |
867 |
722 |
1073 |
1296 |
5674 |
1 |
10053 |
0.84 |
92.8 |
138.6 |
6.5.2 每秒的响应分布图
6.5.3 响应时间分布图
6.5.4 请求失败与成功分布图
6.5.5 结果分析
总笔数 |
Jmeter错误笔数 |
TPS |
100000 |
730 |
98.0 |
1 由于本地客户端限定2000毫秒不响应就认为失败,所以失败率偏高
七 结果汇总分析
Label |
#Samples |
Average |
Median |
90%Line |
95%Line |
进程 |
线程 |
并发 |
Error% |
TPS |
KB/sec |
50并发 |
50000 |
531 |
363 |
504 |
613 |
5 |
10 |
50 |
0.27% |
60.9 |
90.1 |
50并发 |
50000 |
478 |
326 |
460 |
551 |
10 |
5 |
50 |
0.21 |
72.1 |
106.7 |
100并发 |
50000 |
1219 |
896 |
1665 |
2692 |
10 |
10 |
100 |
0.30 |
68.0 |
100.5 |
150并发 |
150000 |
1473 |
1924 |
1733 |
1959 |
30 |
5 |
150 |
0.21 |
89.5 |
132.2 |
100并发 |
200000 |
867 |
722 |
1073 |
1296 |
20 |
5 |
100 |
0.84 |
92.8 |
138.6 |
使用jmeter压测时,如果使用1个进程开多个线程进行压测,一个进程很难快速处理多个线程,造成本地处理浪费大量时间用于调度,最终压力上不去。
当采用集群压测时,启用多个进程调度少量线程,解决本地耗时,TPS明显提升。
在启动10个进程50线程时效果最佳,符合交易每秒钟处理的交易笔数,当提升并发到100时,交易响应时间明显提升。
压测过程中出现的错误主要有:
1、 请求资源404错误
2、 请求前置网络堵塞,每次均为3分钟
3、 本地签名、验签、获取数据耗时过长
最终压测结果TPS:90-100时可保证响应时间不超过2s
jmeter压力测试报告的更多相关文章
- jmeter压力测试报告 - DEMO
XXX压力测试报告 时间:2015-08-04 测试人员:xxx 目录 XXX压力测试报告... 1 一 测试 ...
- 【Jmeter自学】Jmeter性能测试报告(八)
http://www.cnblogs.com/YatHo/p/6092599.htmlhttp://blog.csdn.net/xiaojianpitt/article/details/4821554 ...
- 【转】jmeter压力测试
jmeter压力测试 Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试,它最初被设计用于Web应用测试但后来扩展到其他测试领域, 是压力测试的首选软件 ...
- JMeter压力测试以文件的形式
JMeter压力测试入门教程[图文] 1. 下载JMeter 2. 启动JMeter 3. 运行预准备 4. 运行 文章目录 Apache JMeter是Apache组织开发的基于Java的压力测试工 ...
- Jmeter压力测试生成聚合报告
Jmeter压力测试: 压力测试的场景设置分为三种: 单场景:一个请求(如:单个接口的测试) 混合场景:多个请求(如:购物流程的测试) 压测时间,一般场景都是运行10-15分钟,如果是做疲劳测试的话, ...
- jmeter 压力测试
转自: https://blog.csdn.net/cbzcbzcbzcbz/article/details/78023327 Jmeter压力测试简单教程(包括服务器状态监控) 2017年09月18 ...
- 一次tomcat配置参数调优Jmeter压力测试记录前后对比
使用的tomcat版本为:apache-tomcat-7.0.53 使用测试工具Jmeter版本为:apache-jmeter-2.12 1.测试前tomat的"server.xml&quo ...
- 转载:JMeter压力测试入门教程[图文]
JMeter压力测试入门教程[图文] Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试,它最初被设计用于Web应用测试但后来扩展到其他测试领域. 它可 ...
- Jmeter压力测试入门操作
Jmeter压力测试入门 1. 前言 Jmeter 是Apache组织开发的基于Java的压力测试工具,开源并且支持多个操作系统,是一款很好的HTTP测试工具.本篇文章主要的目的是帮助没有接触过J ...
随机推荐
- python manage.py shell 的增删改查
python manage.py shell 的增删改查 guoguo-MacBook-Pro:myblog guoguo$ python manage.py shell Python 3.5.1 ( ...
- ABAP excel操作 OLE 常用方法和属性
转自 http://bstone.blog.163.com/blog/static/176820446201172834149199/#userconsent# OLE 常用方法和属性 1.ole中如 ...
- redis的安装与类型
redis Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库.缓存和消息中间件 源码安装 redis , 编译安装 为何用源码安装,不用yum安装, 编译安装的优势 ...
- TCP/IP协议数据包文件PCAP分析器
一.设计原理 1.PCAP文件构成 参考http://blog.csdn.net/gulu_gulu_jp/article/details/50494909 PCAP文件由一个PCAP文件头和多个PC ...
- Bootstrap简单介绍
一.一个小知识点 1.截取长屏的操作 2.设置默认格式 3.md,sm, xs 4.空格和没有空格的选择器 二.响应式介绍 - 响应式布局是什么? 同一个网页在不同的终端上呈现不同的布局等 - 响应式 ...
- 分享知识-快乐自己:Struts2文件上传及文件下载
1)Struts2单文件上传 action:类文件 package com.mlq.action; import com.opensymphony.xwork2.ActionSupport; impo ...
- DenseNet算法详解——思路就是highway,DneseNet在训练时十分消耗内存
论文笔记:Densely Connected Convolutional Networks(DenseNet模型详解) 2017年09月28日 11:58:49 阅读数:1814 [ 转载自http: ...
- Jmeter-配置原件-HTTP Cookie管理器
线程组右键 -- 添加 -- 配置原件 -- HTTP Cookie管理器 如何定位到自己的cookie?以Google Chrome浏览器为例: 1.打开浏览器,打开开发者工具 2.登录站点 3 ...
- 【HDU 6126】Give out candies 最小割
题意 有$n$个小朋友,给每个人分$1~m$个糖果,有k个限制 限制形如$(x,y,z)$ 表示第$x$个人分到的糖数减去第$y$个人分到的糖数不大于$z$,给第$i$个人$j$颗糖获 ...
- C/C++协程的实现方式总结
1.利用 C 语言的 setjmp 和 longjmp,函数中使用 static local 的变量来保存协程内部的数据. 函数原型:int setjmp(jmp_buf envbuf); void ...