応答コード 200 がエラー レポートで失敗としてマークされている可能性があります。
これは間違いではありません。
JMeter での応答がエラーかどうかの計算方法
BlazeMeter は Sample.jtl ファイルを XML 形式で保存します。それが、成功した HTTP 要求を保存する正しい方法だからです。
さらによく理解できるように、BlazeMeter の sample.jtl ファイルから抽出した 200 OK の HTTP サンプルをいくつか示します。
成功した HTTP 200 OK の HTTP 要求
<sample t="2389" lt="337" ts="1385384058184" s="true" lb="demo.blazemeter.com" rc="200" rm="OK" tn="Tour 1-2" dt="text" by="114" sc="1" ec="0" ng="6" na="6" hn="ip-10-116-219-48" in=""> <assertionResult> <name>Duration Assertion</name> <failure>false</failure> <error>false</error> </assertionResult> </sample>
「cs=true」に注目してください。これは成功を意味します(s=true フラグの後に続いて rc=200 となっていて、HTTP 要求全体が正常に完了したことを確認できます)。
上に示したように、この HTTP 要求に対するアサーションは失敗していません。
アサーション エラー
次に、同じく 200 OK である HTTP 要求を見てみましょう。
<sample t="3040" lt="332" ts="1385384066792" s="false" lb="Resources" rc="200" rm="OK" tn="Tour 1-3" dt="text" by="114" sc="1" ec="1" ng="23" na="23" hn="ip-10-116-219-48" in=""> <assertionResult> <name>Duration Assertion</name> <failure>true</failure> <error>false</error> <failureMessage>The operation lasted too long: It took 3,040 milliseconds, but should not have lasted longer than 3,000 milliseconds.</failureMessage> </assertionResult> </sample>
応答は 200 OK であるものの、応答に失敗したアサーションがありました。アサーションの説明/失敗メッセージも確認できます。
この種のエラーの一般的なシナリオは、ログインの失敗です。要求が正常に処理されても(そのため 200 OK が返された)、認証情報が false であるため、アサーションで要求が失敗しました。
別のシナリオとして、「Duration Assertion」があります。特定のページで 5 秒を超える応答時間を不可とする場合、その時間を超えると要求が失敗する「Duration Assertion」を適用する必要があります。
埋め込みエラー
この HTTP 要求を見てみましょう。
<httpSample t="2674" lt="171" ts="1385391325519" s="false" lb="demo.blazemeter.com" rc="200" rm="OK" tn="demo.blazemeter.com 1-12" dt="text" by="336853" ng="50" na="50"> <assertionResult> <name>Duration Assertion</name> <failure>false</failure> <error>false</error> </assertionResult> <httpSample t="343" lt="171" ts="1385391325519" s="true" lb="http://demo.blazemeter.com/" rc="200" rm="OK" tn="demo.blazemeter.com 1-12" dt="text" by="29146" ng="0" na="0"/> … <httpSample t="159" lt="159" ts="1385391326193" s="false" lb="http://demo.blazemeter.com/blazemeternew.blazemeterltd.netdna-cdn.com/cdn/farfuture/2DvoLHKhbqQb_segx0EoZA_eyqRcf4nHMy1YhFZ8xN0/drupal:7.16/misc/jquery.js?v=1.4.4" rc="404" rm="Not Found" tn="demo.blazemeter.com 1-12" dt="text" by="649" ng="0" na="0"/> … </httpSample>
200 OK (rc=200)になっていて、アサーションはありません。なのに、成功フラグはまだ false (s=false)です。どうしてでしょうか。
これは、JMeter がいずれかの埋め込みリソース(画像、JavaScript、CSS など)を取得できず、要求を失敗としてマークしたことを意味します。
この例では、JMeter が jquery.js 要素を取得できなかったため、404 が返されました。
テストの sample.jtl ファイルを表示する方法
テストの ZIP をダウンロードし、展開します。
BlazeMeter のテスト結果に関する詳細については、録画したオンデマンド Web キャスト「Load Test Like a Pro (プロ並みの負荷テストを実行)」をご覧ください。
0 コメント