环境:win10 + java 1.8
安装
直接搜jmeter,注意选国内镜像。
解压放到 Path\apache-jmeter-5.4.1 然后cmd进入bin下,输入jmeter.bat
入门测试
JMeter是Java实现的,并且使用一个Java线程来模拟一个用户,一个线程组Thread Group就是一组用户。
添加线程组
配置线程组
- Number of Threads:用户数
- Ramp-up period:一般是登录频率最高的时间长度,比如一个考勤系统,从8:30到9:10都有人登录,但8:55-9:00登录人数最多,那么Ramp值就可以设为 5 * 60 = 300 。表示到Ramp值这么长时间的时候,所有用户一起登录。如果用户数是100的话,表示300 / 100 = 3秒就多加一个用户登录。所以这是持续加压的过程。
- Loop Count:一个用户做多少次测试。如果选中Infinite,那么就一直运行了。
添加被测页面
然后保存并开始。
要看运行情况,可以去菜单栏Options勾选Log Viewer,然后就有类似Console的东西了。
添加监听器
添加完结果树后,在运行完测试后,点击查看结果树即可看到这些。
小心,别放太多请求,免得被封
带参数的GET请求
测试内容:http://www.baidu.com/s?ie=utf-8&wd=jmeter性能测试
端口号:目标服务器的端口号,默认80
中文的话URL Encode?要勾选
POST请求
下面拿我自己的项目测试一下。
如果结果树里飘红了(比如有400错误),要去服务器那边看看报错。
额外说明
我在测试时出现过回复的页面正确,但数据不正确的情况。虽然最后发现是自己的数值写错了,但是有网友说下面的设置可以解决回复为空的情况,所以也写下来吧。
Adavanced → Implementation中,
有加解密的情况下,HTTPClinet在POST时会自动将特殊字符转义,然而Java在发送过程中不处理;
JAVA:使用的是JAVA JVM提供的http方法,但有一定的限制,
- 当jmeter释放一个请求后,同样的进程中可能不会再使用了;
- 只使用于单进程模式;
- 不支持虚拟主机,不支持相关的方法,不支持存储证书的请求
HttpClient4.1:使用的是Apache HttpClient4.1部件
空白:使用Http默认请求中配置或jmeter.properties中jmeter.httpsample中的配置
聚合报告
聚合报告给的是整个组的。无论这个组下有几个Http request。
汇总报告比聚合报告简单一点,主要用聚合报告吧。下面是聚合报告示例: