- 首先下载JMeter,网址:https://jmeter.apache.org/dow...
下载Binaries版,即可执行版,已编译好,下载解压就可以用。
Source版是源代码版,需要自己编译成可执行文件。
tgz压缩格式用于unix系统。Windows系统中用WinRAR也能解压tgz. -
双击 /bin/jmeter.bat,打开GUI mode来设计脚本。
如果设计完成后,跑压力测试,要用Non-GUI mode. -
如果没有安装JAVA,在运行jmeter.bat后,会提示 Not able to find Java executable or version.Please check your Java installation.
-
按JMeter官网的说明,最少要安装JRE,但最好安装JDK,因为用到JDK中的keytool。
JMeter is compatible with Java 8 or higher. We highly advise you to install latest minor version of your major version for security and performance reasons.
Because JMeter uses only standard Java APIs, please do not file bug reports if your JRE fails to run JMeter because of JRE implementation issues.
Although you can use a JRE, it is better to install a JDK as for recording of HTTPS, JMeter needs keytool utility from JDK. - 那么keytool是什么呢?
网络上的文章有写到:
keytool 是 JDK 自带的一个密钥库管理工具。这里只用到了 keytool 的部分功能,包括生成密钥对,导出公钥等。keytool 生成的公钥/私钥对存放到一个到了一个文件中,这个文件有密码保护,通称为 keystore。
所以,应该是为了HTTPS协议所用。 - 那么怎么下载JRE,或JDK呢?
JRE,叫Java运行时环境,现在直接叫Java8,包括JVM+Java SE核心类库。JDK,叫Java开发工具包,包括 JRE+Java开发工具(java,javac,javadoc,...)
JDK,又分为Java EE(企业版),Java SE(标准版),Java ME(小型版)。
按文章https://blog.csdn.net/wangpai...上所讲,JRE现在被包含JDK中,一般也不再单独下载。而Java EE已经融入Java企业框架。Java ME已经被放弃。现在的下载Java SE,与下载JDK,或者下载Java,都是同义词。OpenJDK,是指开源的JDK。
但在Java官网下载时,发现下载Java时,仍是JRE;而下载Java SE开发工具包,才是下载JDK,又叫Oracle JDK,与OpenJDK是差不多的。JRE和JDK的文件大小也差距甚大。 -
如果只安装JRE,没有keytool,那通过JMeter测试HTTPS接口会如何?
只安装Java 8后,使用HTTPS协议,就会返回location.replace(location.href.replace("https://","http://"));
JMeter2.13时,返回的字符,最多接受204800
JMeter5.5时,View Results Tree在结果之间切换时,会卡顿。
JMeter4,能使用5.5创建的脚本,而且没有卡顿现象。 - 再安装JDK后(JDK19)
运行JMeter4,报错 Error occurred during initialization of boot layer ...Module java.activation not found
开始以为是因为JRE和JDK一起安装的原因,但卸载了JRE,仍是报这个,后来百度https://www.soinside.com/question/EUvBeQasUqUPQavRje3bf6,说是因为JMeter4太旧。
那为什么JRE没卸载时,JMeter4没问题呢?难道最新的JRE(Java8)比最新的JDK19版本低很多?待会试一下
换了JMeter5.0,能启动,也没有卡顿。但仍是不能使用HTTPS。
后来查询,要使用HTTPS,要导入接口网站证书。这个证书需要使用keytool转化为store格式。参考文档https://www.cnblogs.com/benpa...
-
将JDK19卸载,换上JDK17
本身JDK19按官网说法就不是长期支持版本
换上JDK17后,JMeter4,JMeter5.5仍是前面的问题。JMeter5.4和JMeter5.4.3另有Open按钮无响应的问题。难道只能用JMeter5.0? 应该按推荐使用最新的JMeter啊。 -
将JDK下载页面继续向下,看到有JDK8和JDK11,但下载都要注册账户,而且看网上说,只有JDK11后才免费。暂时放弃。
-
改用OpenJDK试一试,先卸载Oracle JDK17,再安装OpenJDK19.0.1
将OpenJDK19.0.1解压,放到自己目录。配置Java的环境变量,这步非常必要
这时cmd就可以在任意目录运行java或javac。当然cmd要重新打开。 -
安装OpenJDK19成功后,运行JMeter
运行JMeter4.0,仍报同样的错运行JMeter5.5,仍是卡顿问题。(命令窗口也没有error。这点之前没注意,是最后一步时才注意到)。但注意到,卡顿是因为response body内容太大时的结果,才会卡顿。如果不大,还是很快。
运行JMeter5.4.3,则仍是Open按钮的问题。 -
换成OpenJDK17,同样的结果。
-
换成OpenJDK8u42后
运行JMeter4.0,打开不再报错。跑脚本也没有问题。
运行JMeter5.5,仍有卡顿问题。而且但命令窗口提示有error
运行JMeter5.4.3,Open按钮解决了,也没有卡顿。但命令窗口的error,同JMeter5.5一样。
通过上述不同的组合知道,要想使用最新的JMeter,那不论使用哪版的JDK,都不完美。
既然如此,就使用最新的OpenJDK19,而JMeter使用5.5版本,或者5.0版本吧。