Error when running Jmeter + RTE protocol script

263 views
Skip to first unread message

sts...@gmail.com

unread,
Jun 19, 2019, 3:41:23 PM6/19/19
to jmeter-plugins

We are currently working on creating scripts for IBM mainframe application using Jmeter and bzm-RTE Plugin. We are able to connect to mainframe terminal and then navigate to TPX home page. But the issue is that the next RTE sampler for Login is not working and throwing the below exception error. It is also not showing any response in the view results tree listener and not navigating to the next page after login.


Input for Login:

(20, 20): userid

(21, 20): password


Error captured in Log:

019-06-11 14:35:15,698 ERROR o.a.j.t.JMeterThread: Error while processing sampler: ‘Login To region – RTE Sampler’.
java.lang.NullPointerException: null
at com.bytezone.dm3270.TerminalClient.getScreenText(TerminalClient.java:199) ~[dm3270-lib-0.7.jar:?]
at com.blazemeter.jmeter.rte.protocols.tn3270.Tn3270Client.getScreen(Tn3270Client.java:209) ~[jmeter-bzm-rte-1.1.1.jar:?]
at com.blazemeter.jmeter.rte.sampler.RTESampler.sample(RTESampler.java:460) ~[jmeter-bzm-rte-1.1.1.jar:?]
at org.apache.jmeter.threads.JMeterThread.doSampling(JMeterThread.java:622) ~[ApacheJMeter_core.jar:5.0 r1840935]
at org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:546) ~[ApacheJMeter_core.jar:5.0 r1840935]
at org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:486) [ApacheJMeter_core.jar:5.0 r1840935]
at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:253) [ApacheJMeter_core.jar:5.0 r1840935]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_211]


Please let me know suggestion on this. Thanks.

Roger Abelenda

unread,
Jun 19, 2019, 4:00:05 PM6/19/19
to jmeter-...@googlegroups.com
The real reason is being hidden, but it seems the real reason is a timeout due to potentially incorrect wait condition (because it is timing out as far as we see on the stack trace) in sampler, and a bug in handling of TN3270 alternate screen dimensions, we will work to fix the later one. Can you try changing the default wait condition in your sampler? Try for example using a wait for silent (wait for text, due to existing bug on alternate screen dimensions, should manifest in similar NPE error) in the sampler with a proper period.

Regards

--
You received this message because you are subscribed to the Google Groups "jmeter-plugins" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jmeter-plugin...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jmeter-plugins/39663d8d-30ce-4a9a-a819-5229fc03fda6%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

sts...@gmail.com

unread,
Jul 8, 2019, 4:59:30 PM7/8/19
to jmeter-plugins
Thanks a lot Roger for your response. I have tried different "Wait for" options and still facing the same issue. Please find below the response for each of those options and let me know if there is any ETA for the bug fix.

Option 1 - Wait for Cursor?
Response:
2019-07-08 16:58:13,180 ERROR o.a.j.JMeter: Uncaught exception: 
java.lang.NullPointerException: null
at com.bytezone.dm3270.display.Screen.setCurrentScreen(Screen.java:94) ~[dm3270-lib-0.7.jar:?]
at com.bytezone.dm3270.commands.WriteCommand.process(WriteCommand.java:58) ~[dm3270-lib-0.7.jar:?]
at com.bytezone.dm3270.extended.TN3270ExtendedCommand.process(TN3270ExtendedCommand.java:43) ~[dm3270-lib-0.7.jar:?]
at com.bytezone.dm3270.streams.TelnetListener.processMessage(TelnetListener.java:176) ~[dm3270-lib-0.7.jar:?]
at com.bytezone.dm3270.streams.TelnetListener.addDataRecord(TelnetListener.java:171) ~[dm3270-lib-0.7.jar:?]
at com.bytezone.dm3270.streams.TelnetListener.processRecord(TelnetListener.java:105) ~[dm3270-lib-0.7.jar:?]
at com.bytezone.dm3270.telnet.TelnetProcessor.listen(TelnetProcessor.java:62) ~[dm3270-lib-0.7.jar:?]
at com.bytezone.dm3270.streams.TelnetListener.listen(TelnetListener.java:56) ~[dm3270-lib-0.7.jar:?]
at com.bytezone.dm3270.streams.TerminalServer.run(TerminalServer.java:71) ~[dm3270-lib-0.7.jar:?]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_211]
2019-07-08 16:58:13,243 DEBUG o.a.j.v.ViewResultsFullVisualizer: Expanded: [[Root]]
2019-07-08 16:58:13,243 DEBUG o.a.j.v.ViewResultsFullVisualizer: Elements: [Root]
2019-07-08 16:58:23,143 DEBUG c.b.j.r.s.RTESampler: Thread Group 1-1 - Inputs:
(20, 20): GB2TSTE
(21, 20): PASS0619
2019-07-08 16:58:23,143 DEBUG c.b.j.r.s.RTESampler: Thread Group 1-1 - AttentionKey sent: ENTER
2019-07-08 16:58:23,143 DEBUG c.b.j.r.s.RTESampler: Thread Group 1-1 - Request Headers: Server: mainframei
Port: 23
Protocol: TN3270
Terminal-type: IBM-3278-M4-E: 43x80
Security: NONE
Action: SEND_INPUT
Input-inhibited: false

2019-07-08 16:58:23,143 DEBUG c.b.j.r.s.RTESampler: Thread Group 1-1 - Response Headers: 
2019-07-08 16:58:23,143 DEBUG c.b.j.r.s.RTESampler: Thread Group 1-1 - Response Screen: 
2019-07-08 16:58:23,143 ERROR o.a.j.t.JMeterThread: Error while processing sampler: 'Login To region - RTE Sampler'.
java.lang.NullPointerException: null
2019-07-08 16:58:23,144 DEBUG o.a.j.c.GenericController: Calling next on: class org.apache.jmeter.control.GenericController
2019-07-08 16:58:23,144 DEBUG c.b.j.r.s.RTESampler: Thread Group 1-1 - Inputs:
(9, 4): S
2019-07-08 16:58:23,144 DEBUG c.b.j.r.s.RTESampler: Thread Group 1-1 - AttentionKey sent: ENTER
2019-07-08 16:58:23,144 DEBUG c.b.j.r.s.RTESampler: Thread Group 1-1 - Request Headers: Server: mainframei
Port: 23
Protocol: TN3270
Terminal-type: IBM-3278-M4-E: 43x80
Security: NONE
Action: SEND_INPUT
Input-inhibited: true


Option 2 - Wait for Silent? Interval - 1000 and Timeout - 20000
Response:
019-07-08 16:57:13,483 ERROR o.a.j.JMeter: Uncaught exception: 
java.lang.NullPointerException: null
at com.bytezone.dm3270.display.Screen.setCurrentScreen(Screen.java:94) ~[dm3270-lib-0.7.jar:?]
at com.bytezone.dm3270.commands.WriteCommand.process(WriteCommand.java:58) ~[dm3270-lib-0.7.jar:?]
at com.bytezone.dm3270.extended.TN3270ExtendedCommand.process(TN3270ExtendedCommand.java:43) ~[dm3270-lib-0.7.jar:?]
at com.bytezone.dm3270.streams.TelnetListener.processMessage(TelnetListener.java:176) ~[dm3270-lib-0.7.jar:?]
at com.bytezone.dm3270.streams.TelnetListener.addDataRecord(TelnetListener.java:171) ~[dm3270-lib-0.7.jar:?]
at com.bytezone.dm3270.streams.TelnetListener.processRecord(TelnetListener.java:105) ~[dm3270-lib-0.7.jar:?]
at com.bytezone.dm3270.telnet.TelnetProcessor.listen(TelnetProcessor.java:62) ~[dm3270-lib-0.7.jar:?]
at com.bytezone.dm3270.streams.TelnetListener.listen(TelnetListener.java:56) ~[dm3270-lib-0.7.jar:?]
at com.bytezone.dm3270.streams.TerminalServer.run(TerminalServer.java:71) ~[dm3270-lib-0.7.jar:?]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_211]
2019-07-08 16:57:13,654 DEBUG o.a.j.v.ViewResultsFullVisualizer: Expanded: [[Root]]
2019-07-08 16:57:13,654 DEBUG o.a.j.v.ViewResultsFullVisualizer: Elements: [Root]
2019-07-08 16:57:14,483 DEBUG c.b.j.r.s.RTESampler: Thread Group 1-1 - Inputs:
(20, 20): GB2TSTE
(21, 20): PASS0619
2019-07-08 16:57:14,483 DEBUG c.b.j.r.s.RTESampler: Thread Group 1-1 - AttentionKey sent: ENTER
2019-07-08 16:57:14,483 DEBUG c.b.j.r.s.RTESampler: Thread Group 1-1 - Request Headers: Server: mainframei
Port: 23
Protocol: TN3270
Terminal-type: IBM-3278-M4-E: 43x80
Security: NONE
Action: SEND_INPUT
Input-inhibited: false

2019-07-08 16:57:14,483 DEBUG c.b.j.r.s.RTESampler: Thread Group 1-1 - Response Headers: 
2019-07-08 16:57:14,483 DEBUG c.b.j.r.s.RTESampler: Thread Group 1-1 - Response Screen: 
2019-07-08 16:57:14,484 ERROR c.b.j.r.s.RTESampler: Error while sampling the remote terminal
java.lang.NullPointerException: null
at com.bytezone.dm3270.TerminalClient.getCursorPosition(TerminalClient.java:289) ~[dm3270-lib-0.7.jar:?]
at com.blazemeter.jmeter.rte.protocols.tn3270.Tn3270Client.getCursorPosition(Tn3270Client.java:225) ~[jmeter-bzm-rte-1.1.1.jar:?]
at com.blazemeter.jmeter.rte.sampler.RTESampler.buildResponseHeaders(RTESampler.java:561) [jmeter-bzm-rte-1.1.1.jar:?]
at com.blazemeter.jmeter.rte.sampler.RTESampler.sample(RTESampler.java:438) [jmeter-bzm-rte-1.1.1.jar:?]
at org.apache.jmeter.threads.JMeterThread.doSampling(JMeterThread.java:622) [ApacheJMeter_core.jar:5.0 r1840935]
at org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:546) [ApacheJMeter_core.jar:5.0 r1840935]
at org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:486) [ApacheJMeter_core.jar:5.0 r1840935]
at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:253) [ApacheJMeter_core.jar:5.0 r1840935]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_211]
2019-07-08 16:57:14,485 DEBUG o.a.j.c.GenericController: Calling next on: class org.apache.jmeter.control.GenericController
2019-07-08 16:57:14,485 DEBUG c.b.j.r.s.RTESampler: Thread Group 1-1 - Inputs:
(9, 4): S
2019-07-08 16:57:14,485 DEBUG c.b.j.r.s.RTESampler: Thread Group 1-1 - AttentionKey sent: ENTER
2019-07-08 16:57:14,485 DEBUG c.b.j.r.s.RTESampler: Thread Group 1-1 - Request Headers: Server: mainframei
Port: 23
Protocol: TN3270
Terminal-type: IBM-3278-M4-E: 43x80
Security: NONE
Action: SEND_INPUT
Input-inhibited: true

Option 3 - Wait for Silent with Text?
Response:
2019-07-08 16:48:11,455 ERROR o.a.j.JMeter: Uncaught exception: 
java.lang.NullPointerException: null
at com.bytezone.dm3270.display.Screen.setCurrentScreen(Screen.java:94) ~[dm3270-lib-0.7.jar:?]
at com.bytezone.dm3270.commands.WriteCommand.process(WriteCommand.java:58) ~[dm3270-lib-0.7.jar:?]
at com.bytezone.dm3270.extended.TN3270ExtendedCommand.process(TN3270ExtendedCommand.java:43) ~[dm3270-lib-0.7.jar:?]
at com.bytezone.dm3270.streams.TelnetListener.processMessage(TelnetListener.java:176) ~[dm3270-lib-0.7.jar:?]
at com.bytezone.dm3270.streams.TelnetListener.addDataRecord(TelnetListener.java:171) ~[dm3270-lib-0.7.jar:?]
at com.bytezone.dm3270.streams.TelnetListener.processRecord(TelnetListener.java:105) ~[dm3270-lib-0.7.jar:?]
at com.bytezone.dm3270.telnet.TelnetProcessor.listen(TelnetProcessor.java:62) ~[dm3270-lib-0.7.jar:?]
at com.bytezone.dm3270.streams.TelnetListener.listen(TelnetListener.java:56) ~[dm3270-lib-0.7.jar:?]
at com.bytezone.dm3270.streams.TerminalServer.run(TerminalServer.java:71) ~[dm3270-lib-0.7.jar:?]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_211]
2019-07-08 16:48:11,720 DEBUG o.a.j.v.ViewResultsFullVisualizer: Expanded: [[Root]]
2019-07-08 16:48:11,720 DEBUG o.a.j.v.ViewResultsFullVisualizer: Elements: [Root]
2019-07-08 16:48:42,453 DEBUG c.b.j.r.s.RTESampler: Thread Group 1-1 - Inputs:
(20, 20): GB2TSTE
(21, 20): PASS0619
2019-07-08 16:48:42,453 DEBUG c.b.j.r.s.RTESampler: Thread Group 1-1 - AttentionKey sent: ENTER
2019-07-08 16:48:42,453 DEBUG c.b.j.r.s.RTESampler: Thread Group 1-1 - Request Headers: Server: mainframei
Port: 23
Protocol: TN3270
Terminal-type: IBM-3278-M4-E: 43x80
Security: NONE
Action: SEND_INPUT
Input-inhibited: false

2019-07-08 16:48:42,453 DEBUG c.b.j.r.s.RTESampler: Thread Group 1-1 - Response Headers: 
2019-07-08 16:48:42,453 DEBUG c.b.j.r.s.RTESampler: Thread Group 1-1 - Response Screen: 
2019-07-08 16:48:42,453 ERROR o.a.j.t.JMeterThread: Error while processing sampler: 'Login To region - RTE Sampler'.
java.lang.NullPointerException: null
2019-07-08 16:48:42,454 DEBUG o.a.j.c.GenericController: Calling next on: class org.apache.jmeter.control.GenericController
2019-07-08 16:48:42,454 DEBUG c.b.j.r.s.RTESampler: Thread Group 1-1 - Inputs:
(9, 4): S
2019-07-08 16:48:42,454 DEBUG c.b.j.r.s.RTESampler: Thread Group 1-1 - AttentionKey sent: ENTER
2019-07-08 16:48:42,454 DEBUG c.b.j.r.s.RTESampler: Thread Group 1-1 - Request Headers: Server: mainframei
Port: 23
Protocol: TN3270
Terminal-type: IBM-3278-M4-E: 43x80
Security: NONE
Action: SEND_INPUT
Input-inhibited: true

Regards,
Supratim
Regards

To unsubscribe from this group and stop receiving emails from it, send an email to jmeter-...@googlegroups.com.

Roger Abelenda

unread,
Jul 8, 2019, 8:59:40 PM7/8/19
to jmeter-...@googlegroups.com
Thank you for trying that out and for the additional information!

We will fix the bug in an upcoming release (really soon), I will notify you when the release is out with the fix.

Regards

To unsubscribe from this group and stop receiving emails from it, send an email to jmeter-plugin...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jmeter-plugins/8e8cd0ab-5fb3-4ce1-a10a-f4db5aa821a5%40googlegroups.com.

Roger Abelenda

unread,
Jul 18, 2019, 11:14:25 AM7/18/19
to jmeter-...@googlegroups.com
Hello,

We have released a new version of the plugin, can you try it and let us know if it solves your problem?

Regards

On Jul 8, 2019, at 17:59, sts...@gmail.com wrote:

To unsubscribe from this group and stop receiving emails from it, send an email to jmeter-plugin...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jmeter-plugins/8e8cd0ab-5fb3-4ce1-a10a-f4db5aa821a5%40googlegroups.com.

venkat...@gmail.com

unread,
Apr 7, 2020, 6:23:05 AM4/7/20
to jmeter-plugins
Hi Roger,

I'm using new version of the RTE plugin (2.3 v) I still get the same issue as explained in this thread group. Any help you can provide please ? 
Regards

Joaquín Araujo

unread,
May 19, 2020, 1:39:45 PM5/19/20
to jmeter-plugins
Hi Venkat,

I would like to help you solve this issue. Could you provide the new log stack trace? The one using RTE version 2.3. 
As I have seen from your previous log errors you were using RTEPlugin v1.1.1 and the dm3270 library v0.7. 
Make sure to upgrade to RTEPlugin version 2.3 and verify that on JMeter_Home/lib/ you just have one dm3270 jar file.

Having the new log error using a newer version of the plugin could not be enough information. 
If the issue is not easily detectable by a stack trace, we will need a little bit of information. 

In order to provide more information, you can use an open-source emulator called x3270 to run the flow you intend. Here you can find the x3270 emulator and its installation guide. (If you are using macOS you can install it via brew)
Before running your flow with the emulator, select the option Trace data and Events which is on the File options.

Screen Shot 2020-05-19 at 14.32.11.png


Then a destination path needs to be placed, as well as the name of the output file. Could be something like this: 

Screen Shot 2020-05-19 at 14.36.11.png

Please let me know how it goes, I will be looking forward to your response.

Bets regards,

Joaquin.
Reply all
Reply to author
Forward
0 new messages