一、初识JMeter
1. 简介(摘自百度百科)
Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小程序服务、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。
2. 自述
JMeter是业界比较优秀的测试软件,最基本的功能可以当成postman使用,然后进阶点就是给接口做并发测试,这里的并发是指真正意义的并发,像postman之类的软件所谓的并发本质上还是串行执行的。再高阶的用法就是通过脚本来完成多服务器的压测,因为了解有限,更多高级用法得在实际中需要用到才有机会去学习。
二、下载安装JMeter
环境为Win10,jdk版本1.8以上
1. 下载
2. 安装
直接把下载好的压缩包解压到想要安装的位置即可。解压即可使用(前提是系统已经配好jdk环境)
3. 目录
解压可以看到JMeter的基本目录,大致可以了解下。
4. 插件
JMeter支持插件扩展,有更多的功能都可以用插件来实现。
使用插件有两种方法,
一是使用什么插件就下载对应jar包放到%jmeter%libext路径下。
二是使用官网提供的插件管理器,然后在管理器里选择所需插件进行安装。
这里介绍第二种方法,先去下载插件管理器 jmeter-plugins,然后把下载好的jmeter-plugins-manager-1.4.jar 放到%jmeter%libext下重启就可以。
打开JMeter之后,在GUI界面选择 Options -> 最底下 Plugins Manager 即可打开插件管理器进行使用。
三、基本使用
在此简单介绍下JMeter的运行背景,使用GUI界面执行测试会大量消耗系统资源,而使用命令行工具执行测试脚本则能够缩减所需的系统资源,所以一般的用法是先在GUI界面创建好测试计划的脚本,然后通过命令行去执行。
1. 运行
打开%jmeter%in文件夹,里面有sh和bat两种格式的脚本,分别对应Linux系统和Win系统的。打开jmeter.bat就会启动一个命令窗口和GUI界面窗口,两者是共存的,不能关闭,使用时把命令窗口最小化即可。
命令窗口:
GUI界面窗口:
2. 语言切换
英文的方便对照官方文档使用,但想切换中文也是可以的,在之前的版本中使用中文需要下载语言包自己手动加载,在此版本就不需要了,直接在GUI界面窗口操作 Options -> Choose Language -> Chinese (Simplified)即可
然后就切换到中文了。
3. 组件介绍
下文介绍的组件是根据个人学习到的组件而去使用的,所以作为开发人员去使用JMeter可能比不上专业使用,仅作介绍了解。
3.1 测试计划 (Test Plan)
可以理解为一个项目,就是一个最大的根目录,里面包括多种真正工作的测试组件。
3.2 线程组 (Thread Group)
添加:线程(用户) -> 线程组
也称用户组,是进行测试的基本单位, 也可以理解为测试计划执行的开始点,它可以设置线程信息来模拟并发。
3.3 计数器 (Counter)
添加: 配置元件 -> 计数器
用于配置一些计数作用的原件,比如我测接口,需要传一个ID,ID每次递增1,设置好之后,直接在请求参数里使用 ${引用名称}即可使用。
3.4 聚合报告 (Aggregate Report)
添加:监听器 -> 聚合报告
一般用于显示Web接口测试的,它里面各项数据都反应了接口的情况。
各项数据含义(注意:时间单位为ms):
Label
:每个请求的名字,可理解为每个接口请求的Name属性。
样本(Samples)
:表示一次测试中一共发起了多少个请求,如果按照上面设置的持续30s,每秒100个并发量,那么就是30*100=3000个请求。
平均值(Average)
:平均响应时间,默认情况是单个请求的平均响应时间。
中位数(Median)
:中位数,也就是一半的用户的响应时间。
90%百分位和95%百分位(90% Line 和 95% Line)
:意指90%和95%的用户的响应时间,关于为什么是这两个百分比的用户数可以自行了解下。
最小值(Min)
:最小响应时间。
最大值(Max)
:最大响应时间。
异常%(Error%)
:错误率,指一次测试中出现错误的请求/总请求数。
吞吐量(Throughput)
:默认情况表示每秒完成的请求数。
3.5 响应时间图 (Response Time Graph)
添加:监听器 -> 响应时间图
这个图没记错的话是自带的,但好像看起来不太好用,所以其实用别的插件生成的图更生动些。
3.6 察看结果树 (View Results Tree)
添加:监听器 -> 察看结果树
不懂是不是因为翻译问题,可能把查看写成了察看,总之是一个意思。这个组件可以看到请求的发送和返回信息,当你执行测试后,这里会自动填充请求数据就可以看了。
3.7 Http请求(Http Request)
添加:取样器 -> Http 请求
这里就是最常用的组件了,模拟接口测试请求,填写好服务器IP地址和端口号,然后填写请求路径,设置好入参,就可以用了。
3.8 TPS
添加:监听器 -> jp@gc - Transactions per Second
想要查看TPS得先装插件,可用插件管理器安装。
然后添加该组件时,选择TPS即可,
这些组件也是等测试完成有数据之后才会绘制图表,未执行测试之前是不会有东西的。
ps:本次介绍的是个人使用到的一些简单组件,还有很多好用的东西还没接触到,后续有机会可以继续学习使用。
四、 小结
在此学习了解到了JMeter的快速入门,包括下载安装、一些简单的使用。其实可能连入门都不算,JMeter还是很复杂的,比如工作原理、配置文件、日志管理、定时器、断言、命令行执行等更高级的功能,希望在空闲时多去了解下,多掌握一些技能。
文章是在自己电脑typora写好移植过来的,因为版块问题,导致内容换行很别扭。
而且有些图复现不了,只能用本地上面的截图,所以很模糊。