1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Postman Collection Runnerの実行順序を動的に変えたりリトライする方法

Posted at

WebAPIのテストに、Postmanを利用しています。Collection Runnerを使って、一連のAPIテストを流すのですが、テスト結果やEnvironmentの設定値によって、特定のAPIをリトライしたり、次のAPIをスキップしたり等、実行順序を動的に変更したくなったので、その方法を調べたメモ。

Collection Runnerの実行順序

通常のCollection Runnerの実行順序は、単純で上から下にシーケンシャルに実行されていきます。
スクリーンショット 2022-03-17 10.16.57.png

APIをリトライ(繰り返し実行)する

Testsを使って、繰り返し実行ができます。TestsはJavascriptで書きます。この例では、設定しておいたリトライ回数に達するまで15secおきにリトライします。APIのレスポンスが成功した場合は、その時点で次のAPI実行に移ります。

Tests
pm.test("matche string TEST", function () {
    //initialize
    const responseJson = pm.response.json();
    var count = pm.collectionVariables.get("retry_counter");
    const count_limit = pm.collectionVariables.get("retry_count_limit");

    if(responseJson.hoge.match("success") || count>=count_limit){
        //clear retry count
        pm.collectionVariables.set("retry_counter", 0);
    }
    else{
        //count up
        count++;
        pm.collectionVariables.set("retry_counter", count);
        console.log("リトライします:"+count+"回目");
        //retry after 15sec
        setTimeout(function(){}, [15000]);
        var title = pm.info.requestName;
        postman.setNextRequest(title);
    }
});

リトライ回数のカウント用変数、リトライの上限回数はCollection Variablesとして設定しておきます。Collection Variablesは、下記で設定できます。
スクリーンショット 2022-03-17 10.32.49.png

APIをスキップする

リトライと同じような方法で、テスト結果やenvironmentによってAPIをスキップすることができます。Testsの例では、environment variableの値によって次のAPIの実行是非を変えています。

Tests
//検証環境では、TEST5までスキップする
var stg_skip = pm.environment.get("stg_flag");
if(stg_skip == 1){
    console.log("skip document");
    postman.setNextRequest("TEST5")
}

実行順序はこのようになります。
スクリーンショット 2022-03-17 11.23.30.png

おわりに

実行順序の変更は、API単体で実行した場合は影響がありません。Collection Runnerで実行した場合のみ有効です。Testsのテストをする時は、Collection Runnerで試しましょう。

postman scripts 参考

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?