ThingWorx Flow > ThingWorx Flow SDK > 测试连接器
测试连接器
test 命令 
test 命令用于测试连接器构件。构件具有一些常用和特定的选项。测试命令将构件的类型作为子命令。test 命令具有以下命令:
命令
说明
flow test action <name>
测试名为 <name> 的操作。
flow test connection <name>
测试名为 <name> 的连接。
flow test lookup <name> <method>
在查找 <name> 中测试名为 <method> 的查找函数。
flow test oauth <name>
测试名为 <name> 的 OAuth。
flow test trigger <name> <method>
测试名为 <name> 的触发器。
test 命令具有以下选项:
选项
说明
数据类型
--version
显示版本号。
[布尔型]
--help
显示帮助。
[布尔型]
--timeout
操作超时。--timeout 选项以毫秒为单位指定超时 (默认为 30000 毫秒)。此选项可确保代码在指定的时间内完成,并且它会捕获错误,例如缺少调用回调。
[默认:30000]
--logLevel,-1
设置日志级别。
[默认:"info"]
ThingWorx Flow CLI 允许您在服务器上部署连接器之前测试各个构件。这有助于您检查构件在部署连接器之前是否正常运行。
测试用例使用 mocha-chai 框架编写Mocha 用于定义测试套件,chai 用作断言库。所有测试用例都在特定构件测试文件夹下的 testData 文件夹下定义。
test 命令允许测试 ThingWorx Flow CLI 中的构件。
要测试构件,请在命令提示符处执行以下命令:
1. cd <user project root directory>
2. flow test <artifactType> <name>
用于测试 OAuth 和触发器的配置 
flow test oauthflow test trigger 命令在内部启动 Web 服务器。Web 服务器仅接受 https 请求。要使其能够处理请求配置,则需要证书。如果缺少证书,将出现以下错误:
[2018-09-19T10:13:11.876] [ERROR] trigger - Validation of trigger failed : ENOENT: no such file or directory, open 'C:\[2018-09-19T10:13:11.876] [ERROR] trigger - Validation of trigger failed : ENOENT: no such file or directory, open 'C:\<user-home-dir\.flow\key.pem>
要创建一个自签名证书,请执行以下操作:
1. 下载并安装 openssl
2. 假定 openssl 在路径中运行 openssl req -nodes -new -x509 -keyout key.pem -out cert.pem
3. 将这些文件复制到用户主目录的 .flow 目录。
要配置主机名称和端口,请在用户主目录的 .flow 目录中创建名为 flow.json 的文件。示例文件如下:
{
"passphrase": "xyz",
"hostname" : "flow.local.rnd.ptc.com",
"port" : 443
}
所有属性均是可选的。
Passphrase - 与需要密码的专用密钥一起使用。
Hostname - 用于为 OAuth 构建 redirect_uri 并创建触发器 URL。许多服务可能不允许 localhost 作为 redirect_uri 中的有效主机名。某些应用程序特别要求非 localhost URL 作为 Webhook 注册 URL。您还可以尝试将开发系统的 URL 与生产系统进行匹配以进行测试。例如,如果已注册到 Google 的 redirect_urihttps://flow.local.rnd.ptc.com/Thingworx/Oauths/oauth/return,则 flow.json 中的主机名称应为 flow.local.rnd.ptc.com。此外,主机应添加到 <%WINDIR%>\system32\drivers\etc\hosts 中。
* 
要编辑文件,请以管理员身份运行编辑器。
测试 OAuth 配置 
OAuth 配置测试是通过浏览器完成的,因为每个 OAuth 提供工具都有一个不同的表单来接受用户凭据。CLI 在内部运行快速 Web 服务器,以处理在身份验证成功或不成功时 IdP 发送的响应。
要测试 Oauth 配置,请执行以下操作:
1. 在项目目录中,执行以下命令:
flow test oauth <oauth name>
成功登录后,将打开 OAuth 验证器浏览器窗口。有关详细信息,请参阅本教程中给出的示例。
2. 选择要进行测试的配置,然后单击“验证 OAuth 配置”或单击“退出”。
测试连接 
test connection 命令会调用 validate 方法,然后调用 connect 方法,根据输入架构测试输入,并根据输出架构测试输出。
要测试连接,请执行以下操作:
1. 在项目目录中,执行以下命令:
npm install
2. 在包中创建测试数据文件,并使用服务提供商信息填充其数据。
该文件包含用于 <projectDir>\test\testData 中的 test connectionTestData 的示例数据,如下面的代码所示。
module.exports = {
sampleInput : {
email : 'your-email-id-here',
subscription_id:'your-subscription-id',
account_url: 'your-account-url',
token: 'your-token'
},
sampleOutput : {
handle: {
email : 'your-email-id-here',
subscription_id:'your-subscription-id',
account_url: 'your-account-url',
token: 'your-token'
} }
}
3. 使用以下选项执行测试命令:
选项
说明
数据类型
--version
显示版本号。
[布尔型]
--help
显示帮助。
[布尔型]
--timeout
操作超时。--timeout 选项以毫秒为单位指定超时 (默认为 30000 毫秒)。此选项可确保代码在指定的时间内完成,并且它会捕获错误,例如缺少调用回调。
[默认:30000]
--logLevel,-1
设置日志级别。
[默认:"info"]
--artifactVersion,-v
要测试的构件版本。
NA
--projectDir,-d
项目的父项目录。
NA
--input,-i
输入变量的名称。
NA
--output,-o
预期输出变量的名称。
NA
--testDataFile,-f
testData 文件的路径。
NA
--save,-s
保存到用户的凭据存储。
NA
--noSchemaValidation,-n
禁用架构验证。
[默认:false]
如果 connectvalidate 方法均成功,则运行测试会生成输出。此命令还检查输入是否与输入架构匹配,以及输出是否与预期输出匹配。
--save 选项将 connect 命令的输出存储到用户主目录的 .flow 文件夹中的 creds.json 文件。运行此命令会输出在文件中存储连接时所依据的密钥。稍后使用此密钥将存储的身份验证信息传递给另一个 test 命令。
测试查找 
查找具有与其他构件不同的结构,并且不会以与其他构件相同的方式进行版本控制。名称本身就是版本。如果需要较新功能,则在查找 JavaScript 文件中创建具有新名称的新查找。使用以下命令针对“查找”执行 test 命令:
以下选项供您选择:
选项
说明
数据类型
--version
显示版本号。
[布尔型]
--help
显示帮助。
[布尔型]
--timeout
操作超时。--timeout 选项以毫秒为单位指定超时 (默认为 30000 毫秒)。此选项可确保代码在指定的时间内完成,并且它会捕获错误,例如缺少调用回调。
[默认:30000]
--logLevel,-1
设置日志级别。
[默认:"info"]
--projectDir,-d
项目的父项目录。
NA
--connection,-c
要插入的连接的 uid。
NA
--access_token,-a
预期输出变量的名称。
NA
--input,-i
testData 文件的路径。
NA
--output,-o
预期输出变量的名称。
NA
--testDataFile,-f
testData 文件的路径。
NA
--searchById
用于搜索的 ID。
NA
--searchByValue
用于搜索的值。
NA
--filter
用于搜索项的筛选器。
NA
flow test lookup <name> <method>
“查找”具有两个搜索选项:searchByIdsearchByValue,以及下列三个关于分页的选项。
查找会立即返回所有数据,此选项不需要任何操作。
应用程序支持分页 API - 查找代码将调用 getNextPage API 并传递可以帮助服务从下一页返回数据的自变量。当用户单击查找字段值列表中的“加载更多”选项时,此信息将传递到查找。
不支持分页 - 应用程序将查询数据,而查找服务会截断数据,以仅显示当前页面和之前所有页面的记录。
测试操作 
测试操作与测试查找类似。查找不作为测试操作的一部分进行测试。输入应该已经包含查找以其他方式提供的结果。
要测试操作,请执行以下操作:
1. 在测试数据文件中写入示例输入和示例输出 JSON。有关输入和输出示例,请参阅教程 B
2. 从项目目录中,使用以下选项执行测试命令:
选项
说明
数据类型
--version
显示版本号。
[布尔型]
--help
显示帮助。
[布尔型]
--timeout
操作超时。--timeout 选项以毫秒为单位指定超时 (默认为 30000 毫秒)。此选项可确保代码在指定的时间内完成,并且它会捕获错误,例如缺少调用回调。
[默认:30000]
--logLevel,-1
设置日志级别。
[默认:"info"]
--artifactVersion,-v
要测试的构件版本。
[默认:"v1"]
--connection,-c
要插入的连接的 uid。
NA
--access_token,-a
预期输出变量的名称。
NA
--projectDir,-d
项目的父项目录。
[默认:"."]
--input,-i
testData 文件的路径。
NA
--output,-o
预期输出变量的名称。
NA
--testDataFile,-f
testData 文件的路径。
NA
--noSchemaValidation,-n
禁用架构验证。
[默认:false]
测试触发器 
测试触发器与测试操作、连接和查找稍有不同。您可以使用以下选项执行测试命令:
下表介绍了可用于测试触发器的各种选项。
选项
说明
数据类型
--version
显示版本号。
[布尔型]
--help
显示帮助。
[布尔型]
--timeout
操作超时。--timeout 选项以毫秒为单位指定超时 (默认为 30000 毫秒)。此选项可确保代码在指定的时间内完成,并且它会捕获错误,例如缺少调用回调。
[默认:30000]
--logLevel,-1
设置日志级别。
[默认:"info"]
--artifactVersion,-v
要测试的构件版本。
[默认:"v1"]
--connection,-c
要插入的连接的 uid。
NA
--access_token,-a
预期输出变量的名称。
NA
--projectDir,-d
项目的父项目录。
[默认:"."]
--input,-i
输入变量的名称。
NA
--output,-o
预期输出变量的名称。
NA
--testDataFile,-f
testData 文件的路径。
NA
--noSchemaValidation,-n
禁用架构验证。
[默认:false]
--polling,-p
指示此触发器为轮询触发器。
NA
--event,-e
要测试的事件。
NA
--mockData,-m
用于保存事件的模拟数据的变量名称。
NA
--interval,-t
设置触发间隔 (以秒为单位)。
[默认:15]
--stopAfter,-s
触发器的最大调用次数。
[默认:1]
必须指定您想要测试的方法。对于轮询触发器,方法为 executeactivate
有关测试各种构件的示例,请参阅教程 B
这对您有帮助吗?