JSR223 어설 션을 실행하여 예상 응답을 groovy를 사용하여 실제 응답과 비교합니다. 일치하지 않으면 어설 션이 실패합니다. 다음은 코드입니다JMeter 어설 션 결과
import groovy.json.JsonSlurper;
JsonSlurper slurper = new JsonSlurper();
boolean set_assertion = true;
def expected_response = slurper.parseText("<JSON response goes here>");
def actual_response = slurper.parseText(prev.getResponseDataAsString());
if (expected_response != actual_response)
{
set_assertion = false;
log.error("expected_response != actual_response");
assert set_assertion == true;
SampleResult.setSuccessful(false);
}
이제 어설 션이 실패합니다. 하지만 로그에 내부 오류가 발생하여 실패했다고 생각합니다. 내 주장 결과입니다. Assertion Results 다음은 로그
ERROR - jmeter.threads.JMeterThread: Error processing Assertion Assertion failed:
assert set_assertion == true
| |
false false
at org.codehaus.groovy.runtime.InvokerHelper.assertFailed(InvokerHelper.java:402)
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.assertFailed(ScriptBytecodeAdapter.java:650)
at Script48.run(Script48.groovy:16)
at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:352)
at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:153)
at javax.script.AbstractScriptEngine.eval(Unknown Source)
at org.apache.jmeter.util.JSR223TestElement.processFileOrScript(JSR223TestElement.java:206)
at org.apache.jmeter.assertions.JSR223Assertion.getResult(JSR223Assertion.java:47)
at org.apache.jmeter.threads.JMeterThread.processAssertion(JMeterThread.java:755)
at org.apache.jmeter.threads.JMeterThread.checkAssertions(JMeterThread.java:746)
at org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:490)
at org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:410)
at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:241)
at java.lang.Thread.run(Unknown Source)
이상적으로 오류가 없어야하고, 내 주장은 실패하고 다음과 같은 결과가 있어야 '어설 션 오류 : 거짓'과 '진실 어설 션 실패'.
내가 실수를하는 곳을 이해하도록 도와주세요. 가장 큰 걱정은 로그의 오류입니다. 고맙습니다!
어설 션을 원하지만 오류가 발생하지 않았습니까? 내가 이해한다고 생각하지 마라. 단언 라인을하지 말아라. –
@tim_yates 에러를 잡아서는 안된다? Response Assertion이 실패했지만 오류가 발생하지 않습니다. – Dummy