Jmeter性能测试工具
下载地址:http://jmeter.apache.org/download_jmeter.cgi
Windows下使用
这里我们选择Binaries包,jmeter不需要安装直接解压使用,但是需要配置Java环境
安装jdk,这里就不说了
配置Java环境变量:
win7系统
计算机--属性--高级系统设置--高级--环境变量--系统变量--新建
变量名:JAVA_HOME
变量值:C:\ProgramFiles (x86)\Java\jre1.8.0_101#java路径
再次点击新建
变量名:JMETER_HOME
变量值:D:\apache-jmeter-3.1#jmeter存放路径
再次点击新建
变量名:CLASSPATH
变量值:%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar;%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib\logkit-2.0.jar;
在系统变量中找到Path,点击编辑,在变量值中加上
%JAVA_HOME%/bin;%JAVA_HOME%/jre/bin;#如果前面没有“;”需要加上,如:;%JAVA_HOME%/bin;%JAVA_HOME%/jre/bin;
依次点击确定
Web性能测试:
打开apache-jmeter-3.1/bin/jmeter.bat
打开的时候会有两个窗口,Jmeter的命令窗口和Jmeter的图形操作界面,不可以关闭命令窗口
1、测试计划--右键或者点击编辑--添加--Threads(Users)--Setup Thread Group(创建一个线程组,组名可修改)
2、Setup Thread Group--右键或者点击编辑--添加--Sampler--HTTP请求
3、Setup Thread Group -右键或者点击编辑--添加--监听器--AggregateGraph
4、Setup Thread Group --右键或者点击编辑--添加--监听器--察看结果数
5、点击Setup Thread Group,配置一些参数
a)线程数:一般我们用来表示多少个用户,即我们测试时的用户数量
b)Ramp-up Period(in Seconds):表示每个用户启动的延迟时间,上述我设为1秒,表示系统将在1秒结束前启动我设置的1000个用户,如果设置为1000秒,那么系统将会在1000秒结束前启动这1000个用户,开始用户的延迟为1秒,如果我设置为0秒,则表示立即启动所有用户。
c)循环次数:如果你要限定循环次数为10次的话,可以取消永远的那个勾,然后在后面的文本框里面填写10;在这里我们勾上永远,表示如果不停止或者限定时间将会一直执行下去,是为了方便调度器的调用。
d)调度器:我们勾选调度器,出现下面的可选项
e)持续时间:表示脚本持续运行的时间,以秒为单位,比如如果你要让用户持续不断登录1个小时,你可以在文本框中填写3600。如果在1小时以内,结束时间已经到达,它将会覆盖结束时间,继续执行。
f)启动延迟:表示脚本延迟启动的时间,在点击启动后,如果启动时间已经到达,但是还没有到启动延迟的时间,那么,启动延迟将会覆盖启动时间,等到启动延迟的时间到达后,再运行系统。
g)启动时间:表示我们脚本开始启动的时间,当你不想立即启动脚本测试,但是启动脚本的时间不会再电脑旁的时候,你可以设定一个启动的时间,然后再运行那里点击启动,系统将不会立即运行,而是会等到你填写的时间才开始运行。
h)结束时间:与启动时间对应,表示脚本结束运行的时间。
6、点击HTTP请求
1)名称:可以随意取,我们可以根据录制脚本的路径来命名
2)注释:可以对该界面做一个简单介绍
3)服务器名称或IP:即我们的服务器或者IP的地址。
4)端口号:我用的是tomcat,所以是8080,后面的超时定义可以不用填写。
5)Implementation:这里我们录制时默认填写为JAVA,协议填写为:http,方法为:GET
6)Content encoding:编码可以不用填写
7)路径:即页面的路径,我们这里选择/;下面的重定向等选择可以根据需要勾选,这里我们保持录制不修改。
8)Parameters参数:即跟着路径一起发送的参数及文件
9)下面的代理服务器等可以忽略,按需要填写。
7、点击Setup Thread
Group,修改线程数和循环次数
8、点击上方的启动,会提示测试结果要保存的文件位置
9、点击Aggregate Graph
1)Label:每个JMeter的element(例如HTTP Request)都有一个Name属性,label显示的就是Name属性的值。
2)#Samples:表示你这次测试中一共发出了多少个请求,如果模拟10个用户,每个用户迭代10次,那么这里显示100,现在显示10000,是因为我上面分别配置了100。
3)Average:平均响应时间--默认情况下是单个Request的平均响应时间,当使用了Transaction Controller时,也可以以Transaction为单位显示平均响应时间。
4)Median:中位数,也就是50%用户的响应时间。
5)90% Line:90%用户的响应时间。
6)Min:最小响应时间。
7)Max:最大响应时间。
8)Error%:本次测试中出现错误的请求的数量/请求的总数。
9)Throughput:吞吐量--默认情况下表示每秒完成的请求数(Request per Second),当使用了Transaction Controller时,也可以表示类似LoadRunner的Transaction per Second数。
10)KB/Sec:每秒从服务器端接收到的数据量。
可以在web server调整参数后,再次测试,查看前后对比结果。
数据库性能测试
需要安装jdbc驱动
Mariadb:
https://mariadb.com/download_file/connector/java/mariadb-java-client-1.5.4.jar
Mysql(压缩包,只需要用到包中的jar包):
http://dev.mysql.com/downloads/connector/j/
1、测试计划--右键或者点击编辑--添加--Threads(Users)--Setup Thread Group(创建一个线程组,组名可修改)
2、Setup Thread Group--添加--配置元件--JDBC Connection Configuration
3、点击JDBC Connection Configuration,此项中的参数必须要配置,不能为空,否则会影响其它测试项目的使用
修改的配置:
Variable Name:Mariadb
Database URL:jdbc:mariadb://172.16.10.167:3306/caolei
JDBC Driver
class:org.mariadb.jdbc.Driver
Username:root
Password:******
几种常见数据库的driverClassName和url
Mairadb:
driverClassName: org.mariadb.jdbc.Driver
url: jdbc:mariadb://localhost:3306/test
DB2:
driverClassName:com.ibm.db2.jcc.DB2Driver
url:jdbc:db2://localhost:50000/sample
Oracle:
driverClassName:oracle.jdbc.driver.OracleDriver
url:jdbc:oracle:thin:@localhost:1521:orcl
MySql:
driverClassName:com.mysql.jdbc.Driver
url:jdbc:mysql://localhost:3306/test
4、Setup Thread Group--添加--Sampler--JDBC Request
Variable Name:Mariadb
插入一条查询语句
5、Setup Thread Group -右键或者点击编辑--添加--监听器--AggregateGraph
6、Setup Thread Group --右键或者点击编辑--添加--监听器--察看结果数
7、测试计划--下方的浏览(将下载的JDBC的jar包添加到这里,可添加多个)
点击启动,如果数据量大,需要等待停止键变灰,启动键变亮,右侧的时间停止,才能表明测试结束
时间右侧的警告图形,点击之后可以显示测试错误的详细信息
还可以设置断言、图形显示、表格显示等
Jmeter插件:
https://jmeter-plugins.org
目前只是可以进行简单测试,还有更多功能需要研究。