工作中的一个老系统,最近变的很慢,开发人员也没找到原因,用的是tomcat5 , 硬件配置还是很强的,8核CPU+8G内存,系统慢的现象是:页面打开的速度还可以,但查询很慢,一到人多时,查询就很慢,最后用jdk6中带的visualVM 工具,观察后,发现用的数据源居然是 Spring 自带的那个用于测试的数据源,这个数据源仅用于自已的开发环境,对于生产环境而,最少得用于dbcp,c3p0,等,后来把它改成了ali 的 durid 后,观察了一天,正常了 。
后来PM要求对系统做个压力测试,一想到LoadRunner 它太大了,我的机器又安装不了,最后看到了apache中的ab测试工具,真是感谢Apache ,后面又找到了一个Apache的JMeter 也是个不错的工具,完全是java开发的。
以下在解讲下 apache2.2中的ab测试,这个很简单,可以去google,有人说测试的不太准,但也可以用来测试看看。
1.tomcat的配置为:
catalina.bat:
set JAVA_OPTS= %JAVA_OPTS% -Xms1024m -Xmx1024m -XX:MaxPermSize=128M
这里也可以加上远程调试和 JMX 监控的脚本,见另一小记。
server.xml
<Connector port="8080" maxHttpHeaderSize="8192" useBodyEncodingForURI="true"
maxThreads="1000" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
compression="on" compressionMinSize="2048"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8"/>
进入apache/bin中的目录:
F:\Tomcat\Apache2.2\bin>ab -n 1000 -c 60 http://135.192.10.24:9001/qhcrm/query/a
ddressQuery.jsp
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking 135.192.10.24 (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Completed 600 requests
Completed 700 requests
Completed 800 requests
Completed 900 requests
Completed 1000 requests
Finished 1000 requests
Server Software: Apache-Coyote/1.1
Server Hostname: 135.192.10.24
Server Port: 9001
Document Path: /qhcrm/query/addressQuery.jsp
Document Length: 695 bytes
Concurrency Level: 60
Time taken for tests: 2.078 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Total transferred: 927000 bytes
HTML transferred: 695000 bytes
Requests per second: 481.20 [#/sec] (mean)
Time per request: 124.688 [ms] (mean)
Time per request: 2.078 [ms] (mean, across all concurrent requests)
Transfer rate: 435.62 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 2 5.2 0 16
Processing: 0 118 19.7 125 156
Waiting: 0 67 35.8 63 156
Total: 0 120 19.6 125 156
Percentage of the requests served within a certain time (ms)
50% 125
66% 125
75% 125
80% 125
90% 141
95% 141
98% 156
99% 156
100% 156 (longest request)
可以直接用ab 查看它里面有很多参数,现就主要两个:-n 总的请求数, -c 并发数,后面再加上请求的页面地址。
因我的tomcat 5上的 server.xml不是如上所设,在70并发时会有错误,
F:\Tomcat\Apache2.2\bin>ab -n 1000 -c 70 http://135.192.10.24:9001/qhcrm/query/a
ddressQuery.jsp
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking 135.192.10.24 (be patient)
apr_poll: 由于系统缓冲区空间不足或列队已满,不能执行套接字上的操作。 (730055)
不知是怎么原因,准备把参数调大,再来测试。
2. 关于JMeter ,它是Java开发的,首先从apache上下载 apache-jmeter-2.8.gz
这是一个分布式的,在你的服务器上,也是tomcat所有的机器上也有copy 一份。
1. 直接解压,运行
apache-jmeter-2.8\bin 下的 jmeter-server.bat linux 下中 jmeter-server.sh , 如果显示有1099端口的冲突,就要改 jmeter.properties 中的
# RMI port to be used by the server (must start rmiregistry with same port)
server_port=1098 ------------- 把下面注掉的打开改为 1098 或别的端口
#server_port=1099
2, 在你本机放一个相同版本的jmeter, 最好每个机器上的jmeter都是一样的,
修改 jmeter.properties中的
# Remote Hosts - comma delimited
remote_hosts=127.0.0.1:1098 --- 找到以下注掉的,打开,改为 远程机的IP:端口号,这里可以配多个,用,隔开,即可,在下面的客户端中会看到可以测试多个远程机上的系统。
#remote_hosts=localhost:1099,localhost:2010
Jmeter 是通过RMI 来远程连接的。
3. 启动后,就打开发客户端:
如果,配了多个,在运行那里会显示出多个出来。
4. 在测试计划中新建一个 线程组:
5.
在这个界面上,配置测试系统的IP :Port, 页面PAth:
6.
再右键加入监听器,里面有很多种,可以都加上来看看,
这样,就可以启动了,在上面Tool bar中有一个启动的图标,点一下它就会运行,就可以在监听器中查看所有的结果。
,它还可以测JDBC,WebService 等 ,功能很强大,需要的话,参考官方文档,在些只做入门。
对了,新建的线程组,还要对它另存为,保存为一个 .jmx 的文件,下次还可以打开再看。
- 大小: 119.2 KB
- 大小: 99.6 KB
- 大小: 81 KB
- 大小: 116.8 KB
- 大小: 105.6 KB
- 大小: 141.7 KB
分享到:
相关推荐
测试文档(测试计划+测试报告+测试方案+测试用例+试运行报告+测试工具+测试流程概述+jmeter入门手册)
badboy+jmeter压力测试工具组合的压力测试工具,比loadrunner精简,但是功能健全。
Jmeter+ant自动生成测试报告的模板,测试报告中增加TPS(Throughput)和90% Line等指标;
Jmeter+ant+Jenkins接口自动化文档 本地项目尝试,输出了文档介绍了资源下载以及安装,使用的步骤。
(1)批处理命令bat文件: (2)build.xml文件、 (3)user.properties、jmeterxml.properties、jmetercsv.properties文件。...【jmeter】jmeter报告可视化:配置生成报告仪表板,jmeter+Jenkins自动化构建生成HTML报告
JMeter+ant测试报告优化
基于Prometheus+Grafana搭建JMeter性能测试监控平台.docx 做性能测试,如果没有养成良好的保存结果习惯,那么一个业务指标监控平台就必不可少,不仅可以在线监控,还可以用于报告总结,数据持久化的好处就是让人眼前...
jmeter+ant+Jenkins搭建接口自动化测试,可以三体集成实现一键自动;
grafana+influxdb+prometheus+node exporter+jmeter实时监控.docx 个人整理,适合新手快速入门,捣鼓几天的结果。。
一个自动化测试框架,可性能也可接口;maven负责项目管理,jenkins服务器就不需要安 装jmeter运行环境(错误的,maven项目配置pom文件),只需要注册脚本所需要的jar包 到本地仓库即可;git源码管理,maven构建; 1...
jmeter-压力测试报告-超细,Jmeter性能测试工具使用总结
Jmeter+Jenkins+maven接口自动化集成测试框架 可以方便JMeter开发的接口测试脚本自动构建执行,生成html报告,发送邮件。
Jmeter+Jenkins+maven接口自动化集成,超详细,环境大家围观
文档详细记录了jenkins+ant+jmeter自动化接口测试框架搭建的过程步骤,供大家参阅。
├ 第1章 章节一JMeter压力测试课程介绍 │ │ 1、亿级流量压测系列之Jmeter4.0课程介绍和效果演示.mp4 │ └ 2、常用压力测试工具对比.mp4 ├ 第2章 章节二 JMeter4.x基础知识讲解和压测实战 │ │ 3、Jmeter基本...
利用apache jmeter 对一个注册模块进行压力测试的过程记录。
本文档介绍了如何通过Jenkins和jmeter实现接口自动化测试,并通过邮件发送测试报告,很经典的一个文档。
Jmeter+ant+Jenkins集成接口自动化测试详细说明
此jar包为jmeter 的mqtt连接服务器压力测试工具。本人使用的是MessageBufferPacker对数据加密所以没有传入参数,修改自己修改