2

I have been trying to record my web application actions using the http recording controller in jmeter. I have added a recording controller, a test script recorder with proxy settings set. Certificate has been imported and installed. Also setup the proxy in the browser preferences for Chrome. But when I try to start and record the actions, none of them are being recorded in the recording controller. Am I missing something here?

Here are my settings:

Test Script Recorder - port 8989
OS Proxy settings - localhost, 8989
have installed the crt file generated on starting on Chrome under Trusted Root Certification Authorities

and the log generated when I started the recording:

2021-07-19 14:59:58,152 WARN o.a.j.p.h.p.ProxyControl: Could not open/read key store E:\Setup\apache-jmeter-5.4.1\bin\proxyserver.jks (The system cannot find the file specified), a new one will be created, ensure you install it in browser
java.io.FileNotFoundException: E:\Setup\apache-jmeter-5.4.1\bin\proxyserver.jks (The system cannot find the file specified)
    at java.io.FileInputStream.open0(Native Method) ~[?:1.8.0_271]
    at java.io.FileInputStream.open(Unknown Source) ~[?:1.8.0_271]
    at java.io.FileInputStream.<init>(Unknown Source) ~[?:1.8.0_271]
    at org.apache.jmeter.protocol.http.proxy.ProxyControl.getKeyStore(ProxyControl.java:1651) ~[ApacheJMeter_http.jar:5.4.1]
    at org.apache.jmeter.protocol.http.proxy.ProxyControl.initDynamicKeyStore(ProxyControl.java:1529) [ApacheJMeter_http.jar:5.4.1]
    at org.apache.jmeter.protocol.http.proxy.ProxyControl.initKeyStore(ProxyControl.java:1480) [ApacheJMeter_http.jar:5.4.1]
    at org.apache.jmeter.protocol.http.proxy.ProxyControl.startProxy(ProxyControl.java:523) [ApacheJMeter_http.jar:5.4.1]
    at org.apache.jmeter.protocol.http.proxy.gui.ProxyControlGui.startProxy(ProxyControlGui.java:623) [ApacheJMeter_http.jar:5.4.1]
    at org.apache.jmeter.protocol.http.proxy.gui.ProxyControlGui.actionPerformed(ProxyControlGui.java:463) [ApacheJMeter_http.jar:5.4.1]
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) [?:1.8.0_271]
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) [?:1.8.0_271]
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) [?:1.8.0_271]
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source) [?:1.8.0_271]
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) [?:1.8.0_271]
    at com.github.weisj.darklaf.ui.button.DarkButtonListener.mouseReleased(DarkButtonListener.java:72) [darklaf-core-2.5.4.jar:2.5.4]
    at java.awt.Component.processMouseEvent(Unknown Source) [?:1.8.0_271]
    at javax.swing.JComponent.processMouseEvent(Unknown Source) [?:1.8.0_271]
    at java.awt.Component.processEvent(Unknown Source) [?:1.8.0_271]
    at java.awt.Container.processEvent(Unknown Source) [?:1.8.0_271]
    at java.awt.Component.dispatchEventImpl(Unknown Source) [?:1.8.0_271]
    at java.awt.Container.dispatchEventImpl(Unknown Source) [?:1.8.0_271]
    at java.awt.Component.dispatchEvent(Unknown Source) [?:1.8.0_271]
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) [?:1.8.0_271]
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) [?:1.8.0_271]
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) [?:1.8.0_271]
    at java.awt.Container.dispatchEventImpl(Unknown Source) [?:1.8.0_271]
    at java.awt.Window.dispatchEventImpl(Unknown Source) [?:1.8.0_271]
    at java.awt.Component.dispatchEvent(Unknown Source) [?:1.8.0_271]
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source) [?:1.8.0_271]
    at java.awt.EventQueue.access$500(Unknown Source) [?:1.8.0_271]
    at java.awt.EventQueue$3.run(Unknown Source) [?:1.8.0_271]
    at java.awt.EventQueue$3.run(Unknown Source) [?:1.8.0_271]
    at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_271]
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) [?:1.8.0_271]
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) [?:1.8.0_271]
    at java.awt.EventQueue$4.run(Unknown Source) [?:1.8.0_271]
    at java.awt.EventQueue$4.run(Unknown Source) [?:1.8.0_271]
    at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_271]
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) [?:1.8.0_271]
    at java.awt.EventQueue.dispatchEvent(Unknown Source) [?:1.8.0_271]
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) [?:1.8.0_271]
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) [?:1.8.0_271]
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) [?:1.8.0_271]
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source) [?:1.8.0_271]
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source) [?:1.8.0_271]
    at java.awt.EventDispatchThread.run(Unknown Source) [?:1.8.0_271]
2021-07-19 14:59:58,153 INFO o.a.j.p.h.p.ProxyControl: Creating HTTP(S) Test Script Recorder Root CA in E:\Setup\apache-jmeter-5.4.1\bin\proxyserver.jks, ensure you install certificate in your Browser for recording
2021-07-19 15:00:13,492 INFO o.a.j.p.h.p.ProxyControl: Created keystore in E:\Setup\apache-jmeter-5.4.1\bin\proxyserver.jks
2021-07-19 15:00:13,494 INFO o.a.j.p.h.p.Daemon: Creating Daemon Socket on port: 8989
2021-07-19 15:00:13,498 INFO o.a.j.p.h.p.Daemon: Test Script Recorder up and running!
2021-07-19 15:04:21,538 INFO o.a.j.p.h.p.Daemon: HTTP(S) Test Script Recorder stopped

2 Answers 2

0

If you use Firefox browser for your recording, you can get it working via an edit to about:config .
You can Google it, depending on the error you see.

It might be this one:

security.enterpise_roots.enabled = true

Or you could try:

Set security.tls.version.fallback-limit and security.tls.version.max to 3.

After that config change, your JMeter Recorder will probably work again.

0

It's impossible to say what's wrong without seeing:

  1. Your HTTP(S) Test Script Recorder configuration along with the screenshot of the test plan
  2. Your operating system proxy configuration (Chrome browser derives OS proxy setup)
  3. JMeter.log file

So the only piece of advice I can give you is to use Recording Template feature, it's available from File -> Templates -> Recording entry of JMeter's main menu, it should generate a good setup which saves captured HTTP requests under the Recording Controller

You might find JMeter Chrome Extension easier to use, in this case you won't have to worry about proxies and certificates.

4
  • Right. Edited my question with details. Thanks.
    – Pratima
    Jul 19, 2021 at 12:01
  • I don't know what certificate you have "imported and installed", you log says that proxyserver.jks file is not there, the same applies to the certificates, you need to re-install the certificate after starting the proxy server. See Recording HTTPS Traffic with JMeter's Proxy Server article for more details if needed
    – Dmitri T
    Jul 19, 2021 at 12:05
  • There is a .crt file generated every time I start the recording. I import that from the Jmeter bin folder(after removing the traces from Chrome every time). I have re installed the certificate repeatedly but there is no change in the result. The same error log appears.
    – Pratima
    Jul 19, 2021 at 12:15
  • Do you have write access to E:\Setup\apache-jmeter-5.4.1\bin` folder? The certificate is valid for 7 days and it should be there for subsequent executions. If no proxyserver.jks` is being generated - you won't be able to record secure traffic. Try increasing JMeter logging verbosity for the proxy server by adding the next line to log4j2.xml file: <Logger name="org.apache.jmeter.protocol.http.proxy" level="debug" /> and then look at jmeter.log file
    – Dmitri T
    Jul 19, 2021 at 12:34

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.