ThingWorx Flow > Пакет SDK для ThingWorx Flow > Тестирование соединителей > Автоматизация тестирования соединителя
Автоматизация тестирования соединителя
Помощник тестирования соединителя позволяет использовать программируемый интерфейс для CLI. Все возможности, предоставленные в командной строке, могут также быть предоставлены через программный интерфейс. Это полезно для преобразования интерактивного выполнения с использованием командной строки в автоматизированное регрессионное тестирование.
NPM-модуль ptc-flow-test-helper содержит интерфейсы 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, укажите наименование объекта OAuth, хранящееся в файле creds.json.
connection
Если для соединителя используется механизм аутентификации соединения, укажите наименование объекта соединения, хранящееся в файле creds.json.
skipSchemaValidation
Задайте значение ИСТИНА для опции пропуска проверки ввода или вывода действия в соответствии со схемой ввода или вывода
logLevel
Задайте уровень журнала, который должен использоваться интерфейсом ActionAPI
Интерфейс ActionAPI использует информацию, заданную в этом методе при вызове артефакта действия.
Метод getTestInfo - возвращает информацию, заданную методом setTestInfo.
Сигнатура: getTestInfo()
Тип возврата (информация объекта)
Метод test
Этот метод выполняет указанный артефакт действия и возвращает результат, возвращенный действием соединителя.
Signature: test(Object input [optional], Object options [optional])
Тип возврата: объект Promise
input [optional] - укажите объект входных данных, принимаемый артефактом действия, который соответствует схеме JSON входных данных действия.
options [optional] - укажите объект, содержащий некоторые или все свойства, определенные в элементе Object info (информация об объекте). Это значение свойств объекта опций переопределяет соответствующие свойства, которые были заданы в объекте info на уровне набора тестов в методе setTestInfo.
Например, на уровне набора тестов задана информация для соединения action1. Можно использовать этот объект опций для вызова метода тестирования, выполняющего действие action2 соединителя вместо действия action1, если передать свойство name : action2. Это удобно, если action2 используется для создания или удаления данных теста, требуемых или создаваемых набором тестов для выполнения action1.
ConnectionAPI 
Информация, заданная в тестовом наборе с помощью этого метода, должна передаваться при тестировании отдельного тестового сценария.
Метод setTestInfo - возвращает информацию, заданную параметром setTestInfo. Этот метод задает информацию на уровне набора тестов.
Сигнатура: setTestInfo (Object info)
info = {
name: <string>,
connector: <connector object>,
version: <integer>,
skipSchemaValidation: <boolean>,
logLevel: <string>
В следующей таблице объясняется каждый параметр в примере выше:
Параметры
Описание
name
Задает соединение, которое должно тестироваться с помощью этих тестовых сценариев
connector
Задает проверку соединителя с помощью тестовых сценариев
version
Задает версию соединения, которая должна тестироваться
skipSchemaValidation
Задайте значение ИСТИНА, чтобы пропускать проверку ввода или вывода действия по схеме ввода или вывода
logLevel
Задайте уровень журнала, который должен использоваться интерфейсом ConnectionAPI
ConnectionAPI использует информацию, заданную в этом методе при вызове артефакта соединения.
Метод getTestInfo - возвращает информацию, заданную методом setTestInfo
Подпись: getTestInfo() - тип возврата (информация объекта)
Метод test
Этот метод выполняет указанный артефакт соединения и возвращает результат, возвращенный артефактом соединения соединителя.
Signature: test(Object input [optional], Object options [optional])
Тип возврата: объект Promise
input [optional] - укажите объект входных данных, принимаемый артефактом соединения, который соответствует схеме JSON входных данных соединения
options [optional] - укажите объект, содержащий некоторые или все свойства, определенные в элементе Object info (информация об объекте). Это значение свойств объекта опций переопределяет свойства, которые были заданы в объекте info на уровне набора тестов в методе setTestInfo.
Например, на уровне набора тестов задана информация для соединения connection1. Можно использовать этот объект опций для вызова метода тестирования, выполняющего connection2 соединителя вместо connection1, если передать свойство name : connection2. Это удобно, если 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, укажите наименование объекта OAuth, хранящееся в файле creds.json.
skipSchemaValidation
Задайте значение ИСТИНА, чтобы пропускать проверку ввода или вывода действия по схеме ввода или вывода
logLevel
Задайте уровень журнала, который должен использоваться интерфейсом LookupAPI
Метод test
Метод выполняет указанный артефакт обзора и возвращает результат, возвращенный артефактом обзора соединителей.
Signature: test(String method, Object input [optional], Object options [optional])
Тип возврата: объект Promise
method - укажите имя метода обзора, который должен тестироваться.
input [optional] - укажите объект входных данных, принимаемый методом обзора.
options [optional] - укажите объект, который содержит некоторые или все свойства, определенные в информации об объекте. Это значение свойств объекта опций переопределяет свойства, которые были заданы в объекте info на уровне набора тестов в методе setTestInfo.
Дополнительно можно указать следующие свойства для этого объекта.
searchById
Задает ИД, который нужно использовать для поиска
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, укажите наименование объекта OAuth, хранящееся в файле creds.json.
connection
Если для соединителя используется механизм аутентификации соединения, укажите наименование объекта соединения, хранящееся в файле creds.json.
skipSchemaValidation
Задайте значение ИСТИНА, чтобы пропускать проверку ввода или вывода действия по схеме ввода или вывода.
polling
Задайте значение "Истина", если тип триггера - это триггер опроса.
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] - укажите объект, содержащий некоторые или все свойства, определенные в элементе Object info (информация об объекте). Это значение свойств объекта опций переопределяет соответствующие свойства, которые были заданы в объекте info на уровне набора тестов в методе setTestInfo.
Дополнительно можно указать следующие свойства этого объекта для тестирования триггера опроса.
interval
Задает интервал в секундах, по истечении которого событие должно инициироваться.
stopAfter
Определяет максимальное число вызовов триггера.
meta
Задает мета-объект.
unixTime
Система для описания момента времени, определенного как аппроксимация числа секунд
Например, если нужно задать unixTime при тестировании триггера опроса, используйте приведенные выше опции.
CredsAPI 
В этом файле используются следующие методы:
getConnectionById - возвращает сведения о соединении в соответствии с указанным именем объекта соединения.
Сигнатура: getConnectionById(uid)
getConnectionByIdWithHandle - возвращает сведения о соединении в объекте handle.
Сигнатура: getConnectionByIdWithHandle(uid)
getOauthById - возвращает сведения об OAuth в соответствии с указанным именем объекта OAuth.
Сигнатура: getOauthById(uid)
getOauthByIdWithHandle - возвращает сведения об OAuth в объекте handle.
Сигнатура: getOauthByIdWithHandle()
saveConnection - сохраняет соединение.
Сигнатура: saveConnection()
saveOauth - сохраняет сведения об OAuth в файле creds.json.
Сигнатура: saveOauth()
Интерфейс API ConnectorSyntaxTestHelper 
Этот метод проверяет синтаксис артефактов соединителей.
Он может использоваться в тестах для единиц измерения следующим образом:
/* eslint-env mocha */
const ConnectorSyntaxTestHelperClass = require('ptc-flow-test-helper').ConnectorSyntaxTestHelper
const connector = require('../../index')
const ConnectorSyntaxTestHelper = new ConnectorSyntaxTestHelperClass(connector)
describe('usgeocoderConnectorSyntaxTest', ConnectorSyntaxTestHelper.tests())
Интерфейс API JSONUtils 
Библиотека утверждений JSON
Функция compareJSONs (Object actualJSON, Object expectedJSON, Object ignoreDiff [необязателен]), тип возврата: promise; метод утверждения для сравнения объектов JSON. Возвращаемый объект типа Promise имеет значение "разрешен", если оба объекта JSON совпадают, иначе обещание отклоняется с сообщением об ошибке: ignoreDiff = { keys : [массив полей, которые нужно игнорировать при сравнении]}
verifyArraySubset (Object actualJSONArray, Object expectedJSONArray, Object ignoreDiff [необязателен]), тип возврата: promise
Метод assertion для сравнения с целью установить, является ли actualJSONArray поднабором expectedJSONArray.
Возвращаемый объект типа Promise имеет значение "разрешен", если actualJSONArray является поднабором expectedJSONArray, иначе обещание отклоняется с сообщением об ошибке
ignoreDiff = { keys : [array of fields to be ignored from comparison]}
Было ли это полезно?