【发布时间】:2018-01-17 08:12:26
【问题描述】:
我正在运行 JMeter 非 GUI 模式并生成仪表板,它正在工作,
下一步我想为每个采样器添加 UUID,以便更容易在日志中找到我的请求
所以采样器名称是:登录 ${uuid} , operation1 ${uuid},... 而之前设置的uuid变量。
在 GUI 模式下,它有助于更快、更轻松地发现问题。
当我执行非 GUI 模式时,它在 java.lang.OutOfMemoryError: GC overhead limit exceeded. 上失败了
基本上(我做了一个较短的测试)它会分别为每个登录(和操作)创建一个报告,如
Login f9b9c9e9-15ac-4b96-a454-20d8fc7d8844 1 0 0.00% 622.00 622 622 622.00 622.00 622.00 1.61 0.60 0.90
Login f67871f5-f447-4125-85e7-981592d9bff2 ...
如何将所有登录/特定操作聚合到一个结果中,并通过仪表板执行在非 GUI 中防止此类异常?
日志中的异常:
2018-01-17 09:06:17,302 ERROR o.a.j.JMeter: Uncaught exception:
java.lang.OutOfMemoryError: GC overhead limit exceeded
at org.apache.jmeter.report.processor.graph.AbstractGraphConsumer.addKeyData(AbstractGraphConsumer.java:352) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.report.processor.graph.AbstractGraphConsumer.stopConsuming(AbstractGraphConsumer.java:563) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.report.processor.AbstractSampleConsumer.stopProducing(AbstractSampleConsumer.java:241) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.report.processor.FilterConsumer.stopConsuming(FilterConsumer.java:112) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.report.processor.AbstractSampleConsumer.stopProducing(AbstractSampleConsumer.java:241) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.report.processor.FilterConsumer.stopConsuming(FilterConsumer.java:112) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.report.processor.AbstractSampleConsumer.stopProducing(AbstractSampleConsumer.java:241) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.report.processor.NormalizerSampleConsumer.stopConsuming(NormalizerSampleConsumer.java:125) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.report.processor.CsvFileSampleSource$PrivateProducer.stopProducing(CsvFileSampleSource.java:339) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.report.processor.CsvFileSampleSource.produce(CsvFileSampleSource.java:185) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.report.processor.CsvFileSampleSource.run(CsvFileSampleSource.java:238) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.report.dashboard.ReportGenerator.generate(ReportGenerator.java:244) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.JMeter$ListenToTest.generateReport(JMeter.java:1198) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.JMeter$ListenToTest.testEnded(JMeter.java:1134) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.engine.StandardJMeterEngine.notifyTestListenersOfEnd(StandardJMeterEngine.java:230) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.engine.StandardJMeterEngine.run(StandardJMeterEngine.java:498) ~[ApacheJMeter_core.jar:3.3 r1808647]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_05]
编辑:
尝试为每个请求添加控制器并添加到 user.properties:
jmeter.reportgenerator.exporter.html.series_filter=^(Login|Operation1|Operation2)(-success|-failure)?$
我在所有带有 UUID 的事务上插入父级,并以操作的名称调用事务控制器,作为登录:
仍在仪表板中(小型执行),操作不被视为一个组。
现在得到不同的错误,但仍然是 OutOfMemoryError:
2018-01-17 13:25:07,766 ERROR o.a.j.JMeter: Uncaught exception:
java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Arrays.java:3175) ~[?:1.8.0_05]
at java.util.ArrayList.grow(ArrayList.java:246) ~[?:1.8.0_05]
at java.util.ArrayList.ensureExplicitCapacity(ArrayList.java:220) ~[?:1.8.0_05]
at java.util.ArrayList.ensureCapacityInternal(ArrayList.java:212) ~[?:1.8.0_05]
at java.util.ArrayList.add(ArrayList.java:443) ~[?:1.8.0_05]
at org.apache.jmeter.report.processor.ListResultData.addResult(ListResultData.java:54) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.report.processor.graph.AbstractGraphConsumer.addKeyData(AbstractGraphConsumer.java:353) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.report.processor.graph.AbstractGraphConsumer.stopConsuming(AbstractGraphConsumer.java:563) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.report.processor.AbstractSampleConsumer.stopProducing(AbstractSampleConsumer.java:241) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.report.processor.FilterConsumer.stopConsuming(FilterConsumer.java:112) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.report.processor.AbstractSampleConsumer.stopProducing(AbstractSampleConsumer.java:241) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.report.processor.FilterConsumer.stopConsuming(FilterConsumer.java:112) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.report.processor.AbstractSampleConsumer.stopProducing(AbstractSampleConsumer.java:241) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.report.processor.NormalizerSampleConsumer.stopConsuming(NormalizerSampleConsumer.java:125) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.report.processor.CsvFileSampleSource$PrivateProducer.stopProducing(CsvFileSampleSource.java:339) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.report.processor.CsvFileSampleSource.produce(CsvFileSampleSource.java:185) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.report.processor.CsvFileSampleSource.run(CsvFileSampleSource.java:238) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.report.dashboard.ReportGenerator.generate(ReportGenerator.java:244) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.JMeter$ListenToTest.generateReport(JMeter.java:1198) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.JMeter$ListenToTest.testEnded(JMeter.java:1134) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.engine.StandardJMeterEngine.notifyTestListenersOfEnd(StandardJMeterEngine.java:230) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.engine.StandardJMeterEngine.run(StandardJMeterEngine.java:498) ~[ApacheJMeter_core.jar:3.3 r1808647]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_05]
【问题讨论】:
-
OOM什么时候发生?你有一些可用的堆转储吗?分享它进行分析会很有趣
-
附加日志。有用吗?
标签: jmeter