一、认识开源性能测试工具jmeter
jmeter是什么?
- Apache JMeter是Apache组织开发的基于Java的压力测试工具
- jmeter可以用于对服务器、网络或者对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外jmeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,jmeter允许使用正则表达式创建断言。
jmeter的特点
- 能够对HTTP和FTP服务器进行压力和性能测试,也可以对任何数据库进行同样的测试(通过jdbc)
- 完全的可移植性和100%纯Java。
- 完全多线程框架允许通过多个线程并发取样和通过单独的线程组对不同的功能同时取样
- 各种负载统计表和可链接的计时器可供选择
- 数据分析和可视化插件提供了很好的可扩展性及个性化
- 具有提供动态输入到的测试的功能
jmeter下载安装
- 前置条件:安装好jdk
- jmeter下载地址:http://jmeter.apache.org/download_jmeter.cgi
- 一般启动:解压,bin目录里的jmeter.bat即可启动
- 服务器模式启动:jmeter-server.bat。允许在远程节点上以服务器模式运行jmeter,并通过jmeter gui来控制。(后面详细介绍)
jmeter工作原理
jmeter目录结构
- bin目录是可执行文件,jmeter.bat启动,里面可以设置jvm参数
- 根据经验,heap最多设置为物理内存的一半,默认设置为512M。如果heap超过物理内存的一半,可能允许jmeter会变慢,甚至出现内存溢出
- jmeter的log在jmeter.log中查看
- jmeter.properties文件中有一个属性log_level.JMeter
- 可以设置改变日志详细度。默认是info,可改为debug
- docs下是jmeter的Java docs
- printable_docs的usermanual子目录下是jmeter的用户手册,其中component_reference.html是最常用的核心元件帮助手册
- extras目录下的文件提供了对ant的支持,可以利用ant来实现自动化,例如批量执行脚本,产生HTML报告等
- 允许jmeter的时候会产生一个jtl文件,把它放到extras目录下,运行ant-Dtest=文件名report就可以生成测试统计报表
- lib目录下的ext子目录是jmeter的核心jar包;Junit子目录是放Junit脚本的。
- 用户扩展所依赖的包直接放到lib下即可,不要放到lib/ext下
jmeter vs loadrunner