前言
在定位Bug时,有时候我们需要进行并发测试,而之前我只接触过Postman,在CSDN上也有一帮人在抄来抄去说Postman可以使用Collection做并发测试。但这是错的!!!!
Postman不能做并发测试!!!!!
所以我们可以用到一个强大的工具——Jmeter。
简介
根据Wiki,Jmeter的简介如下:
JMeter是一个Apache项目,可用作负载测试工具,以分析和测量各种服务的性能,重点是Web应用程序。JMeter可用作JDBC数据库连接,FTP,LDAP,Web服务,JMS,HTTP,通用TCP连接和OS本机进程的单元测试工具
使用
下载安装
进入Jmeter的官网下载地址,可以看到这里有两种文件形式。
在这里我们选择二进制形式的压缩包,下载后解压。将解压后的文件移动到自己的工作目录。比如我是~/myspace/下。
使用
进入jmeter的bin文件夹,运行jmeter.sh文件(如果说windows,则是jmeter.bat)
1 | sh jmeter.sh |
这时会打开JMeter的图像界面。
HTTP并发测试
右键点击Test Plan,选择Add – Threads – Thread Group。
在Thread Properties – Number of Threads 里输入100,表示100个并发线程。
接着右键Thread Group,选择Add – Sampler – HTTP Request,表示HTTP请求测试。我是想对127.0.0.1:8080/in这个接口做测试,所以设置如下:
设置完成后,点击菜单栏的Start即可。
使用优化
设置中文
Jmeter是支持中文的,在Option – Choose Language 里选择 Chinese(Simplify) 即可设置为中文简体。
但以上方式只是一次性的,下次启动就不生效了。长期设置可以参考下面这个方法:
进入Jmeter的bin目录,编辑jmeter.properties
在最后一行添加如下代码:
1 | language=zh_CN |
再重新打开也是中文页面了。
启动优化
每次打开Jmeter都需要进入他的路径,比较繁琐,于是我们可以通过设置环境变量的方式,使我们可以通过一个简单的jmeter
命令即可打开。
1 | vim ~/.bash_profile |
增加以下内容:
1 | export JMETER_HOME=/Users/ceaser/myspace/apache-jmeter-5.4.1 # 这里填你自己的jmeter的路径名 |
在source一下就好了。
崩溃修复
不知道什么情况,Jmeter总是在运行不久就崩溃并闪退。报错如下:
1 | Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+[AWTView keyboardInputSourceChanged:]: unrecognized selector sent to class 0x130a695e8' |
百般寻觅,终于在这里,找到了一丝头绪,
可能是Java版本造成的问题。
我本地使用的Java 版本是11.0.11。将其换成11.0.8后,问题解决!!!