Postman에서 parameterized test하기

동기 부여



Postman에서 API를 두드릴 때 매개 변수와 요청 본문에 변형을 갖고 여러 번 실행하고 싶은 경우가 있으므로 어떻게든하고 싶습니다.

이 기사에서 할 일



fake REST API를 만들고 GET을 실행합니다 (테스트도 작성).
그렇다면 .csv 파일에서 여러 매개 변수를 설정하고 그만큼 API를 두드린다.

이번 구성


  • Postman v8.0.6
  • json-server
  • windows 10

  • 절차



    json-server 설치


    npm install -g json-server
    

    API를 두드릴 때 검색할 데이터를 .json 파일로 생성



    db.json
    {
      "posts": [
        { "id": 1, "title": "json-server1", "author": "typicode" },
        { "id": 2, "title": "json-server2", "author": "typicode" },
        { "id": 3, "title": "json-server3", "author": "typicode" },
        { "id": 4, "title": "json-server4", "author": "typicode" },
        { "id": 5, "title": "json-server5", "author": "typicode" }
      ],
      "comments": [
        { "id": 1, "body": "some comment", "postId": 1 }
      ],
      "profile": { "name": "typicode" }
    }
    

    json-server 시작



    db.json이 저장된 디렉토리에서 다음 명령을 실행합니다.
    json-server --watch db.json
    

    Postman을 시작하고 요청 및 테스트, 환경 변수 작성



    환경 변수:

    요청 및 테스트:


    test.js
    var jsonData = pm.response.json();
    
    pm.test("Status code is 200", function () {
        pm.response.to.have.status(200);
    });
    
    pm.test("idの値がリクエスト通りである", function () {
        pm.expect(jsonData.id).to.eql(parseInt(pm.iterationData.get("id")));
    });
    
    pm.test("titleの値がリクエスト通りである", function () {
        pm.expect(jsonData.title).to.eql(pm.iterationData.get("title"));
    });
    
    pm.test("authorの値がリクエスト通りである", function () {
        pm.expect(jsonData.author).to.eql(pm.iterationData.get("author"));
    });
    

    테스트 데이터가 포함된 .csv 파일 만들기



    test-data.csv
    id,title,author
    1,json-server1,typicode
    2,json-server2,typicode
    3,json-server3,typicode
    4,json-server4,typicode
    5,json-server5,typicode
    

    collection runner에서 .csv 파일 로드






    API를 두드리는



    collection runner의 Run json-server 버튼을 클릭하면 실행이 시작됩니다.

    이번에는 test-data.csv에 5건분의 파라미터를 설정하고 있기 때문에 요청이 5회 실행된다.
    따라서 실행 결과에 Iteration 1에서 5까지 표시되어 있으면 성공.
    또한 각 반복에서 테스트가 통과하면 OK.

    참고문헌


  • Looping through a Data File in the Postman Collection Runner
  • json-server
  • 좋은 웹페이지 즐겨찾기