커넥터 테스트 자동화
커넥터 테스트 도우미는 CLI에 대한 프로그래밍 인터페이스를 제공합니다. CLI에 제공된 모든 옵션은 프로그래밍 인터페이스를 통해 제공될 수도 있습니다. 이는 CLI를 사용하는 대화식 실행을 자동화된 리그레션 테스트로 변환하는 데 유용합니다.
ptc-flow-test-helper npm 모듈은 커넥터 통합 테스트 사례를 자동화하는 API를 제공합니다. 이러한 API를 node.js 테스트 프레임워크(예: mocha)와 함께 사용하여 커넥터 테스트 사례를 자동화할 수 있습니다.
이 npm 모듈은 다음 세 가지 API를 제공합니다.
• JSONUtils - 테스트 사례에서 어설션으로 사용할 JSON 유틸리티를 제공합니다.
ConnectorTestHelper
다음 커넥터 아티팩트를 테스트하는 API를 제공합니다.
ActionAPI
이 메소드를 사용하여 테스트 세트에 설정된 정보는 개별 테스트 사례를 테스트하는 동안 전달되어야 합니다.
메소드 setTestInfo: 이 메소드는 setTestInfo로 설정된 정보를 반환합니다. 이 메소드는 테스트 세트 수준 정보를 설정합니다.
시그니처: setTestInfo (Object info)
info = {
name: <string>,
connector: <connector object>,
version: <integer>,
access_token: <string>,
connection: <string>,
skipSchemaValidation: <boolean>,
logLevel: <string>
}
다음 표에서는 위 샘플의 각 매개 변수를 설명합니다.
매개 변수 | 설명 |
---|
name | 테스트 사례로 테스트할 작업을 설정합니다. |
connector | 테스트 사례로 테스트할 커넥터를 설정합니다. |
version | 테스트할 작업 버전을 설정합니다. |
access_token | 커넥터에서 OAuth 인증 메커니즘을 사용하는 경우 creds.json 파일에 저장된 OAuth 객체의 이름을 제공합니다. |
connection | 커넥터에서 연결 인증 메커니즘을 사용하는 경우 creds.json 파일에 저장된 연결 객체의 이름을 제공합니다. |
skipSchemaValidation | 입력 또는 출력 스키마에 대해 작업 입력 또는 출력의 유효성 검사를 건너뛰려면 true로 설정합니다. |
logLevel | ActionAPI에서 사용할 로그 수준을 설정합니다. |
ActionAPI는 작업 아티팩트를 호출하는 동안 이 메소드에서 설정된 정보를 사용합니다.
메소드 getTestInfo: 이 메소드는 setTestInfo로 설정된 정보를 반환합니다.
시그니처: getTestInfo()
반환 유형(객체 정보)
메소드 test
이 메소드는 제공된 작업 아티팩트를 실행하고 커넥터 작업이 반환하는 결과를 반환합니다.
Signature: test(Object input [optional], Object options [optional])
반환 유형 promise 객체
◦ input [optional] - 작업 입력 JSON 스키마에 따라 작업 아티팩트에서 수락하는 입력 객체를 제공합니다.
◦ options [optional] - 객체 정보에 정의된 일부 또는 모든 속성을 포함하는 객체를 제공합니다. 이 옵션 객체의 속성 값은 setTestInfo 메소드에 의해 테스트 세트 수준의 정보 객체에 설정된 속성을 재정의합니다.
예를 들어, 연결 action1에 대한 테스트 세트 수준 정보를 설정합니다. 이 옵션 객체를 사용하면 name : action2 속성을 전달하여 커넥터 action1 대신 action2를 실행하는 test 메소드를 호출할 수 있습니다. 이는 action2가 action1에 대한 테스트 세트에서 요청되거나 작성된 테스트 데이터를 만들거나 삭제하는 데 사용되는 경우 유용합니다.
ConnectionAPI
이 메소드를 사용하여 테스트 세트에 설정된 정보는 개별 테스트 사례를 테스트하는 동안 전달되어야 합니다.
메소드 setTestInfo: 이 메소드는 setTestInfo로 설정된 정보를 반환합니다. 이 메소드는 테스트 세트 수준 정보를 설정합니다.
시그니처: setTestInfo (Object info)
info = {
name: <string>,
connector: <connector object>,
version: <integer>,
skipSchemaValidation: <boolean>,
logLevel: <string>
다음 표에서는 위 샘플의 각 매개 변수를 설명합니다.
매개 변수 | 설명 |
---|
name | 테스트 사례로 테스트할 연결을 설정합니다. |
connector | 테스트 사례로 테스트할 커넥터를 설정합니다. |
version | 테스트할 연결 버전을 설정합니다. |
skipSchemaValidation | 입력 또는 출력 스키마에 대해 작업 입력 또는 출력의 유효성 검사를 건너뛰려면 true로 설정합니다. |
logLevel | ConnectionAPI에서 사용할 로그 수준을 설정합니다. |
ConnectionAPI는 연결 아티팩트를 호출하는 동안 이 메소드에 설정된 정보를 사용합니다.
메소드 getTestInfo - setTestInfo로 설정된 정보를 반환합니다.
시그니처: getTestInfo() - 반환 유형(객체 정보)
메소드 test
메소드는 제공된 연결 아티팩트를 실행하고 커넥터 연결 아티팩트가 반환하는 결과를 반환합니다.
Signature: test(Object input [optional], Object options [optional])
반환 유형 promise 객체
◦ input [optional] - 연결 입력 JSON 스키마와 일치하는 연결 아티팩트에서 수락되는 입력 객체를 제공합니다.
◦ options [optional] - 객체 정보에 정의된 일부 또는 모든 속성을 포함하는 객체를 제공합니다. 이 옵션 객체의 속성 값은 setTestInfo 메소드에 의해 테스트 세트 수준의 정보 객체에 설정된 속성을 재정의합니다.
예를 들어, 연결 connection1에 대한 테스트 세트 수준 정보를 설정합니다. 이 옵션의 객체를 사용하면 name : connection2 속성을 전달하여 커넥터 connection1 대신 connection2를 실행하는 test 메소드를 호출할 수 있습니다. 이는 connection2가 connection1에 대한 테스트 세트에서 요청되거나 작성된 테스트 데이터를 만들거나 삭제하는 데 사용되는 경우 유용합니다.
LookupAPI
메소드 setTestInfo: 이 메소드는 setTestInfo로 설정된 정보를 반환합니다. 이 메소드는 테스트 세트 수준 정보를 설정합니다.
시그니처: setTestInfo (Object info)
info = {
name: <string>,
connector: <connector object>,
connection: <string>,
access_token: <string>
logLevel: <string>
}
다음 표에서는 위 샘플의 각 매개 변수를 설명합니다.
매개 변수 | 설명 |
---|
name | 테스트 사례로 테스트할 조회를 설정합니다. |
connector | 테스트 사례로 테스트할 커넥터를 설정합니다. |
version | 테스트할 조회 버전을 설정합니다. |
connection | 커넥터에서 연결 인증 메커니즘을 사용하는 경우 creds.json 파일에 저장된 연결 객체의 이름을 제공합니다. |
access token | 커넥터에서 OAuth 인증 메커니즘을 사용하는 경우 creds.json 파일에 저장된 OAuth 객체의 이름을 제공합니다. |
skipSchemaValidation | 입력 또는 출력 스키마에 대해 작업 입력 또는 출력의 유효성 검사를 건너뛰려면 true로 설정합니다. |
logLevel | LookupAPI에서 사용할 로그 수준을 설정합니다. |
메소드 test
메소드는 제공된 조회 아티팩트를 실행하고 커넥터 조회 아티팩트가 반환하는 결과를 반환합니다.
Signature: test(String method, Object input [optional], Object options [optional])
반환 유형 promise 객체
◦ method: 테스트해야 할 조회 메소드 이름을 제공합니다.
◦ input [optional]: 조회 메소드에서 수락되는 입력 객체를 제공합니다.
◦ options [optional]: 객체 정보에 정의된 일부 또는 모든 속성을 포함하는 객체를 제공합니다. 이 옵션 객체의 속성 값은 setTestInfo 메소드에 의해 테스트 세트 수준의 정보 객체에 설정된 속성을 재정의합니다.
또한 다음 속성에 이 객체를 제공할 수 있습니다.
searchById | 검색에 사용할 ID를 설정합니다. |
searchByValue | 검색에 사용할 값을 설정합니다. |
filter | 항목을 검색할 필터를 설정합니다. |
예를 들어, SearchById 값을 제공하여 조회 메소드를 실행하려면 options 객체를 사용하여 이 정보를 제공합니다.
TriggerAPI
이 메소드를 사용하여 테스트 세트에 설정된 정보는 개별 테스트 사례를 테스트하는 동안 전달되어야 합니다.
메소드 setTestInfo - setTestInfo로 설정된 정보를 반환합니다. 이 메소드는 테스트 세트 수준 정보를 설정합니다.
시그니처: setTestInfo (Object info)
info = {
name: <string>,
connector: <connector object>,
version: <integer>,
access_token: <string>,
connection: <string>,
skipSchemaValidation: <boolean>,
logLevel: <string>
polling: <boolean>
}
다음 표에서는 위 샘플의 각 매개 변수를 설명합니다.
매개 변수 | 설명 |
---|
name | 테스트 사례로 테스트할 트리거를 설정합니다. |
connector | 테스트 사례로 테스트할 커넥터를 설정합니다. |
version | 테스트할 트리거 버전을 설정합니다. |
access_token | 커넥터에서 OAuth 인증 메커니즘을 사용하는 경우 creds.json 파일에 저장된 OAuth 객체의 이름을 제공합니다. |
connection | 커넥터에서 연결 인증 메커니즘을 사용하는 경우 creds.json 파일에 저장된 연결 객체의 이름을 제공합니다. |
skipSchemaValidation | 입력/출력 스키마에 대해 작업 입력 또는 출력의 유효성 검사를 건너뛰려면 true로 설정합니다. |
polling | 트리거 유형이 폴링 트리거이면 True로 설정합니다. |
logLevel | TriggerAPI에서 사용할 로그 수준을 설정합니다. |
TriggerAPI는 작업 아티팩트를 호출하는 동안 이 메소드에서 설정된 정보를 사용합니다.
메소드 getTestInfo - setTestInfo로 설정된 정보를 반환합니다.
시그니처: getTestInfo() - 반환 유형(객체 정보)
메소드 test
메소드는 제공된 트리거 아티팩트를 실행하고 커넥터 트리거 아티팩트가 반환하는 결과를 반환합니다.
Signature: test(String method, String event, Object input [optional], Object options [optional])
반환 유형, promise 객체
◦ method - 테스트해야 할 트리거 메소드 이름을 제공합니다.
◦ event - 트리거 입력 스키마에 정의된 트리거 이벤트를 제공합니다.
◦ input [optional] - 트리거 메소드에서 수락되는 입력 객체를 제공합니다.
◦ options [optional] - 객체 정보에 정의된 일부 또는 모든 속성을 포함하는 객체를 제공합니다. 이 옵션 객체의 속성 값은 setTestInfo 메소드에 의해 테스트 세트 수준의 정보 객체에 설정된 관련 속성을 재정의합니다.
또한 폴링 트리거 테스트를 위해 이 객체에 다음 속성을 제공할 수 있습니다.
interval | 트리거할 간격(초)을 설정합니다. |
stopAfter | 트리거에 대한 최대 호출 수를 설정합니다. |
meta | 메타 객체를 설정합니다. |
unixTime | 시점을 기술하는 시스템으로, 시간 근사치(초)로 정의됩니다. |
예를 들어, 폴링 트리거를 테스트하는 동안 unixTime을 설정하려면 위의 옵션을 사용합니다.
CredsAPI
이 파일에 사용되는 메소드는 다음과 같습니다.
• getConnectionById - 제공된 연결 객체 이름을 기반으로 연결 세부 정보를 반환합니다.
시그니처: getConnectionById(uid)
• getConnectionByIdWithHandle - 핸들 객체의 연결 세부 정보를 반환합니다.
시그니처: getConnectionByIdWithHandle(uid)
• getOauthById - 제공된 OAuth 객체 이름을 기반으로 OAuth 세부 정보를 반환합니다.
시그니처: getOauthById(uid)
• getOauthByIdWithHandle - 핸들 객체의 OAuth 세부 정보를 반환합니다.
시그니처: getOauthByIdWithHandle()
• saveConnection - 연결을 저장합니다.
시그니처: saveConnection()
• saveOauth - OAuth 세부 정보를 creds.json 파일에 저장합니다.
시그니처: saveOauth()
ConnectorSyntaxTestHelper API
이 메소드는 커넥터 아티팩트 구문의 유효성을 검사합니다.
이는 다음과 같이 단위 테스트에 사용될 수 있습니다.
/* eslint-env mocha */
const ConnectorSyntaxTestHelperClass = require('ptc-flow-test-helper').ConnectorSyntaxTestHelper
const connector = require('../../index')
const ConnectorSyntaxTestHelper = new ConnectorSyntaxTestHelperClass(connector)
describe('usgeocoderConnectorSyntaxTest', ConnectorSyntaxTestHelper.tests())
JSONUtils API
JSON 어설션 라이브러리
compareJSONs (Object actualJSON, Object expectedJSON, Object ignoreDiff [optional]) returnType promise: json 객체를 비교하는 어설션 메소드, 이 메소드에 의해 반환되는 promise는 두 json 객체 모두 일치하는 경우 해결되고, 그렇지 않으면 다음 오류가 발생하여 이 메소드가 promise를 거부합니다. ignoreDiff = { keys : [array of fields to be ignored from comparison]}
verifyArraySubset (Object actualJSONArray, Object expectedJSONArray, Object ignoreDiff [optional]) returnType promise
• 어설션 메소드는 actualJSONArray가 expectedJSONArray의 하위 세트인지를 비교합니다.
• 이 메소드에 의해 반환되는 promise는 actualJSONArray가 expectedJSONArray 일치의 하위 세트인 경우 해결되고, 그렇지 않으면 오류가 발생하여 promise를 거부합니다.
• ignoreDiff = { keys : [array of fields to be ignored from comparison]}