web-dev-qa-db-ja.com

何かがPOSTMANで特定の数より大きいかどうかをテストする方法

サイズを0より大きくする必要があるPOSTMANでテストしようとしていますが、テストを正しく行うことができませんでした。

私がやったのは、サイズが0より小さいときに失敗するようにすることでした。

サイズがx数より大きいかどうかをチェックする関数がpostmanにありますか?

    pm.test("Step 7/ Getting the resources and availabilites list " , function(){

    pm.expect(pm.response.code).to.be.oneOf([200]);
    if(pm.response.code === 200){
        var jsonData = JSON.parse(responseBody);
        var sizeOK= 1;
        if(jsonData.resources.length>0){

        }else{
            //I will make the test fail if there is not data available on the response.
            pm.test("Response body is empty ", function () {
                pm.expect(pm.response.json().resources.length).to.equal(1);
            });

        }
        console.log(Boolean(jsonData.resources.length>1))
    }

});
8
mavi
pm.expect(pm.response.json().resources.length).to.be.above(0);

http://www.chaijs.com/api/bdd/ を参照してください

16
anti_gone

Postmanはchaiライブラリーの拡張実装を使用します。ソースコードはこちらで確認できます: https://github.com/postmanlabs/chai-postman

したがって、論理的には、エラーをスローしてテストがキャッチした場合にのみテストが失敗します。それ以外の場合は、単に通過します。そのため、期待される呼び出しは実際にエラーをスローし、テストが失敗します。何も返さないか、何も返さない場合でも、テストは合格です。

単純なtry and catchブロックの観点から考えてください。したがって、問題を即座に解決するには、エラーをスローするだけでテストは失敗します。

次のようにコードを変更できます。

pm.test("Step 7/ Getting the resources and availabilites list " , function(){

    pm.expect(pm.response.code).to.be.oneOf([200]);
    if(pm.response.code === 200){
        var jsonData = JSON.parse(responseBody);
        var sizeOK= 1;
        if(jsonData.resources.length>0){

        } else {
            pm.test("Response body is empty ", function () {
               throw new Error("Empty response body"); // Will make the test fail.
            });

        }
        console.log(Boolean(jsonData.resources.length>1))
    }

});

また、単純なjavascriptを使用して、長さ/サイズを簡単にテストすることもできます(例)。

pm.test("Step 7/ Getting the resources and availabilites list " , function(){

        pm.expect(pm.response.code).to.be.oneOf([200]);
        if(pm.response.code === 200){
            var jsonData = JSON.parse(responseBody);
            var sizeOK= 1;
            if(jsonData.resources.length>0){

            } else {
                pm.test("Response body is empty ", function () {
                   if(jsonData.length < 3) {
                      throw new Error("Expected length to be greater than 3");
                   }
                });

            }
            console.log(Boolean(jsonData.resources.length>1))
        }

    });
2
Sivcan Singh

必要な精度はわかりませんが、Postmanで応答サイズを取得します。ボディサイズとヘッダーサイズで構成されています(アプリのサイズの値をポイントするだけです)。テスト領域では、次の操作を行ってボディサイズを回復できます。

var size=0;
for (var count in responseBody) {
    if(responseBody.hasOwnProperty(count))
        size += 1;
}
console.log("BODY SIZE = " + size); // you'll see the correct value in the console for the body part

そして、この値に対してテストします...

0
A.Joly