Jmeter 2.10 HTTP 记录器抛出 keytool 异常 [英] Jmeter 2.10 HTTP recorder throws keytool exception

查看:46
本文介绍了Jmeter 2.10 HTTP 记录器抛出 keytool 异常的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试调查 jmeter,但很快就遇到了一些问题.我正在尝试遵循 http://jmeter.apache.org/usermanual/jmeter_proxy_step_by_step.pdf 上的教程.当我尝试启动记录器时,出现无法创建代理错误.日志给了我这个消息:

I am trying to investigate jmeter and have quickly run into some problems. I am attempting to follow the tutorial at http://jmeter.apache.org/usermanual/jmeter_proxy_step_by_step.pdf. When I attempt to start the recorder I get a cannot create proxy error. The logs give me this message:

2013/10/23 13:40:54 INFO  - jmeter.util.JsseSSLManager: Using default SSL protocol: TLS 
2013/10/23 13:40:54 INFO  - jmeter.util.JsseSSLManager: SSL session context: per-thread 
2013/10/23 13:54:32 WARN  - jmeter.protocol.http.proxy.ProxyControl: Could not open/read key store C:\apache-jmeter-2.10\bin\proxyserver.jks (The system cannot find the file specified) 
2013/10/23 13:54:32 INFO  - jmeter.protocol.http.proxy.ProxyControl: Creating Proxy CA in C:\apache-jmeter-2.10\bin\proxyserver.jks 
2013/10/23 13:54:32 ERROR - jmeter.protocol.http.proxy.ProxyControl: Could not initialise key store java.io.IOException: Cannot run program "keytool" (in directory "C:\apache-jmeter-2.10\bin"): CreateProcess error=2, The system cannot find the file specified

我不知道为什么 exe 不会被拾取,因为它是 java 的一部分并且在我的路径中,或者为什么 jmeter zip 会排除一个必要的文件,所以我将 keytool 从我的 java 安装复制到它正在查找的目录中并再次尝试.当我得到这个时:

I don't know why the exe would not be picked up as it is part of java and in my path or why the jmeter zip would exclude a necessary file so I copied keytool from my java install into the directory it was looking for it and tried again. when I did I got this:

错误 - jmeter.protocol.http.proxy.ProxyControl: 无法初始化密钥存储 java.io.IOException:

ERROR - jmeter.protocol.http.proxy.ProxyControl: Could not initialise key store java.io.IOException:

我收到了一个-1073741515的代码,对于初学者来说没有帮助.我在指向和不指向我的代理服务器的情况下尝试了这些事情,结果没有区别.我使用的是 64 位 Windows 7 系统,并且使用的是 jdk 1.7.

I received a code of -1073741515, which as a beginner is not helpful. I tried these things with and without pointing to my proxy server, no difference in the results. I am on a windows 7 system 64 bit, and am using jdk 1.7.

关于我可以采取哪些步骤来纠正问题的任何建议?

Any suggestions on what steps I can take to correct the issue?

这里是完整的日志

    2013/10/23 15:34:06 INFO  - jmeter.util.JMeterUtils: Setting Locale to en_US   
2013/10/23 15:34:06 INFO  - jmeter.JMeter: Loading user properties from: C:\apache-jmeter-.10\bin\user.properties   
2013/10/23 15:34:06 INFO  - jmeter.JMeter: Loading system properties from: C:\apache-meter-2.10\bin\system.properties   
2013/10/23 15:34:07 INFO  - jmeter.JMeter: Copyright (c) 1998-2013 The Apache Software Foundation   
2013/10/23 15:34:07 INFO  - jmeter.JMeter: Version 2.10 r1533061   
2013/10/23 15:34:07 INFO  - jmeter.JMeter: java.version=1.7.0_21   
2013/10/23 15:34:07 INFO  - jmeter.JMeter: java.vm.name=Java HotSpot(TM) 64-Bit Server VM 
2013/10/23 15:34:07 INFO  - jmeter.JMeter: os.name=Windows 7   
2013/10/23 15:34:07 INFO  - jmeter.JMeter: os.arch=amd64   
2013/10/23 15:34:07 INFO  - jmeter.JMeter: os.version=6.1   
2013/10/23 15:34:07 INFO  - jmeter.JMeter: file.encoding=Cp1252   
2013/10/23 15:34:07 INFO  - jmeter.JMeter: Default Locale=English (United States)   
2013/10/23 15:34:07 INFO  - jmeter.JMeter: JMeter  Locale=English (United States)   
2013/10/23 15:34:07 INFO  - jmeter.JMeter: JMeterHome=C:\apache-jmeter-2.10   
2013/10/23 15:34:07 INFO  - jmeter.JMeter: user.dir  =C:\apache-jmeter-2.10\bin   
2013/10/23 15:34:07 INFO  - jmeter.JMeter: PWD       =C:\apache-jmeter-2.10\bin   
2013/10/23 15:34:07 INFO  - jmeter.JMeter: IP: xxxxxxxx Name: xxxxx FullName: xxxxx   
2013/10/23 15:34:07 INFO  - jmeter.JMeter: Loaded icon properties from org/apache/jmeter/images/icon.properties   
2013/10/23 15:34:07 INFO  - jmeter.engine.util.CompoundVariable: Note: Function class names must contain the string: '.functions.'   
2013/10/23 15:34:07 INFO  - jmeter.engine.util.CompoundVariable: Note: Function class names must not contain the string: '.gui.'   
2013/10/23 15:34:07 INFO  - jmeter.gui.action.LookAndFeelCommand: Using look and feel: javax.swing.plaf.metal.MetalLookAndFeel [Metal, CrossPlatform]   
2013/10/23 15:34:08 INFO  - jmeter.util.BSFTestElement: Registering JMeter version of JavaScript engine as work-round for BSF-22   
2013/10/23 15:34:08 INFO  - jmeter.protocol.http.sampler.HTTPSamplerBase: Cannot find .className property for htmlParser, using default   
2013/10/23 15:34:08 INFO  - jmeter.protocol.http.sampler.HTTPSamplerBase: Parser for text/html is    
2013/10/23 15:34:08 INFO  - jmeter.protocol.http.sampler.HTTPSamplerBase: Parser for application/xhtml+xml is    
2013/10/23 15:34:08 INFO  - jmeter.protocol.http.sampler.HTTPSamplerBase: Parser for application/xml is    
2013/10/23 15:34:08 INFO  - jmeter.protocol.http.sampler.HTTPSamplerBase: Parser for text/xml is    
2013/10/23 15:34:08 INFO  - jmeter.protocol.http.sampler.HTTPSamplerBase: Parser for text/vnd.wap.wml is org.apache.jmeter.protocol.http.parser.RegexpHTMLParser   
2013/10/23 15:34:08 INFO  - jmeter.gui.util.MenuFactory: Skipping org.apache.jmeter.protocol.http.control.gui.WebServiceSamplerGui   
2013/10/23 15:34:08 INFO  - jmeter.gui.util.MenuFactory: Skipping org.apache.jmeter.protocol.http.modifier.gui.ParamModifierGui   
2013/10/23 15:34:08 INFO  - jmeter.protocol.http.proxy.ProxyControl: HTTP(S) Test Script Recorder SSL Proxy will use keys that support embedded 3rd party resources in file C:\apache-jmeter-2.10\bin\proxyserver.jks   
2013/10/23 15:34:09 INFO  - jmeter.samplers.SampleResult: Note: Sample TimeStamps are START times   
2013/10/23 15:34:09 INFO  - jmeter.samplers.SampleResult: sampleresult.default.encoding is set to ISO-8859-1   
2013/10/23 15:34:09 INFO  - jmeter.samplers.SampleResult: sampleresult.useNanoTime=true   
2013/10/23 15:34:09 INFO  - jmeter.samplers.SampleResult: sampleresult.nanoThreadSleep=5000   
2013/10/23 15:34:22 WARN  - jmeter.protocol.http.proxy.ProxyControl: Could not open/read   key store C:\apache-jmeter-2.10\bin\proxyserver.jks (The system cannot find the file specified)   
2013/10/23 15:34:22 INFO  - jmeter.protocol.http.proxy.ProxyControl: Creating Proxy CA in C:\apache-jmeter-2.10\bin\proxyserver.jks   
2013/10/23 15:34:22 ERROR - jmeter.protocol.http.proxy.ProxyControl: Could not initialise key store java.io.IOException: Cannot run program "keytool" (in directory "C:\apache-jmeter-2.10\bin"): CreateProcess error=2, The system cannot find the file specified  
    at java.lang.ProcessBuilder.start(Unknown Source)
    at org.apache.jorphan.exec.SystemCommand.run(SystemCommand.java:142)
    at org.apache.jorphan.exec.SystemCommand.run(SystemCommand.java:125)
    at org.apache.jorphan.exec.KeyToolUtils.genkeypair(KeyToolUtils.java:123)
    at org.apache.jorphan.exec.KeyToolUtils.generateProxyCA(KeyToolUtils.java:181)
    at org.apache.jmeter.protocol.http.proxy.ProxyControl.initDynamicKeyStore(ProxyControl.java:1275)
    at org.apache.jmeter.protocol.http.proxy.ProxyControl.initKeyStore(ProxyControl.java:1205)
    at org.apache.jmeter.protocol.http.proxy.ProxyControl.startProxy(ProxyControl.java:431)
    at org.apache.jmeter.protocol.http.proxy.gui.ProxyControlGui.startProxy(ProxyControlGui.java:485)
    at org.apache.jmeter.protocol.http.proxy.gui.ProxyControlGui.actionPerformed(ProxyControlGui.java:370)
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    at java.awt.Component.processMouseEvent(Unknown Source)
    at javax.swing.JComponent.processMouseEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    at java.awt.Container.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Window.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$200(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified
    at java.lang.ProcessImpl.create(Native Method)
    at java.lang.ProcessImpl.<init>(Unknown Source)
    at java.lang.ProcessImpl.start(Unknown Source)
    ... 46 more

推荐答案

自 JMeter 2.10 以来,记录已得到改进,可以更好地处理嵌入式资源和动态创建证书.这使得记录复杂的 HTTPS 网站变得更加容易.

Since JMeter 2.10, recording has been improved to better handle embedded resources and creation of certificates on the fly. This makes recording complex HTTPS websites much easier.

为了添加这些功能,JMeter 现在使用 keytool 实用程序(在 JDK 中可用),因此您需要确保配置正确,在开始之前阅读此 wiki 页面:

To add these features, JMeter now uses keytool utility (available in JDK) so you need to ensure your configuration is correct, read this wiki page before starting:

还要确保您阅读:

请注意,使用 JDK7 会好得多.(系统上要安装jdk7)

Note it is much better to use a JDK7. (jdk7 should be installed on the system)

如果你不想阅读长答案(你应该:-)),那么:确保您已正确设置 JAVA_HOME 和 PATH,以执行此操作:打开jmeter.bat并添加(在launch.exe命令后的顶部):

If you don't want to read the long answer (which you should :-) ), then: Ensure you have JAVA_HOME and PATH set correctly, to do it: Open jmeter.bat and add this (at the top after launch.exe command):

SET JAVA_HOME=JDK 路径

SET JAVA_HOME=Path to JDK

设置路径=%PATH%;%JAVA_HOME%\bin

SET PATH=%PATH%;%JAVA_HOME%\bin

重启 JMeter 并重新测试.

Restart JMeter and retest.

如果它不起作用,您可以通过在 user.properties 中定义以下 JMeter 属性来解决:

If it doesn't work, you can workaround by defining the following JMeter property in user.properties:

proxy.cert.alias=anything

proxy.cert.alias=anything

如果你想正确地学习 jmeter,这本本书 会帮助你.

If you're looking to learn jmeter correctly, this book will help you.

这篇关于Jmeter 2.10 HTTP 记录器抛出 keytool 异常的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆