Postman newman 핸들 상태 코드

Sep 22 2020

테스트에서 둘 이상의 상태 코드 검사가 가능한지 궁금합니다. 케이스는 사용자가 생성 될 때 201이고 동일한 사용자 배치로 테스트 케이스를 다시 실행하면 사용자가 이미 존재하는 경우 409입니다. 201은 처리되지만 409는 처리되지 않습니다. ㅏ

 var data = pm.response.json()
 pm.test("Status test", function () {
  return  pm.response.to.have.status(200) || pm.response.to.have.status(409);
     
});


There was an error in evaluating the test script:  JSONError: Unexpected token 'U' at 1:1 User already Exists ^

편집하다:

들어 200난 사용자 개체를 얻고 난 여기에이 객체를 게시 할 수 없습니다

대한 409문자열 사용자가 이미

답변

1 ChristianBaumann Sep 22 2020 at 19:47

상태 200 또는 409를 테스트하는 더 우아한 방법은 다음과 같습니다.

pm.expect(pm.response.code).to.be.oneOf([200, 409]);

상태가 409 일 때 오류가 발생합니다. 요청이 JSON이 아니라 문자열을 반환하기 때문입니다. 나는 다음과 같은 것을 넣을 것이다

if (pm.response.code == 200) {
    var data = pm.response.json()
    // your code
}

하지만 이렇게하지 말라고 강력히 권합니다! 테스트 측면에서 하나의 테스트가 한 가지만 확인하기를 원합니다. 그렇지 않으면 아마도 오해와 유지 관리 노력이 증가 할 것입니다.

테스트에 따라 사용자 생성 요청을 하나 만들 것을 제안합니다. 또 다른 테스트는 사용자를 다시 생성하려고 시도합니다.