- Introduction
- Quick Start
- Design
- Tutorial
- Spring MVC
- JSP/JSTL/Servlet
- JQuery and plugins
- Ajax
- Twitter Bootstrap CSS
- SiteMesh
- YUICompressor
- Spring Restful Service
- JAX-WS/CXF
- Spring Data JPA
- JPA/Hibernate
- MyBatis
- Database
- H2 Database
- Datasource
- Transaction
- Redis
- Cache Overview
- Guava Cache
- Ehcache
- Memcached
- Shiro Security
- Crypto
- Schedule/Quartz
- Jmx
- System Protection
- Hystrix
- Rate Limiter
- Monitoring and Metrics
- Metrics-library
- Graphite
- Logging/Slf4j/Logback
- Logstash
- Spring
- Validation Overview
- JQuery Validation
- Hibernate Validator
- General Utilizes
- JSON/JAXB
- Date
- Test Overview
- Unit Test/Mockito/AssertJ
- Selenium2
- BDD
- Performace-test
- JMeter
- Profiler
- Simulator Overview
- Nodejs
- Eclipse
- Maven
- Sonar
- git
- Travis CI
- Jetty
- Micro-Service Architecture/Executable War
- AssertJ
- CreateNewProject
- Dozer
- Graphite-Windows
- Hello-Everybody
- Jaxb
- Json
- Mock
JMeter
Overview
在Gatling这个Scala版的性能测试工具大热之前,Apache JMeter始终是最成熟的开源性能/稳定性测试工具。
Run me faster
- 要用Non-GUI的形式跑
jmeter -n -t demo.jmx -p demo.properties
调正JVM启动参数,默认最大只用512M内存,可以搞大点。
不要放显示结果的listener,只放一个“Generate Summary Results”,隔3分钟打印一次平均值就够了(如果想改短间隔,搜索配置文件里的180,然后copy出来放在自己的配置文件里)。当然,在GUI调试脚本时可以打开“View Result Tree”和“Summary Reports”
Http请求最好用HttpClient4 + Keep Alive
定义变量
像线程数,目标地址等定义成变量,可以随时修改非常方便,写到一个properties文件里,启动jmeter时用-p file 指定:
TARGET_HOST=localhost
TARGET_PORT=8080
THREAD_COUNT=50
LOOP_COUNT=2000
在最顶层的Test Plan元素的User Defined Variables 里面定义 TARGET_HOST = ${__P(TARGET_HOST,localhost)},用户自定义变量TARGET_HOST的值取属性TARGET_HOST的值,如果不存在取默认值localhost。然后后面用到的地方${TARGET_HOST}直接使用。
Http Proxy
如果要用JMeter压GUI页面,这是个很有用的功能。在页面一轮狂点,就能生成相应的脚本,不用从头开始写。
在工作台那里放一个HTTP Proxy Server,修改端口为8082什么的,然后启动它,还可以在Url Pattern to exclude里把*.jpg之类静态内容屏蔽掉。
在工作台里再放一个Logic Controller->Recording Controller,然后什么脚本都会记录在这里。
在浏览器的代理服务器一栏,指向localhost,和你之前设定HTTP Proxy Server的端口。
一轮狂点,搞定。
Other Tips
元素间的执行顺序并不是按GUI里摆放的顺序的,不要被自己骗了。总是预处理的先做,然后跑Sampler,然后做Verify。有顺序的时候多用Controller。
Restful与GUI测试就用Http Request了,SOAP用SOAP/XML-RPC request。
为了支持cookie,支持session,在每个线程组里放一个Cookie Manager。
如果要测试别的协议,尽情写插件吧,公司里写过了Diameter协议的,无难度。
In SpringSide
在support/jmeter目录里放着对showcase进行测试的若干脚本,包括GUI/REST/SOAP 5个场景。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论