jmeter是非常好用的web服务器压测工具,尤其是当我们写了一些核心代码时,压测非常有必要,因为一些bug在并发大的时候才能测出,比如涉及分布式锁的超卖问题。
下载安装
下载
本机windows系统,官网http://jmeter.apache.org/download_jmeter.cgi下载最新版,因为不需要源码,所以我选了binaries,又win选zip,linux选tgz。
解压
解压到自己指定位置,D:\abc\jmeter\apache-jmeter-5.4
配置环境变量
JMETER_HOME:D:\abc\jmeter\apache-jmeter-5.4
path添加:
%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar
%JMETER_HOME%\lib\jorphan.jar
%JMETER_HOME%\lib/logkit-2.0.jar
运行
管理员身份运行:jmeter.bat(在解压位置/bin目录)
切换语言
测试用例
1.添加线程组
添加并选择要测试的并发线程数、时间、测试次数
线程数要根据自己机器配置设置,过大可能导致死机,但是一般机器和接口几百上千之类的都是没问题的。
2.添加要测的地址
传递post参数有两种,一种直接在参数处添加,这种适合参数值都是字符串的时候,一种json格式,支持json格式的参数值,更加灵活,本例是使用json格式
3.添加http信息头(没有参数可忽略)
4.添加响应断言
5.添加查看结果树
这是为了验证正确数据返回。否则你测一个接口承压能力结果token过期直接接口没走就白测了...
6.添加需要的聚集结果
7.运行
点击绿色运行按钮,实时查看聚集结果和结果树。
8.多用户测试
经常有些接口需要模拟多用户并发场景,此时需要先把需要分组的参数设为${key1},${key2}。然后添加用户参数,为每位用户添加key1、key2参数。如果是统一参数还可以继续写在http请求页,写成固定值即可。
之后每次请求会随机选择某个用户数据来访问接口。还有接口测100次是指所有用户加起来测100次,不是每个用户100次。
接着
以上是我写的非常简单的示例,开发完一个核心接口后可以在本机多次传入不同参数进行压力测试。
另外jmeter还可以引用A接口的输入作为参数测试B接口等等,可以进行很多复杂的测试,鉴于本人水平问题就只先讲到这了。