Postmanユーティリティインタフェーステストシリーズ8-実行順序の制御


単一のインタフェースのテストでは、特定の実行順序に関する問題はありません.しかし,複数のインタフェースを用いて1つのビジネスシーンをシミュレートするテストでは,実行順序の問題が必要となる.
まず、一般的にpostmanが走る順番はrequestの上から下までの順番であることを知る必要があります.順序を変更するにはpostmanの内蔵関数postman.setNextRequest()を使用する必要があります.

1.postman.setNextRequest()基本使用


postman.setNextRequest("request name")
1.1要求順序request_の指定A->request_C
Aのスクリプト(pre-request scriptであってもtest scriptであってもよい)に次のコードを書き込む
postman.setNextRequest("request_C");

1.2現在のリクエストrequest_のループA
postman.setNextRequest("request_A");

1.3ワークフローの停止
postman.setNextRequest(null);

2.postman.setNextRequest()注意事項


2.1リクエストスクリプトにpostmanがない場合.setNextRequest()は、デフォルトの上から下の順に実行されます
2.2 postman.setNextRequest()は作用範囲があり、collectionを走っている場合はcollection全体に作用し、同じcollectionの異なるfolderでも互いにジャンプすることができる.folderを走っている場合は、このfolderの範囲内しかなく、folderをまたぐことはできません.
2.3 postman.setNextRequest()は、pre-request scriptまたはtestの任意の場所に置いてもこの特性に影響を与えない、本リクエストが完全に実行された後にのみ実行されます.

3.具体的な使用例


シーンを仮定すると、予約書を作成するビジネスシーンをテストする必要があります.あなたが設計したインタフェースロジックは以下の通りです.
  • アクセスインタフェース1は、現在の車両に予約があるか否かを判断する
  • .
  • 予約がない場合アクセスインタフェース2は予約
  • を作成する.
  • 予約がある場合はアクセスインタフェース3は予約をキャンセルしてからアクセスインタフェース2は予約
  • を作成する.
    インターフェース1->インターフェース2インターフェース1->インターフェース3->インターフェース2
    インタフェース1のスクリプトは次のとおりです.
    var data = pm.response.json();
    
    if (data[0].booked == false) {
        // 2 
        postman.setNextRequest(" 2")
    }else{
        // 3 
        postman.setNextRequest(" 3")
    }
    

    インタフェース3のスクリプトは、インタフェース2への割り当てです.
    postman.setNextRequest(" 2")

    参照先:
    https://learning.postman.com/...