0

私の英語でごめんなさい。Web サーバーをテストするためにいくつかのテスト クライアントを作成しましたが、自分の作業に満足できません。コードの改善にご協力ください。

シリアル HTTP リクエストを作成したい。テストリクエストを含む配列があります:

Aua.Queries = ko.observableArray([
    new Query("/srv?key=value&key2=someValue", 300, "comment for this request"), 
    new Query("/srv?someKey=SomeValue", 0, "comment for this request")
]);

(Aua.Queries配列で24クエリ)

Aua.Queries observableArray のラッパー:

function Query(query, result, comment) {
    var me = this;
    me.Query = "http://mydomain.com?" + query;
    me.Result = result;
    me.Comment = comment;
    me.Selected = ko.observable(false);
}

送信ハンドラーをクリックすると、次のようになります。

Aua.SendHandler = function () {
    Aua.Loading(true);
    Aua.Responses([]);
    if (Aua.Advanced() == true) {
        var queries = Aua.Queries();
        console.log("Selected Request Count: ",
            Enumerable.From(queries).Where("$.Selected() == true").Select(function(query) {
                console.log("Result: ", query.Result);
                Aua.Url(query.Query);
                query.Selected(false);
                sendRequest();
            }).Count());
    }
    else if (Aua.RequestCount() > 1) {
        for (var i = Aua.RequestCount(); i > 0; i--) {
            Aua.RequestCount(i);
            setUrlByStatus();
            sendRequest();
        }
    }
    else
        sendRequest();
};

そしてsendRequestハンドラー:

function sendRequest() {

    console.log("Sending request to: ", Aua.Url());

    $.ajax(Aua.Url(), {
        dataType: 'text',
        cache: false,
        type: 'GET',
        success: function(data, status, xhr) {
            Aua.Responses.push({
                "Data": data,
                "Status": xhr.status + " " + xhr.statusText
            });
            prettyPrint();
        },
        error: function(xhr, status, data) {
            Aua.Responses.push({
                "Data": data,
                "Status": xhr.status + " " + xhr.statusText
            });
            prettyPrint();
            console.log("Error: ", Aua.Responses());
        },
        complete: function() {
            Aua.Loading(false);
        }
    });
}

リクエストフォーマットの種類を設定します。

function setUrlByStatus() {
    if (Aua.RequestStatus() === "error")
        Aua.Url(Aua.Queries()[Math.floor(Math.random() * Aua.Queries().length)].Query);
    else
        Aua.Url(
            "http://mydomain.com?" +
                "action=" + Aua.Action() +
                "&number=" + Aua.Number());
}

A には 3 種類の送信リクエストがあります。

  1. Aua.Queries 配列から複数のリクエストを送信します。
  2. カウントに依存してリクエストを送信します。
  3. 入力で 1 つのリクエストを送信します。
4

1 に答える 1