jmeter安装和简单使用
1. 安装
jmeter是基于Java开发的测试应用,其运行依赖于java环境,所以在下载运行jmeter前,先确保本机已经安装jdk或者jre,安装jdk步骤此处不描述。
下载jmeter:
jmeter是Apache旗下的产品,可直接搜索Apache Jmeter找到官网下载
连接:https://jmeter.apache.org/download_jmeter.cgi
点击即可下载,但是……我下载的时候那是相当的慢,十多KB每秒的速度真的很煎熬,后来坚持不了,百度了下说可以交给迅雷下载,特意去下了个迅雷,确实快很多,直接右击复制下载链接,交给迅雷下,几分钟就能完成
下载后是一个zip压缩包,找个位置解压,内容如下
进到其bin目录下,有个jmeter.bat文件,双击运行
诶~不行,报错
说找不到Java执行文件,检查Java安装情况,但是我明明有安装到Java的,在cmd窗口时可以通过java -version
命令的。
然后说要配置在Path中配置jmeter执行路径,然后在环境变量中的系统变量的Path中添加
%JMETER_HOME%\bin
然后点击jmeter.bat运行,诶~?还是不行
最后的最后才发现要还要在系统变量的Path中添加
%SystemRoot%/system32;%SystemRoot%
然后就可以了。
回头看看删除上面在Path中配置的jmeter的执行路径,即%JMETER_HOME%/bin
,删除掉,发现依旧可行。因为事实上jmeter.bat已经配置了
所以总结
我的版本是win11,系统变量中Path没有 %SystemRoot%/system32
和 %SystemRoot%
,而jmeter运行需要这两个环境变量
最后贴最终配置的环境变量
双击jmeter.bat,成功运行
2. 使用
默认是全英文的,有条件的可以去搜中文插件,此处基于英文做简单使用
右击Test Paln,选择Add,选择Threads(Users),选择Thread Group。作用是创建测试分组,分组是什么意思呢,就是将一组操作集合起来,例如两个http请求“http://localhost:8080/test01”和“http://localhost:8080/test01”,可以放在同一组下,选中组,点击运行,那么以上两个请求就能一起运行了,多个也是一样。
右击Thread Group,选择Add,选择Sampler,选择HTTP Request,创建http请求,这个操作就是创建具体请求
左边选中刚创建的HTTP Request,右边输入相应配置,主要为
- Name:创建的http测试起个名字,如果这一组有多个http请求,都叫HTTP Request,后续测试不好区分。
- Protocol[http]:http协议,http或者https
- Server Name or IP:访问连接的ip地址或者域名
- Port Number:端口号
- HTTP Request:下拉框可以选择GET,POST等等
- Path:请求的uri,不带协议,域名和端口号
此时,当我们点击上面绿色三角形时,就会发起一次请求,但只有一次。首次点击运行时会要求将配置保存到文件夹,创建或者选择一个文件夹即可。后续就可以选择Open打开找回之前的配置。
我们使用jmeter的目的主要是想用来批量发请求,或者压测,所以我们应该设置同时发送多个请求,我们回到组设置,即是Thread Group
点击Thread Group,主要配置**Number of Thread(users)和Ramp-up period(seconds)**两个配置。
- Number of Thread(users):可理解为一共要发送多少个请求,这是针对单个请求来说的,例如该值设置为100,一组中有“test01”和“test02”等多个请求,则每个请求都会执行100次。
- Ramp-up period(seconds):发送时长,例如设置为5,则为上面配置的100个请求共在5s内请求完毕,相当于每秒请求20次。
此时再点击上面绿色三角形,则会在5秒内请求“http://127.0.0.1:9101/test”,100次。
此时我们还看不到请求结果,如若想看到请求结果的话,我们可以
右击Test(HTTP Reqeust),选择Add,选择Listener,选择View Results Tree,创建结果集
当我们点击绿色运行符号时,就会在View Results Tree中显示运行结果。
另外上面是右击test创建的View Results Tree,还可以点击Thread Group创建View Results Tree,点击Thread Group创建的Results Tree的话,会将该组的所有请求都一起显示出来,例如