之前在项目中用LoadRunner进行并发性能测试,后改用Jmeter更为简便快捷,笔者认为这也是开源工具颇受欢迎的原因之一吧。本次继之前的分享更新了一版,近期项目做个小结,希望大家也可以有新的收获!
下载
官网https://archive.apache.org/dist/jmeter/,选择binaries。目前最新5.6.3,官网上说“应该避免使用比最后一个版本早3个版本的版本”。笔者习惯不使用最新的版本,免得不稳定,大家可以使用5.0以上的都行,2、3版本的bug比较多。
环境配置
一、配置环境变量
系统变量中新建JMETER_HOME,值为安装路径D:\dev\apache-jmeter,再新建classpath,值为%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib/logkit-2.0.jar;
配置之后在命令行直接输入Jmter就可以打开Jmeter,而无需在安装文件夹找bin目录下的jmeter.bat,是不是很便捷?!
二、配置语言
打开apache jmeter5.5,“Options”菜单选择语言为简体中文。如果想永久切换成简体中文,可以打开bin目录下的jmeter.properties,找到第27行。
#language=en
修改成
language=zh_CN
即可。
在项目中性能测试要用到分布式,找到如下的代码:
# Remote Hosts - comma delimited remote_hosts=127.0.0.1 #remote_hosts=localhost:1099,localhost:2010
将remote_hosts进行修改,多个电脑IP时用英文逗号分隔。
三、启动Jmeter
命令行敲cmd,输入jmeter,出现Apache JMeter GUI Mode后停顿一会儿,出现CLI mode的界面。
这是Jmeter主界面,是用Swing(Java用户界面开发工具包)应用程序开发的。
创建测试计划
启动Jmeter窗口,默认打开创建测试计划界面。
测试计划定义如何测试,并提供一个布局,可以看作一个容器在运行测试。一个完整的测试计划将包括如下元素:比如线程组、逻辑控制器、样品产生控制器、监听器、定时器、断言和配置元素等。
测试计划必须至少有一个线程组。
setUp线程组:第一个执行的线程组,用来初始化测试环境。
线程组:普通的线程组。
tearDown:最后一个执行的线程组,用来清理测试环境。
元件
主要分为三类:配置元件、监听器元件和其他常用元件。
一、配置元件
·HTTP请求默认值
新增了HTTP请求默认值,后续的HTTP请求中不需要再填写协议、服务器名称或IP,端口号;
如果改变了环境(测试环境、预生产环境、生产环境)则只需修改请求默认值就好。
端口443 https,端口8080 tomcat,端口80 http
· HTTP消息头管理器
· HTTP Cookies管理器
可自动获取到cookie,带给登录接口用。
二、监听器元件
1.查看结果树
· 分析查看具体某一个请求的详情:
- 请求头、请求体
- 响应头、响应体
· 做性能场景时分析错误请求的原因
- 分析请求错误的原因
2.聚合报告
·汇总统计
- 请求数、响应时间(平均的),单位是ms
- 错误率,越低越好
- 吞吐量,越高越好
- 发送/接收,代表着带宽
3.用表格查看结果
4.图形结果
三、其他常用元件
1.断言
可以把断言拖拽到请求下:
2.前置处理器
· 请求发出去之前执行的控制器元件
如:加密,md5
3.后置处理器
· 请求发出去后执行的控制器元件
如:提前数据,正则表达式
4.定时器
· 思考时间,固定定时器
· 同步定时器,集合点
· 随机定时器
· 吞吐量定时器
作者:枫叶