我正在通过JMeter(模拟POS)测试交易ISO8583,并且我要发送购买(mti = 200),然后我必须发送其确认书(mti = 202)。当我发送202消息时,TCP服务器没有响应任何数据。
所以我通过JMeter生成了一个测试套件,每个请求都是一个TCP采样器。
我可以执行已购买的TCP采样器,而不会出现问题。但是,当我发送带有确认的采样器时,TCP采样器希望有一个响应,但服务器不会发送该响应,因此我的JMeter Test Suite中出现错误。
TCPClient类名称必须为 LengthPrefixedBinaryTCPClientImpl 。如果没有,它将无法正常工作。
这是购买的TCP采样器:
这是具有确认信息的TCP采样器:
这是结果树:
JMeter日志中出现以下错误:
2019-03-29 15:35:00,549 ERROR o.a.j.p.t.s.TCPSampler:
org.apache.jmeter.protocol.tcp.sampler.ReadException:
at org.apache.jmeter.protocol.tcp.sampler.LengthPrefixedBinaryTCPClientImpl.read(LengthPrefixedBinaryTCPClientImpl.java:108) ~[ApacheJMeter_tcp.jar:4.0 r1823414]
at org.apache.jmeter.protocol.tcp.sampler.TCPSampler.sample(TCPSampler.java:402) [ApacheJMeter_tcp.jar:4.0 r1823414]
at org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:490) [ApacheJMeter_core.jar:4.0 r1823414]
at org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:416) [ApacheJMeter_core.jar:4.0 r1823414]
at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:250) [ApacheJMeter_core.jar:4.0 r1823414]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_181]
Caused by: java.net.SocketTimeoutException: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method) ~[?:1.8.0_181]
at java.net.SocketInputStream.socketRead(SocketInputStream.java:116) ~[?:1.8.0_181]
at java.net.SocketInputStream.read(SocketInputStream.java:171) ~[?:1.8.0_181]
at java.net.SocketInputStream.read(SocketInputStream.java:141) ~[?:1.8.0_181]
at org.apache.jmeter.protocol.tcp.sampler.LengthPrefixedBinaryTCPClientImpl.read(LengthPrefixedBinaryTCPClientImpl.java:91) ~[ApacheJMeter_tcp.jar:4.0 r1823414]
... 5 more
所以我想要具有确认的TCP采样器不期望响应并且不显示错误。
有可能吗?