ThingWorx Flow > ThingWorx Flow SDK > 커넥터 테스트 자동화
커넥터 테스트 자동화
커넥터 테스트 도우미는 CLI에 대한 프로그래밍 인터페이스를 제공합니다. CLI에 제공된 모든 옵션은 프로그래밍 인터페이스를 통해 제공될 수도 있습니다. 이는 CLI를 사용하는 대화식 실행을 자동화된 리그레션 테스트로 변환하는 데 유용합니다.
ptc-flow-test-helper npm 모듈은 커넥터 통합 테스트 사례를 자동화하는 API를 제공합니다. 이러한 API를 node.js 테스트 프레임워크(예: mocha)와 함께 사용하여 커넥터 테스트 사례를 자동화할 수 있습니다.
이 npm 모듈은 다음 세 가지 API를 제공합니다.
ConnectorTestHelper - 커넥터 아티팩트를 호출하는 API를 제공합니다.
ConnectorSyntaxTestHelper - 커넥터 아티팩트의 구문을 확인합니다.
JSONUtils - 테스트 사례에서 어설션으로 사용할 JSON 유틸리티를 제공합니다.
ConnectorTestHelper
다음 커넥터 아티팩트를 테스트하는 API를 제공합니다.
ActionAPI - 커넥터 작업
ConnectionAPI - 커넥터 연결
LookupAPI - 커넥터 조회
TriggerAPI - 커넥터 트리거
CredsAPI - 커넥터 인증을 읽고 저장하는 유틸리티
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 메소드를 호출할 수 있습니다. 이는 action2action1에 대한 테스트 세트에서 요청되거나 작성된 테스트 데이터를 만들거나 삭제하는 데 사용되는 경우 유용합니다.
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 메소드를 호출할 수 있습니다. 이는 connection2connection1에 대한 테스트 세트에서 요청되거나 작성된 테스트 데이터를 만들거나 삭제하는 데 사용되는 경우 유용합니다.
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()
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]}
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())