Jmeter 只记录第一次失败的断言到 .jtl 文件
Jmeter only logs only first failed assertion to .jtl file
编辑:Jmeter 版本:3.1 r1770033
我对 Jmeter 的以下问题感到头疼。我尝试了几种选择,包括改变断言的顺序。目前还没有结果。
功能愿望
基本上我希望.jtl 日志文件反映Jmeter Gui 模式下'assertion result' 视图的内容。
当前设置
我连接到 PostgreSQL 数据库并从 table 查询执行一个简单的 select:
select * from progress_collaboration
这给了我以下结果集:
id curr_env_id
999 1
在采样器上我设置了 3 个断言:
- 大小断言
- 响应断言(字符串包含)
- 持续时间断言
问题
到目前为止一切顺利,直到只有一个断言失败。当多个断言失败时,'assertion results' 视图向我显示以下内容:
assertionview image
但是,.jtl 日志文件(由 运行 项目从命令行创建)仅包含第一个失败的断言。
timeStamp,elapsed,label,responseCode,responseMessage,threadName,dataType,success,failureMessage,bytes,sentBytes,grpThreads,allThreads,Latency,IdleTime,Connect
1499254721391,455,Check Beheer Variable,200,OK,Thread Group 1-1,text,false,"The result was the wrong size: It was 21 bytes, but should have been equal to 170 bytes.",21,0,1,1,453,0,443
如何确保 .jtl 日志文件包含所有失败的断言?
数据
带有采样器和断言的哈希树:
<JDBCSampler guiclass="TestBeanGUI" testclass="JDBCSampler" testname="Check Beheer Variable" enabled="true">
<stringProp name="dataSource">myDatabase</stringProp>
<stringProp name="query">select * from progress_collaboration</stringProp>
<stringProp name="queryArguments"></stringProp>
<stringProp name="queryArgumentsTypes"></stringProp>
<stringProp name="queryTimeout"></stringProp>
<stringProp name="queryType">Select Statement</stringProp>
<stringProp name="resultSetHandler">Store as String</stringProp>
<stringProp name="resultVariable"></stringProp>
<stringProp name="variableNames"></stringProp>
</JDBCSampler>
<hashTree>
<SizeAssertion guiclass="SizeAssertionGui" testclass="SizeAssertion" testname="Size Assertion" enabled="true">
<stringProp name="Assertion.test_field">SizeAssertion.response_network_size</stringProp>
<stringProp name="SizeAssertion.size">170</stringProp>
<intProp name="SizeAssertion.operator">1</intProp>
</SizeAssertion>
<hashTree/>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="56601">999</stringProp>
<stringProp name="-715001365">incorrect_string</stringProp>
</collectionProp>
<stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">2</intProp>
</ResponseAssertion>
<hashTree/>
<DurationAssertion guiclass="DurationAssertionGui" testclass="DurationAssertion" testname="Duration Assertion" enabled="true">
<stringProp name="DurationAssertion.duration">1000</stringProp>
<stringProp name="Assertion.scope">all</stringProp>
</DurationAssertion>
<hashTree/>
</hashTree>
在jmeter.propertiesdefine/update属性:
jmeter.save.saveservice.assertion_results=全部
(你可能有 jmeter.save.saveservice.assertion_results=第一个定义)
此外,侦听器还应选中另存为 XML 复选框(在配置中)
编辑:Jmeter 版本:3.1 r1770033
我对 Jmeter 的以下问题感到头疼。我尝试了几种选择,包括改变断言的顺序。目前还没有结果。
功能愿望
基本上我希望.jtl 日志文件反映Jmeter Gui 模式下'assertion result' 视图的内容。
当前设置
我连接到 PostgreSQL 数据库并从 table 查询执行一个简单的 select:
select * from progress_collaboration
这给了我以下结果集:
id curr_env_id
999 1
在采样器上我设置了 3 个断言:
- 大小断言
- 响应断言(字符串包含)
- 持续时间断言
问题
到目前为止一切顺利,直到只有一个断言失败。当多个断言失败时,'assertion results' 视图向我显示以下内容:
assertionview image
但是,.jtl 日志文件(由 运行 项目从命令行创建)仅包含第一个失败的断言。
timeStamp,elapsed,label,responseCode,responseMessage,threadName,dataType,success,failureMessage,bytes,sentBytes,grpThreads,allThreads,Latency,IdleTime,Connect
1499254721391,455,Check Beheer Variable,200,OK,Thread Group 1-1,text,false,"The result was the wrong size: It was 21 bytes, but should have been equal to 170 bytes.",21,0,1,1,453,0,443
如何确保 .jtl 日志文件包含所有失败的断言?
数据
带有采样器和断言的哈希树:
<JDBCSampler guiclass="TestBeanGUI" testclass="JDBCSampler" testname="Check Beheer Variable" enabled="true">
<stringProp name="dataSource">myDatabase</stringProp>
<stringProp name="query">select * from progress_collaboration</stringProp>
<stringProp name="queryArguments"></stringProp>
<stringProp name="queryArgumentsTypes"></stringProp>
<stringProp name="queryTimeout"></stringProp>
<stringProp name="queryType">Select Statement</stringProp>
<stringProp name="resultSetHandler">Store as String</stringProp>
<stringProp name="resultVariable"></stringProp>
<stringProp name="variableNames"></stringProp>
</JDBCSampler>
<hashTree>
<SizeAssertion guiclass="SizeAssertionGui" testclass="SizeAssertion" testname="Size Assertion" enabled="true">
<stringProp name="Assertion.test_field">SizeAssertion.response_network_size</stringProp>
<stringProp name="SizeAssertion.size">170</stringProp>
<intProp name="SizeAssertion.operator">1</intProp>
</SizeAssertion>
<hashTree/>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="56601">999</stringProp>
<stringProp name="-715001365">incorrect_string</stringProp>
</collectionProp>
<stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">2</intProp>
</ResponseAssertion>
<hashTree/>
<DurationAssertion guiclass="DurationAssertionGui" testclass="DurationAssertion" testname="Duration Assertion" enabled="true">
<stringProp name="DurationAssertion.duration">1000</stringProp>
<stringProp name="Assertion.scope">all</stringProp>
</DurationAssertion>
<hashTree/>
</hashTree>
在jmeter.propertiesdefine/update属性:
jmeter.save.saveservice.assertion_results=全部
(你可能有 jmeter.save.saveservice.assertion_results=第一个定义)
此外,侦听器还应选中另存为 XML 复选框(在配置中)