jmeter 分布式压测,为何聚合报告里的样本总数少于并发数,具体如下

Object
Object
订阅者
265
文章
0
粉丝
测试交流1 304字数 453阅读1分30秒阅读模式

压力机 9 台,控制机 1 台,其中同步定时器设置的 700 并发,相当于 700*9 的总并发数,但是远程启动所有压力机完成后,样本数却少于并发数,求教是哪些问题引起的。

021-09-24 14:57:01,843 ERROR o.a.j.t.JMeterThread: Test failed!
org.apache.jorphan.util.JMeterError: Could not return sample
at org.apache.jmeter.samplers.StandardSampleSender.sampleOccurred(StandardSampleSender.java:69) ~[ApacheJMeter_core.jar:5.4.1]
at org.apache.jmeter.samplers.RemoteListenerWrapper.sampleOccurred(RemoteListenerWrapper.java:94) ~[ApacheJMeter_core.jar:5.4.1]
at org.apache.jmeter.threads.ListenerNotifier.notifyListeners(ListenerNotifier.java:58) ~[ApacheJMeter_core.jar:5.4.1]
at org.apache.jmeter.threads.JMeterThread.notifyListeners(JMeterThread.java:1024) ~[ApacheJMeter_core.jar:5.4.1]
at org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:579) ~[ApacheJMeter_core.jar:5.4.1]
at org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:489) ~[ApacheJMeter_core.jar:5.4.1]
at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:256) [ApacheJMeter_core.jar:5.4.1]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_202]
Caused by: java.rmi.ConnectException: Connection refused to host: 115.227.33.18; nested exception is:
java.net.ConnectException: Connection timed out: connect
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(Unknown Source) ~[?:1.8.0_202]
at sun.rmi.transport.tcp.TCPChannel.createConnection(Unknown Source) ~[?:1.8.0_202]
at sun.rmi.transport.tcp.TCPChannel.newConnection(Unknown Source) ~[?:1.8.0_202]
at sun.rmi.server.UnicastRef.invoke(Unknown Source) ~[?:1.8.0_202]
at java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(Unknown Source) ~[?:1.8.0_202]
at java.rmi.server.RemoteObjectInvocationHandler.invoke(Unknown Source) ~[?:1.8.0_202]
at com.sun.proxy.$Proxy20.sampleOccurred(Unknown Source) ~[?:?]
at org.apache.jmeter.samplers.StandardSampleSender.sampleOccurred(StandardSampleSender.java:66) ~[ApacheJMeter_core.jar:5.4.1]
... 7 more
Caused by: java.net.ConnectException: Connection timed out: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method) ~[?:1.8.0_202]
at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source) ~[?:1.8.0_202]
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source) ~[?:1.8.0_202]
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source) ~[?:1.8.0_202]
at java.net.AbstractPlainSocketImpl.connect(Unknown Source) ~[?:1.8.0_202]
at java.net.PlainSocketImpl.connect(Unknown Source) ~[?:1.8.0_202]
at java.net.SocksSocketImpl.connect(Unknown Source) ~[?:1.8.0_202]
at java.net.Socket.connect(Unknown Source) ~[?:1.8.0_202]
at java.net.Socket.connect(Unknown Source) ~[?:1.8.0_202]
at java.net.Socket.<init>(Unknown Source) ~[?:1.8.0_202]
at java.net.Socket.<init>(Unknown Source) ~[?:1.8.0_202]
at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(Unknown Source) ~[?:1.8.0_202]
at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(Unknown Source) ~[?:1.8.0_202]
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(Unknown Source) ~[?:1.8.0_202]
at sun.rmi.transport.tcp.TCPChannel.createConnection(Unknown Source) ~[?:1.8.0_202]
at sun.rmi.transport.tcp.TCPChannel.newConnection(Unknown Source) ~[?:1.8.0_202]
at sun.rmi.server.UnicastRef.invoke(Unknown Source) ~[?:1.8.0_202]
at java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(Unknown Source) ~[?:1.8.0_202]
at java.rmi.server.RemoteObjectInvocationHandler.invoke(Unknown Source) ~[?:1.8.0_202]
at com.sun.proxy.$Proxy20.sampleOccurred(Unknown Source) ~[?:?]
at org.apache.jmeter.samplers.StandardSampleSender.sampleOccurred(StandardSampleSender.java:66) ~[ApacheJMeter_core.jar:5.4.1]
... 7 more

软件测试中的功能测试是文章源自玩技e族-https://www.playezu.com/188680.html 文章源自玩技e族-https://www.playezu.com/188680.html

 
    • 重来看雨
      重来看雨 9

      Connection refused to host: 115.227.33.18 网络不通啊通的,但是数量上去之后跑玩的部分数据回传不回控制机:Could not return sample看下 master 的资源情况,是否 CPU、负载 或者带宽满了。
      但是远程启动所有压力机完成后,样本数却少于并发数

      样本数具体是多少,少了多少?你这里信息不完整。

      另外,同步计时器原理上是通过阻塞进程来一次性发出压力的,只能阻塞单个 jvm 里面的线程。你这里用了多个压力机,jmeter 自带的 master/slave 通讯机制,是无法保障跨压力机情况下的同步计时器线程累计数的。

      比如你脚本里同步计时器设置了 200,那实际上是每个 slave 自己分别去累积 200 个并发一起发,而不是全部 slave 一起累积 200*9 个并发一起发。具体可以参考下

      https://zhuanlan.zhihu.com/p/72945182
      https://stackoverflow.com/questions/54228259/how-to-synchronize-request-send-time-across-different-nodes-in-jmeter

    匿名

    发表评论

    匿名网友
    确定

    拖动滑块以完成验证