JMeter(Apache JMeter)是一个开源的负载测试工具,用于分析和测量各种服务的性能。在进行大规模负载测试时,JMeter的仪表板可能会显示每个线程的请求-图形包含上千行,这会使得数据难以阅读和分析。
JMeter的仪表板(Dashboard)是一个可视化的界面,用于展示测试结果的汇总信息。它包括了各种图表和表格,用于分析系统的性能指标。
当测试规模较大时,每个线程的请求数据量会非常大,导致仪表板上的表格和图表包含大量数据行,这不仅影响视觉效果,还可能导致性能问题。
以下是一个简单的示例,展示如何在JMeter中设置采样间隔和数据过滤:
<jmeterTestPlan version="1.2" properties="5.0" jmeter="5.4.1">
<hashTree>
<TestPlan enabled="true">
<stringProp name="TestPlan.comments"></stringProp>
<boolProp name="TestPlan.functional_mode">false</boolProp>
<boolProp name="TestPlan.tearDown_on_shutdown">true</boolProp>
<boolProp name="TestPlan.serialize_threadgroups">false</boolProp>
<elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="TestPlan.user_define_classpath"></stringProp>
</TestPlan>
<hashTree>
<ThreadGroup enabled="true">
<stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
<elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
<boolProp name="LoopController.continue_forever">false</boolProp>
<stringProp name="LoopController.loops">1</stringProp>
</elementProp>
<stringProp name="ThreadGroup.num_threads">10</stringProp>
<stringProp name="ThreadGroup.ramp_time">1</stringProp>
<boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp>
<boolProp name="ThreadGroup.stop_thread_on_error">false</boolProp>
<boolProp name="ThreadGroup.use_content_encoding">false</boolProp>
<stringProp name="ThreadGroup.duration"></stringProp>
<stringProp name="ThreadGroup.delay"></stringProp>
<boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp>
<boolProp name="ThreadGroup.stop_thread_on_error">false</boolProp>
<elementProp name="ThreadGroup.sub_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
<boolProp name="LoopController.continue_forever">false</boolProp>
<stringProp name="LoopController.loops">-1</stringProp>
</elementProp>
<elementProp name="ThreadGroup.timer" elementType="ConstantTimer" guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="Constant Timer" enabled="true">
<stringProp name="ConstantTimer.delay">1000</stringProp>
</elementProp>
<elementProp name="ThreadGroup.sampler" elementType="HTTPSamplerProxy" guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain">example.com</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<stringProp name="HTTPSampler.path">/api/data</stringProp>
<stringProp name="HTTPSampler.protocol">http</stringProp>
</elementProp>
<elementProp name="ThreadGroup.result_collector" elementType="ViewResultsFullVisualizer" guiclass="ViewResultsFullVisualizerGui" testclass="ViewResultsFullVisualizer" testname="View Results Tree" enabled="true">
<boolProp name="ViewResultsFullVisualizer.save_config">false</boolProp>
</elementProp>
<elementProp name="ThreadGroup.post_processor" elementType="RegexExtractor" guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regex Extractor" enabled="true">
<stringProp name="RegexExtractor.regex">key=(\w+)</stringProp>
<stringProp name="RegexExtractor.template">$1$</stringProp>
<stringProp name="RegexExtractor.match_number">1</stringProp>
</elementProp>
</ThreadGroup>
</hashTree>
</hashTree>
</jmeterTestPlan>
通过上述方法,可以有效减少JMeter仪表板显示的数据行数,提高测试结果的可读性和分析效率。
领取专属 10元无门槛券
手把手带您无忧上云