웹훅 테스트

웹훅을 개발하는 동안 실제 Business 메시지 페이로드. 테스트를 수동으로 만드는 대신, 다양한 JSON 페이로드 유형으로 웹훅을 테스트하는 메시지 테스트 프레임워크 프로덕션 단계에서 수신할 수 있습니다.

시작하려면 웹훅을 만들 수도 있습니다 테스트 프레임워크는 설치가 용이하고 단일 명령어로 웹훅을 테스트할 수 있습니다

시작하기

프레임워크 설치

프레임워크를 설치하는 가장 쉬운 방법은 NPM 패키지 관리자를 사용하는 것입니다. 프레임워크는 NPM 패키지 레지스트리에 게시되므로 설치할 수 있습니다. npm로 다음 명령어를 실행합니다.

npm install -g bm-test-framework

테스트 실행

패키지가 설치되면 웹훅 URL을 환경으로 제공할 수 있습니다. 변수를 만들고 다음 명령어로 모든 테스트를 실행합니다.

BMTF_ENDPOINT_URL=<Your webhook URL> bm-test-framework

테스트 프레임워크의 결과는 다음과 같습니다.

  Sending payloads to <Your webhook URL>
      ✔ authentication-request.json should return 200
      ✔ event-receive.json should return 200
      ✔ image-message.json should return 200 (862ms)
      ✔ read-receipt.json should return 200
      ✔ suggestion-message.json should return 200
      ✔ text-message.json should return 200 (134ms)
      ✔ text-with-dialogflow-response.json should return 200 (128ms)
      ✔ user-receipt.json should return 200

이 테스트 실행 예에서는 모든 테스트 사례를 통과했습니다.

테스트 사례 중 하나에서 웹훅이 실패하는 경우 웹훅은 테스트 사례의 JSON 페이로드에 200 OK로 응답합니다. 이 경우 테스트는 프레임워크는 디버그에 도움이 되는 오류 정보를 출력합니다. 자세한 내용은 테스트 프레임워크 리드미 를 참조하세요.

NodeJS 프로젝트에서 프레임워크 사용

NodeJS 프로젝트의 자체 코드 내에서 또는 먼저 Mocha 테스트 모음 내에서 패키지를 개발 테스트 모음으로 설치합니다. 종속됩니다.

npm install --save-dev bm-test-framework

설치가 완료되면 BmTestFramework 객체를 만들어 테스트를 관리할 수 있습니다.

const BmTestFramework = require('bm-test-framework');
const bmTestFramework = new BmTestFramework({endpointURL: <Your webhook URL>});

payloads 멤버 배열에는 모든 테스트 사례가 포함되어 있습니다. 이 sendPayload 메서드를 사용하여 특정 테스트를 실행합니다. 예를 들어 다음 코드는 프레임워크에서 첫 번째 테스트를 실행합니다.

bmTestFramework.sendPayload(bmTestFramework.payloads[0])

테스트 구성

필수 BMTF_ENDPOINT_URL 환경 변수 외에 다음 작업을 할 수 있습니다. 선택적 환경 변수를 설정하여 테스트 동작을 맞춤설정합니다.

환경 변수 구성 필드 이름 유형 설명
BMTF_RANDOM_UUID randomUuid 부울 true인 경우 대화 ID를 유효한 형식의 임의의 UUID로 설정합니다. false인 경우 모든 대화 ID를 'CONVERSATION-ID'로 설정합니다.
BMTF_TIMEOUT 제한 시간 숫자 또는 형식이 지정된 시간 문자열 각 테스트 사례의 제한 시간을 밀리초 단위로 설정합니다. 각 테스트 사례의 기본 제한 시간은 2,000밀리초입니다. 자세한 유형 및 형식 사양은 Mocha API 참조를 확인하세요.

예를 들어 다음 코드는 명령줄에서 테스트 프레임워크를 실행합니다. 임의의 UUID 옵션이 사용 설정되고 제한 시간이 1000ms인 경우:

BMTF_ENDPOINT_URL=<Your webhook URL> BMTF_TIMEOUT=1000 BMTF_RANDOM_UUID=true bm-test-framework

NodeJS 프로젝트에서 테스트 동작을 맞춤설정하려면 동일한 변수를 BmTestFramework를 만들 때 config 객체에 추가합니다.

const bmTestFramework = new BmTestFramework({endpointURL: <Your webhook URL>, randomUuid: true, timeout: 1000});