JMeter Plugins之内网插件问题解决
背景
在我司内部进行JMeter工具进行性能脚本开发时,为了提高测试效率,我们会用到部分JMeter提供的插件,但是在我司内网的情况下,我们如果直接点击JMeter界面右上角的插件按钮
弹出来的JMeter插件界面会报错,报错截图如下
在我司工作环境中报错主要是两方面引起的:
○ 证书设置问题:没有对JMeter插件网站进行证书设置
○ 内部网络问题:没有设置对应代理上网,导致无法获取目标网站信息
解决方案
证书问题解决
我们可以通过如下方法进行问题解决。
第一步:对JMeter Plugins网站进行证书下载,首先进入https://jmeter-plugins.org/网站
第二步:点击下方红色框选内容
第三步:然后点击“连接是安全的”右侧的三角
第四步:在跳出来的界面中点击“证书有效”右侧的图表,如下图红色框选部分
第五步:在跳出来的证书查看者界面中点击“详细信息”中导出按钮
第六步:点击导出以后将证书进行存放到本地,如桌面。
第七步:使用管理员权限打开cmd界面,并且找到你本地java的安装路径下keytool.exe执行文件,例如我本地的路径为:C:\Program Files\Java\jdk1.8.0_101\jre\bin>,并且执行如下命令
C:\Program Files\Java\jdk1.8.0_101\jre\bin>.\keytool.exe -import -alias JMeter -keystore ..\lib\security\cacerts -file "C:\Users\27988\Desktop\jmeter-plugins.org.crt"
第八步:上述命令行输入以后会跳出如下界面,需要你输入不小于6个字符的密码
注意:在执行上述命令的时候,原先会报如下错误(若不记得之前设置的密码)
原因是你安装的java路径下,比如我的在C:\Program Files\Java\jdk1.8.0_101\jre\lib\security的目录下已经存在cacerts文件,我们需要将原先的cacerts进行备份,在执行命令。
第九步:我们可以通过如下命令来检查证书是否按照完成
C:\Program Files\Java\jdk1.8.0_101\jre\bin>.\keytool.exe -list -keystore ..\lib\security\cacerts -alias JMeter
结果如下:
通过上述操作,完成了证书设置。
Proxy问题解决
我们知道公司内部是通过代理进行上网的,并且之前在介绍JMeter开发环境搭建的时候也讲过如何获取公司代理信息,这里就不再赘述。我们直接获取公司代理IP为:XX.XX.XX.XX,端口为:9090。大家根据实际公司内部的网络环境进行解决。
JMeter配置文件修改
解决完证书和代理问题以后,我们需要对JMeter工具进行相关配置才能使得JMeter工具中打开插件内容。
第一步:使用notepad++工具打开JMeter目录下…\bin\jmeter.bat的文件,并且在文件中找到如下代码行:
%JM_START% "%JM_LAUNCH%" %ARGS% %JVM_ARGS% -jar "%JMETER_BIN%ApacheJMeter.jar" %JMETER_CMD_LINE_ARGS%
第二步:在该代码行上方增加如下代码行并且进行保存:
rem 本行主要进行注释使用-Dhttps.proxyHost配置的是上网代理的IP,-Dhttps.proxyPort配置的是上网代理的端口,-Djavax.net.ssl.trustStore=C:\Program Files\Java\jdk1.8.0_101\jre\lib\security\cacerts为证书地址
set JVM_ARGS=-Dhttps.proxyHost=10.30.6.49 -Dhttps.proxyPort=9090 "-Djavax.net.ssl.trustStore=C:\Program Files\Java\jdk1.8.0_101\jre\lib\security\cacerts"
%JM_START% "%JM_LAUNCH%" %ARGS% %JVM_ARGS% -jar "%JMETER_BIN%ApacheJMeter.jar" %JMETER_CMD_LINE_ARGS%
第三步:保存完配置以后双击jmeter.bat启动JMeter,起来以后点击插件按钮,可以看到插件界面能够正常展示:
总结
虽然JMeter插件网站提供了如何解决上述内容的方法:
https://jmeter-plugins.org/wiki/PluginsManagerNetworkConfiguration/但是现实的内容比较简单,尤其是SSL Configuration配置这一块,简单的写了制定地址,但是并没有写如何生成证书,因此本文对我司内部(类似公司内网设置)插件加载进行了详细的描述。