Postman Scriptスクリプト文法まとめ

5285 ワード

Postmanの強みは、あるrequestにアクセスする前と後のそれぞれにカスタマイズされたJavascriptスクリプトを実行することによって、直接に完成させることです.chain requestの効果は、いくつかのrequestを一つのプロセスに連結して一体化テストを行うことができます.これは多くのAPIの動作において極めて有用であるので、ここではいくつかの常用語句をまとめる必要がある.
Postmanオフィシャル:Intro to scriptsを参照してください.
Script workflowスクリプト実行フロー
  • pre-requestスクリプトは、APIを要求する前のスクリプトであり、パラメータ、JSONパケット、リンクアドレスなどを動的に生成するために一般的に使用される.
  • testスクリプトは、実際にはpost-requestと呼ばれるべきであり、実際にAPIアクセスを完了し、そのレスポンスを得てから実行されるスクリプトは、一般的には、レスポンスのコンテンツを取得するために使用され、ページタイトルやコンテンツを取得するなど、他のリソースに対する要求を後にする他のリソースの.
  • Requirements実行スクリプト要求
    なお、pre-requestスクリプトは、直接コードを書いても良いが、testスクリプトは特定の関数pm.test(...)で実行されてこそ識別され、testスクリプトとして実行される必要がある.図のように、pm.test()の最初のパラメータはテスト記述(テスト結果欄に表示されるので、他のテスト記述と区別するべき)であり、第二のパラメータは関数であり、具体的な実行コードはこの関数で実行される.また、pmオブジェクトはPostmanの主要オブジェクトであり、すべての内蔵関数、データ呼び出しなどは、これによって実現される必要があります.
    Code Snippets常用語句
    基本的には台本の作成欄の右側にいつもの語句がありますが、以下をクリックするとコードが出てきます.次の図のように
    公式文書で説明されている各種関数の呼び出しはここにあります.Postman Sandbox
    以下は自分でまとめた常用コードのセグメントです.
    //   response    
    var rsb = responseBody; //       
    
    //       
    var v = pm.environment.get("    ");
    
    //               ,                     
    //      JSON  ,   JSON.stringify(..)  ,  JSON.parse(..)       
    pm.environment.set("    ",     );
    
    //         
    pm.environment.unset("     ");
    
    //            
    var gb = pm.globals.get("     ");
    var nm = pm.variables.get("     ");
    
    // Javascript       
    console.log( typeof pm.enviroment );
    Pre-request Script前処理スクリプトPre-request scriptは、requestの前にrequest情報を準備するためのスクリプトである.
    Postmanオフィシャル:Pre-request scriptsを参照してください.
    常用の準備は以下の通りです.
  • は環境変数を読み出し、request bodyまたはheadersに入れる.
  • スティッチンググループは、authentication codeなどのrequest要求に必要なパラメータを提出する.
  • よく使う語句は以下の通りです.
    //       
    var v = pm.environment.get("    ");
    
    //               ,                     
    //      JSON  ,   JSON.stringify(..)  ,  JSON.parse(..)       
    pm.environment.set("    ",     );
    Test Scriptテストスクリプト
    テストスクリプトはrequestの後、Resonseの戻り値に対して次の処理を行うスクリプトです.
    Postmanオフィシャル:Test scripts Postmanオフィシャル:Test examplesを参照
    よく使われる処理は以下の通りです.
  • レスポンスデータを読み出し、環境変数
  • として保存する.
  • レスポンスの状態によって成功するかどうかを判断し、次のステップは何をするかを判断します.
    よく使う語句は以下の通りです.
    //   response headers     
    ctype = postman.getResponseHeader("Content-Type");
    
    //   response body     
    text = pm.response.text();
    
    //   response     JSON
    json_data = pm.response.json();
    
    //   json     ,  name  :
    myName = json_data.name;
    Test Resultテスト結果
    上記の具体的な機能コード以外にも、よく結果を返す必要があります.このテスト結果はPassですか?それともFailですか?デフォルトはパスですか?
    ここでの戻り値は単純なreturn文ではなく、Postmanが持参するオブジェクトまたは方法によってのみ可能であり、一般的にpm.expect()またはtests[]の2つの場所を通じて試験結果を返します.
    完全なテストモデル:
    //   response      200  :
    pm.test("Status code is 200", function () {
        pm.response.to.have.status(200);
    });
    これらの方法名は分かりやすいように見えますが、一般的にはpm.expect()または.to.be()または.to.have()と呼ばれます.字面では何を期待しているのか、あるいは何を要求しているのか、あるいは何が必要なのか、テストに合格することができます.また、同様の試験結果には、pmオブジェクトを介さずに、testsオブジェクトを内蔵するより簡単な書き方がある.
    常用操作は以下の通りです.
    #         200  
    tests["Response time is less than 200ms"] = responseTime < 200;
    
    #                   
    tests["Status code name has string"] = responseCode.name.has("Created");
    この使い方を見ると、推察testsはJSON形式の対象で、tests[...]括弧内の文字列はテストの記述であり、=は判断文の後に、tests[..]の値にTrueまたはFalseを与え、その後postmanはtestsオブジェクト内のパラメータを輪訓して、passの有無の結果に戻る.
    ここは公式にまとめられた常用テストシナリオの方法です.Test examples.
    以下は私がまとめた常用テスト結果の内蔵関数です.
    # “  ”             
    pm.expect( response       ).to.include("       ");
    
    #   body            
    pm.response.to.have.body("       ");
    
    #         200  
    pm.expect(pm.response.responseTime).to.be.below(200);
    
    #            "Created"
    pm.response.to.have.status("   ");
    
    デバッグゲージスクリプトデバッグ
    既に設定されているEviroment変数を見ると、右上の小さな目を開けて見られます.次の図のように環境変数を3つ設定しました.
    デバッグ時にプリントするなら、普通はconsole.log(...)を使っています.そうすると、コンサートで見られます.
  • あなたのPostmanがChrome appであれば、chromeブラウザの開発者ツールで直接デバッグすればいいです.
  • Macなどのデスクトップソフトであれば、内蔵のconsoneを開いてデバッグ情報を見ることができます.
  • 位置は左下にあります.
    Postman Sandbox
    PostmanのSandboxはPostman内部でデフォルトで導入された第三者のJSライブラリです.
    参考:Postman Sandbox公式脚本は、Postman Sandbox API公式参照のスクリプトライブラリを参照してください.
    Sandboxで引用されているサードパーティライブラリがあります.
    生成MD 5文字列:
    var hashed = CryptoJS.MD5("       ");
    ファイル転送base 64文字列:
    s = 'Hello';
    //     UTF-8      
    utf8 = CryptoJS.enc.Utf8.parse( s );
    //  CryptoJS    (Postman     )    
    b64 = CryptoJS.enc.Base64.stringify(utf8)
    
    console.log(b64);
    // aGVsbG8=
    Postman SDK
    Sandboxとは違って、Postman内部のより高級なSDKです.便利な方法をいくつか引用することができます.
    公式サイトを参照:Tutorial:Postman SDK Concepts
    URLはJSON形式に変換され、指定されたパラメータ値を取得する.
    var sdk = require('postman-collection');
    query = ( new sdk.Url(callback) ).toJSON().query;
    
    for (var i in query) {
        console.log(query[i].key +": "+ query[i].value);
    }