典型的性能测试工具主要有2个,Load Runner和jmeter。Load Runner是商业化的,Jmeter是开源的。下面我们认识一下开源性能测试工具jmeter。
1、jmeter是什么?
Apache JMeter是Apache组织开发的基于Jave的压力测试工具。
Jmeter可以用于对服务器,网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外Jmeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,Jmeter允许使用正则表达式创建断言。
2、jmeter的特点
能够对HTTP和FTP服务器进行压力和性能测试,也可以对任何数据库进行同样的测试(通过JDBC)。
完全的可移植性和100%纯Java。
完全多线程框架,允许通过多个线程并发取样和通过单独的线程组对不同的功能同时取样。
各种负载统计表和可链接的计时器可供选择。
数据分析和可视化插件提供了很好的可扩展性以及个性化。
具有提供动态输入到测试的功能。
3、JDK下载,安装,配置环境变量。
JDK下载。jmeter 4.0 需要JDK 1.8或以上版本。网址:http://www.oracle.com/technetwork/cn/java/javase/downloads/jdk8-downloads-2133151-zhs.html
JDK安装。双击安装,安装之后运行cmd,输入Java -version可查看版本。
JDK环境变量配置。计算机→属性→高级系统设置→高级→环境变量→系统变量
- 新建“JAVA_HOME”变量,变量值为:D:Javajdk1.8.0_171(根据jdk的实际安装路径填写)。
- 新建“CLASSPATH”变量,变量值为:.;%JAVA_HOME%lib;%JAVA_HOME%lib ools.jar;(其为java加载类路径,只有类在classpath中java命令才能识别,在路径前加了个"."表示当前路径)。
- 在path变量里添加变量值:%JAVA_HOME%in;%JAVA_HOME%jrein(变量值之间用“;”隔开,注意原来Path的变量值末尾有没有“;”号,如果没有,先输入“;”号再添加变量值)。
配置之后在cmd窗口输入javac,显示命令用法则说明配置成功。
4、jmeter下载,安装。
Jmeter下载最新版本4.0。官网:http://jmeter.apache.org/download_jmeter.cgi
Jmeter历史版本下载地址:http://archive.apache.org/dist/jmeter/binaries/
Jmeter安装。Jmeter下载之后是一个zip包,解压即可。避免在一个有空格的路径安装 JMeter。这将导致远程测试出现问题。
5、jmeter启动
一般启动:双击bin目录里的jmeter.bat即可启动。
服务器模式启动:jmeter-server.bat。允许在远程节点上以服务器模式运行jmeter,并通过jmeter gui来控制。
6、jmeter工作原理
jmeter可以作为web服务器与浏览器直接的代理网关,以便捕获浏览器的请求和web服务器的响应,如此就可以很容易地生成性能测试脚本。有了性能测试脚本,jmeter就可以通过线程来模拟真实用户对web服务器的访问压力。这与LoadRunner的工作原理基本一致。
7、jmeter的目录结构
1.bin目录下是可执行文件。
jmeter.bat启动,里面可以设置jvm参数。根据经验,heap(堆内存)最多设置为物理内存的一般,默认设置为512M。如果heap超过物理内存的一般,可能运行jmeter会慢,甚至出现内存溢出。
jmeter的log在jmeter.log中查看。
jmeter.properties文件中,属性log_level.JMeter可以设置改变日志详细度。默认是info,可改为debug。也可以在jmeter界面中,点击编辑-添加-非测试元件-Property Display,它相当于把jmeter.properties文件以GUI的方式展现出来,可以在此界面修改参数。
2.docs目录下是jmeter的Java docs。
3.printable_docs目录:其中的usermanual子目录是jmeter用户手册,其中component_reference.html是最常用的核心元件帮助手册。当然你也可以打开jmeter程序后,在帮助菜单下点击“帮助”选项查看帮助手册。
4.extras目录下的文件提供了对ant的支持,可以利用ant来实现自动化,例如批量执行脚本,产生html报告等。
运行jmeter的时候会产生一个jtl文件,把它放到extras目录下,运行ant-Dtest=文件名 report就可以生成测试统计报表。
5.lib目录下的ext子目录是jmeter的核心jar包,junit子目录是放junit脚本的。用户扩展所依赖的包直接放到lib下即可,不要放到lib/ext下。
8、jmeter VS loadrunner