Postman API 테스트 결과 Testrail로 전송하기

한상준·2024년 5월 23일
post-thumbnail

Testrail API 발급

  • 테스트레일 로그인 > 우측 상단 ADMINSTATION
  • Site Settings > API 탭

    Enable API 체크 후 저장 후
    사용자 > My Settings > API KEYS 탭

    API KEY 발급 받은 후 (발급 받은 API는 따로 꼭 저장!)
    Save버튼 클릭

Postman

  • 요청할 Requst 추가

요청할때 필요한 Headers , Body 값을 입력 후
Script를 작성한다.

const runId = "<runId>";
const caseId = "<caseId>";
const testrailInstance = "<instance주소>";
const testrailUsername = "<테스트레일 아이디>";
const testrailApiKey = "<테스트레일 api>";
const responseStatusCode = pm.response.code;
const isStatusCodeCorrect = responseStatusCode === 200;
const statusId = isStatusCodeCorrect ? 1 : 5; // 1: pass 5: fail

// 상태 코드 검증
if (!isStatusCodeCorrect) {
    const comment = "응답실패 , 응답상태 : " + responseStatusCode;
    pm.test(comment, function () {
        pm.expect(isStatusCodeCorrect).to.be.true;
    });
} else {
    pm.test("API 응답 200 성공", function () {
        pm.response.to.have.status(200);
    });
}

// testrail 응답
pm.test("testrail 전송 결과", function () {
    

    // 테스트 결과를 TestRail에 전송
    const testrailComent = "관리자 로그인 API 응답 상태:" + pm.response.code;

    pm.sendRequest({
        url: `https://`+ testrailInstance +`/index.php?/api/v2/add_result_for_case/${runId}/${caseId}`,
        method: 'POST',
        header: {
            'Content-Type': 'application/json',
            'Authorization': 'Basic ' + btoa(testrailUsername +':'+ testrailApiKey)
        },
        body: {
            mode: 'raw',
            raw: JSON.stringify({
                status_id: statusId,
                comment: testrailComent
            })
        }
    }, function (err, res) {
        if (err) {
            console.log("Error: ", err);
        } else {
            console.log("Response: ", res);
        }
    });
});

스크립트 작성후 요청 시

Testrail 에서
응답 상태가 200 이면 Passed
응답 상태가 200 이 아닐시 Failed
결과가 바뀌는걸 볼수 있다.

+추가

응답 상태만 검증이 아닌 원하는 데이터가 정상적으로 응답하는지 확인하는 코드 추가

// 원하는 응답 데이터
const expectedData = {
    "key1": "value1",
    "key2": "value2"
    ...
};

// 응답 데이터 검증
pm.test("응답 데이터 맞는지 확인", function () {
    const responseData = pm.response.json();
 // 데이터 검증 로직
    const isDataCorrect = responseData.key1 === expectedData.key1 && responseData.key2 === expectedData.key2;
    const statusId = isDataCorrect ? 1 : 5; // 1: Passed, 5: Failed
    const comment = isDataCorrect ? "PASS" : "Fail";

유효한 관리자 정보로 Post 요청 시 Passed
유효하지 않은 관리자 정보로 Post 요청 Failed
결과가 잘 나오는걸 볼수 있다.

0개의 댓글