1

HTTP リクエストの下に JSR233 リスナーがあり、すべての応答時間の値を保存し、配列を作成してから、配列を並べ替えて 90% の行を見つけ、最後のトランザクション/リクエスト パスまたは失敗をマークします (最後の 90% の行のしきい値に達した場合)。GUI ではすべてが完璧に動作しますが、Docker Image を使用して Gitlab CI でこのテストを実行しています。この JSR233 スクリプトは 10 回中 8 回無視されるようですが、そこでも 2 回は正常に動作します。本当に混乱していますWindowsコンソールJMeter非GUIでも奇妙に動作し、無視される可能性があります

String requests = props.get("requests");
long requestsSum = 0;
if (requests != null) {
    requestsSum = Long.parseLong(props.get("requests"));
    }
long thisRequest = sampleResult.getTime();
requestsSum++;
props.put("requests", String.valueOf(requestsSum));
props.put("rt"+String.valueOf(requestsSum), String.valueOf(thisRequest));
if ( requestsSum > 4 ) {
    ArrayList strList = new ArrayList();
    for (int i=1;i<6; i++){
        strList.add(Integer.parseInt(props.get("rt"+String.valueOf(i))));
    }
    vars.putObject("ArrayListBeforeSorting",strList);
    Collections.sort(strList);
    vars.putObject("ArrayListAfterSorting",strList);
    String HID = vars.get("ArrayListAfterSorting"); String[] words = HID.split(",");
    log.info("ninetypercent line is: " + words[3]);
    vars.put("NPL" , words[3]);
    int ninetypercentline = Integer.parseInt(words[3].trim());
    if ( ninetypercentline > 100 ) {
        sampleResult.setSuccessful(false);
        sampleResult.setResponseMessage("ninety percent line is reached");
    }
}
4

1 に答える 1