本文主要介绍一下常用的两款测试工具:
JMeter,一个100%的纯Java桌面应用,由Apache组织的开放源代码项目,它是功能和性能测试的工具。具有高可扩展性、支持Web(HTTP/HTTPS)、SOAP、FTP、JAVA等多种协议的特点。
Jmeter官网: http://jmeter.apache.org/
目前最新版本的jmeter为3.3版本,要求jdk版本为1.8
下载地址:http://jmeter.apache.org/download_jmeter.cgi
Jdk版本为1.7的,可以下载3.1版本,功能基本一致
下载地址:https://archive.apache.org/dist/jmeter/binaries/
下载Jmeter后,直接解压,在bin目录下,双击jmeter.bat
添加线程组并设置参数大小:测试计划->添加->Threads ->线程组
添加HTTP请求:线程组下添加->Sampler ->HTTP请求
注意:同一个线程组内的多个请求是顺序执行的,不同线程组的请求的并行执行的
添加HTTP请求:线程组下添加->Sampler ->HTTP请求
添加响应断言:HTTP请求->添加->配置元件->HTTP信息头管理器
添加响应断言:HTTP请求->添加->断言 ->响应断言
添加查看结果树: HTTP请求-监听器-查看结果树
为了使测试数据动态化,更真实的模拟用户请求,需要对接口数据做参数化
Jmeter的函数助手里,有全部的函数以及相关文档
常用的内置函数:
添加CSV Data Set Config :线程组->添加->配置元件 -> CSV Data Set Config
在HTTP请求里,把需要做参数化的参数值,用${参数名}代替
工作中经常有这种测试需求:接口B的参数来源于接口A的返回值,这个时候如果要测试接口B,就需要先把A接口的数据提取出来
步骤:
1、先添加接口A的请求,A请求的返回值为{"skuId":123,"price":93.0,"stock":1977,"opt":abc,"result":true}
2、在A请求内部创建一个后置处理器-JSON Extractor,按照下图填写
解释
Variable name:定义一个变量,存储提取的数据
JSON Path expressions:json表达式,用$代表整个json数据,$.stock标识json字符串中key为stock的值
Match Number:匹配数字,根据json表达式匹配出的数据可能有多个,这个数字表示获取第几个,如1代表匹配出的第一个数据;0代表随机一个数据
3、添加请求B,在B请求的url中,直接用${参数名}来代表JSON提取器中定义的参数,如
在GUI模式下进行压测,Jmeter本身的性能开销非常大,因此官方建议真正压测时在非GUI模式下进行
所以一般选择在Linux下,或windows命令行下执行压测
GUI模式下,可以先把修改下jmeter的bin目录下jmeter.properties
summariser.interval=10(实时展示性能数据的间隔时间s)
在GUI模式下先把jmx脚本创建并调试好,然后在命令行下执行命令:
jmeter -n –t test.jmx -l result.jtl
-n: 命令行模式
-t:jmx脚本路径
-l:测试结果文件路径
命令行模式下结果分析:
1、通过查看控制台日志
2、使用聚合报告打开测试生成的jtl文件,也可以获取到性能数据
3、根据jtl文件生成HTML报表
使用报表前先修改Jmeter的bin目录下reportgenerator.properties
修改jmeter.reportgenerator.overall_granularity=1000(报表统计的间隔时间)
执行以下命令后,就会在当前目录下的output文件夹中生产html报表
jmeter –g test.jtl –o ./output
下载到本地用浏览器打开即可查看报告
TPS趋势图:
平均响应时间趋势图:
JProfiler是一个商业授权的Java剖析工具,由EJ技术有限公司,针对Java EE和Java SE应用程序开发的。
Jprofiler主要有两部分组成:客户端和Server端
注意:Jprofiler server端启动后对Java程序的性能影响较大,所以不能作为常规性的监控工具,只能在排查问题时使用
1.安装
在服务器上安装JProfiler9.1.1 server端
rmp –ivh jprofiler_linux_9_1_1.rpm
安装成功后,jprofiler默认安装在了/opt/jprofiler9目录下
2.配置
在tomcat的catalina.sh,把以下参数添加到JVM参数配置的地方,如
JAVA_OPTS="$JAVA_OPTS -agentpath:/opt/jprofiler9/bin/linux-x64/libjprofilerti.so=port=8849,nowait"
配置好后重启tomcat
1. 在windows下安装好jprofiler_windows_9_1_1.exe
2. 启动Jprofiler,按照以下步骤操作