からUTCの日時を比較し、私はJMeterのJMeterのBeanShellのアサーションの解析とJSON
以下でJSONレスポンスから更新日時バージョンに以前の日時バージョンを比較する必要が特定の要件は、私の以前の応答がありさ:
{
"state":
{
"errorDetails":
[
]
},
"results":
[
{
"state":
{
"errorDetails":
[
]
},
"id":"someNumber1",
"version":"2017-11-23T15:25:20.154+00:00",
"referenceId":"1234"
}
]
}
と更新された応答:
{
"state":
{
"errorDetails":
[
]
},
"results":
[
{
"state":
{
"errorDetails":
[
]
},
"id":"someNumber1",
"version":"2017-11-23T15:25:22+00:00",
"referenceId":"1234"
}
]
}
そして、私はJSON抽出を経てバージョンを抽出し、BeanShellのasserti以下にそれを渡していますように:
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;
try{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
long created = sdf.parse(vars.get("noteVersion")).getTime();
long updated = sdf.parse(vars.get("updatedNoteVersion")).getTime();
if (updated > created){
SampleResult.setResponseMessage("PASSED");
}else{
SampleResult.setResponseMessage("FAIL");
}
}
catch (Exception ex){
log.warn("Error in my script", ex);
throw ex; // elsewise JMeter will "swallow" the above exception
}
私はdatetime型を解析することができませんし、以下のエラーで立ち往生しかし:
これに追加java.text.ParseException: Unparseable date: "2017-11-23T15:25:20.154+00:00"
at java.text.DateFormat.parse(Unknown Source) ~[?:1.8.0_31]
at sun.reflect.GeneratedMethodAccessor77.invoke(Unknown Source) ~[?:?]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_31]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_31]
at bsh.Reflect.invokeMethod(Reflect.java:134) [bsh-2.0b5.jar:2.0b5 2005-06-12 04:50:41]
at bsh.Reflect.invokeObjectMethod(Reflect.java:80) [bsh-2.0b5.jar:2.0b5 2005-06-12 04:50:41]
at bsh.Name.invokeMethod(Name.java:858) [bsh-2.0b5.jar:2.0b5 2005-06-12 04:50:41]
at bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:75) [bsh-2.0b5.jar:2.0b5 2005-06-12 04:50:41]
at bsh.BSHPrimarySuffix.doSuffix(BSHPrimarySuffix.java:103) ~[bsh-2.0b5.jar:2.0b5 2005-06-12 04:50:41]
at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:80) [bsh-2.0b5.jar:2.0b5 2005-06-12 04:50:41]
at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47) [bsh-2.0b5.jar:2.0b5 2005-06-12 04:50:41]
at bsh.BSHVariableDeclarator.eval(BSHVariableDeclarator.java:86) ~[bsh-2.0b5.jar:2.0b5 2005-06-12 04:50:41]
at bsh.BSHTypedVariableDeclaration.eval(BSHTypedVariableDeclaration.java:84) ~[bsh-2.0b5.jar:2.0b5 2005-06-12 04:50:41]
at bsh.BSHBlock.evalBlock(BSHBlock.java:130) [bsh-2.0b5.jar:2.0b5 2005-06-12 04:50:41]
at bsh.BSHBlock.eval(BSHBlock.java:80) [bsh-2.0b5.jar:2.0b5 2005-06-12 04:50:41]
at bsh.BSHBlock.eval(BSHBlock.java:46) [bsh-2.0b5.jar:2.0b5 2005-06-12 04:50:41]
at bsh.BSHTryStatement.eval(BSHTryStatement.java:86) [bsh-2.0b5.jar:2.0b5 2005-06-12 04:50:41]
at bsh.Interpreter.eval(Interpreter.java:645) [bsh-2.0b5.jar:2.0b5 2005-06-12 04:50:41]
at bsh.Interpreter.eval(Interpreter.java:739) [bsh-2.0b5.jar:2.0b5 2005-06-12 04:50:41]
at bsh.Interpreter.eval(Interpreter.java:728) [bsh-2.0b5.jar:2.0b5 2005-06-12 04:50:41]
at sun.reflect.GeneratedMethodAccessor34.invoke(Unknown Source) ~[?:?]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_31]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_31]
at org.apache.jmeter.util.BeanShellInterpreter.bshInvoke(BeanShellInterpreter.java:166) [ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.util.BeanShellInterpreter.eval(BeanShellInterpreter.java:189) [ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.util.BeanShellTestElement.processFileOrScript(BeanShellTestElement.java:151) [ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.assertions.BeanShellAssertion.getResult(BeanShellAssertion.java:105) [ApacheJMeter_components.jar:3.3 r1808647]
at org.apache.jmeter.threads.JMeterThread.processAssertion(JMeterThread.java:812) [ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.threads.JMeterThread.checkAssertions(JMeterThread.java:803) [ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:525) [ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:424) [ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:255) [ApacheJMeter_core.jar:3.3 r1808647]
私はYYYY-MMなどの通常のdatetime要件のために同じことを達成することができました-DD HH:MM:SS - (2017年11月23日午前15時25分20秒)
誰もがあなたのために、この
15:25:20.041にノートが作成され、15:25:20に更新されてしまうことがありますか?462、後者は小数なしで15:25:20に入っていますか?そうであれば、時間は逆転しているように見えます。とにかくアサーションを渡したいですか?また、時間がまったく同じであれば、アサーションは合格する必要がありますか? –