SAP CPI 负载工具:在浏览器中对比、转换和生成测试数据
对比两个负载,按 SAP 转换器规则转换 XML、JSON、YAML 和 CSV,生成带错误的测试负载并插入 Groovy 代码片段,在 iFlow 设计器旁离线完成。
SAP Cloud Integration(SAP CPI)iFlow 的工作有一半围绕负载展开:两条本应相同却不同的消息、接收方想要 XML 的 JSON 消息体、一组用于错误处理的测试消息、一行每周都要写却总也记不住的 Groovy。这些活儿通常要靠文本编辑器、在线转换器和自己写的脚本来完成。
Kitegra 的 Toolbox 把它们放进浏览器,就在 iFlow 设计器旁边:负载对比、格式转换器、测试负载生成器、带速查表的 Groovy 代码片段,以及 HTTP Runner。除了用 HTTP Runner 发送的请求,它们都可以离线使用。您粘贴的内容只留在页面中,从不存储或发送。
在哪里找到 Toolbox
打开扩展的弹出窗口,选择「工具」。Toolbox 列表会在单独的标签页中打开每个工具:「负载对比」、「格式转换器」、「测试负载生成器」、「代码片段和速查表」、HTTP Runner 和 iFlow Docs。在 iFlow 上,图表工具栏中 Kitegra 工具框的菜单还能以页面面板的形式打开「代码片段」和「笔记」。
每个控件旁边都有一个小小的 (i),说明它的作用。Toolbox 不计入您套餐中的 iFlow 数。
负载对比
粘贴两个负载、从文件加载或直接拖放到页面上,差异就会逐行标出。「上一步」和「下一步」在各处差异之间跳转,并显示差异的总数。
- 忽略空白:只在空格、制表符或缩进上不同的行视为相同。
- 规范化 XML:对属性排序、忽略命名空间前缀并缩进两侧,只留下真正的变化。
- 规范化 JSON:对键排序并缩进。
- 仅显示差异:隐藏相同的行,并在原处显示隐藏的行数。
- 交换 A 和 B:原来显示为新增的内容显示为删除。
格式不正确的 XML 或无效的 JSON 负载仍会作为文本进行比较。在 Message Monitor 中,已跟踪步骤的负载查看器带有与下一步比较,它会打开此页面,并载入该步骤前后的消息体。参见逐步跟踪消息。
格式转换器
粘贴 XML、JSON、YAML、CSV 或任意文本,或加载一个文件。格式会根据内容自动识别,并且只提供适用的转换:
- XML 转 JSON 和 JSON 转 XML,遵循 SAP 自带转换器的规则:
@name成员是属性,$是元素的文本,数组会重复其元素。选项与您在 iFlow 中设置的一致:「添加 XML 根元素」、「省略 JSON 根元素」以及始终写成数组的元素。 - CSV 与 JSON 或 XML 互转,可自动识别或手动选择分隔符,支持标题行和行元素名称。
- YAML 转 JSON 和 JSON 转 YAML。
- 由 XML 推断出 XSD,以及由 XSD 生成示例 XML。
- XML 和 JSON 的格式化与压缩。
- Base64 和 URL 编码与解码;XML、JSON 和 Groovy 字符串的转义与反转义。
用作输入会把结果放回输入框,方便再次转换。「转换」旁边还有三个标签页:
- 验证检查输入格式是否正确,并列出每个问题所在的行和列。提供 XSD 后,还会检查 XML 的元素、元素的顺序和数量、属性以及简单类型。这只是轻量检查:不检查命名空间、import、include、替换组和键。
- 查找和替换,支持 JavaScript 正则表达式及其分组。
- 批量以相同方式转换多个文件,并将结果打包成一个 ZIP 下载。转换失败的文件会被跳过并列出。
测试负载生成器
错误处理是 iFlow 中测试最少的部分,因为没有人手里有出错的消息。生成器可以用一个真实样本把它们造出来。
- 粘贴或上传一条真实消息:XML、JSON,或带标题行的 CSV。
- 检查字段表。每个字段的类型根据其值推测:文本、整数、小数、布尔值、日期、日期时间、电子邮件、货币、国家、UUID 或 null。
- 为每个字段选择规则:「保持」样本的值、「同类型随机值」、「序列」,或「从列表中选取」。
- 设置要生成的负载数量(最多 1,000 个)以及带错误的比例。
- 选择错误类型,然后点击「生成」。
这些错误都是接收方会拒绝的:缺少必填字段、空字段、类型错误、无效的日期、电子邮件、货币或国家、负数数量、错误的命名空间、损坏的 XML、JSON 或 CSV、重复的 ID、多余的字段以及 null 值。每个错误负载只带一个错误。
相同的样本、规则和种子总会生成相同的负载,因此可以用同样的数据再次运行测试。下载 ZIP 为每个负载生成一个文件,另附一个 manifest.json,列出每个文件的错误及其更改的字段。下载为一个文件输出 JSON Lines,或用空行分隔的 XML 和 CSV。保存为 Runner 的数据集把这组数据交给 HTTP Runner,它可以把每个负载发送到您的 iFlow,并显示哪些响应符合预期。
Groovy 代码片段和速查表
「代码片段」标签页收录了 32 个用于 Cloud Integration 脚本的 Groovy 模式。每个片段都写成放在 processData(Message message) 中使用,类名写全,因此无需 import。它们涵盖:读取和设置消息体、header 和交换属性,流式处理大型消息体,XmlSlurper、XmlParser 和 MarkupBuilder,防 XXE 的安全 XML 解析,JsonSlurper 和 JsonBuilder,可在监控中搜索的值,消息日志中的附件,以清晰的错误失败,异常子流程中的 HTTP 错误,Secure Store 凭据,以及 Value Mapping 和 Partner Directory 查询。
可以按名称或标签搜索。在设计器中以编辑模式打开脚本时,插入会把片段写到光标处;否则请复制它。添加我的片段最多保存 20 个您自己的片段,登录后与您的 Kitegra 账户同步。不要在其中放入密码或密钥。
「速查表」标签页列出您每周都要查的内容:Simple 运算符、带示例的 Java 日期格式、在示例 XML 上运行的 XPath 1.0 函数,以及指向 SAP 和 Apache Camel 文档的链接。点击任意示例即可复制。表达式本身的讲解见 SAP CPI 中的 Camel Simple 表达式。
要阅读 iFlow 中已有的脚本,请使用 iFlow Docs 中的「解释脚本」。它会为每个脚本列出用途、读取的内容、设置或更改的内容、主要逻辑、使用的 SAP API 以及风险。
HTTP Runner
HTTP Runner 使用 Process Integration Runtime 服务密钥的 OAuth 调用您 iFlow 的 HTTPS 端点,把请求保存在集合中,并检查响应。在「iFlow 信息」中,每个端点都可以复制为 cURL 或在 Runner 中打开。完整步骤见用服务密钥测试 HTTPS iFlow。
它保存什么,您的套餐包含什么
对比、转换器、生成器和速查表都在页面中运行,不保存任何内容。您自己的代码片段,以及不含认证值和机密变量的 HTTP Runner 集合,会在您登录后与您的 Kitegra 账户同步。
离线工具在所有套餐中都可用。HTTP Runner 在 Free 和 Starter 中可有限使用,在 Pro 和团队套餐中可完整使用。Kitegra 上线期间,所有工具向所有已登录用户开放,Free 套餐也不例外。比较各套餐。
在下一个 iFlow 中试试
了解 Kitegra 为 SAP Integration Suite 设计器增加了哪些功能,或查看 Toolbox 的全部功能。
常见问题
我的负载会被发送到别处吗?
不会。对比、转换器、生成器和速查表都在浏览器页面中运行。您粘贴或加载的内容不会被存储或发送。
转换器的结果与 SAP 的转换器相同吗?
它遵循与 SAP 的 JSON 转 XML 和 XML 转 JSON 转换器相同的规则和选项:属性、元素文本、数组、添加的根元素和省略的 JSON 根元素。结果必须完全准确时,请运行 iFlow。
生成的测试集可以重复吗?
可以。相同的样本、规则和种子总会生成相同的负载。更改错误类型不会改变已有的值。
如何把代码片段插入 Groovy 脚本?
在设计器中以编辑模式打开脚本,把光标放到要插入的位置,然后点击片段上的「插入」。之后请自己保存 iFlow。
Toolbox 会计入 iFlow 吗?
不会。只有 Helper、Message Monitor、iFlow Inspector 和 iFlow Docs 会统计 iFlow。