如何使用JMeter记录JNLP / Java Web Start应用程序
我需要为JNLP可访问的应用程序进行性能测试。
我使用WireShark看到jnlp只生成TCP流量。
我阅读了与jnlp perf测试相关的所有post,我尝试使用Apache JMeter + UbikLoadPack Java Serialization插件,但jmeter不捕获流量。
它是我唯一的选择捕获TCP流量并使用它吗?
此致,Jaime
如果流量是HTTP(s),根据UbikLoadPack软件包的文档,您需要按照段落的说明操作:
1 /将JMeter证书颁发机构添加到Java使用的cacerts文件中:
请参阅文档“ 配置HTTPS的应用程序 ”(第7/8页)。 如果流量是HTTPS,这将允许您的应用程序在使用JMeter作为代理时工作
步骤如下:
- 启动JMeter
-
使用文件>模板…菜单项,然后选择“录制”模板并单击“创建”
-
单击“开始”按钮启动HTTP(S)测试脚本记录器
-
JMeter将在jmeter / bin文件夹中生成2种格式的证书颁发机构:
- ApacheJMeterTemporaryRootCA.crt
- ApacheJMeterTemporaryRootCA.usr
- 查找系统使用的cacerts文件,它应该在JAVA_HOME / jre / lib / security / cacerts中
- 跑:
keytool -keystore cacerts -importcert -alias jmeter_ca -file
/bin/ApacheJMeterTemporaryRootCA.crt
- 密钥库密码通常是“changeit”
- 输入“yes”表示“信任此证书?” 题
参考文献:
- https://docs.microsoft.com/en-us/azure/java-add-certificate-ca-store
- https://stackoverflow.com/a/11937940/460802
- https://stackoverflow.com/a/8980460/460802
2 /将JMeter设置为JNLP的代理:
- 打开Java控制面板
-
单击网络设置。 将打开“网络设置”对话框。
-
选择使用代理服务器,输入代理服务器名称(localhost)和端口号(JMeter为8888)。
- 单击“高级”并选中“为所有协议使用相同的代理服务器”:
– 单击“应用” – 再次重新启动应用程序
参见参考文档:
- https://docs.oracle.com/javase/7/docs/technotes/guides/jweb/networking/proxie_config.html
- 强制java web开始使用像Fiddler这样的代理,而不需要触及代码
如果它不是HTTP,则插件不支持它。